/* ===== Moderne, selbst-gehostete Schriften (offline-fähig) ===== */
@font-face{font-family:'Inter';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/inter-400.woff2') format('woff2');}
@font-face{font-family:'Inter';font-style:normal;font-weight:500;font-display:swap;src:url('/fonts/inter-500.woff2') format('woff2');}
@font-face{font-family:'Inter';font-style:normal;font-weight:600;font-display:swap;src:url('/fonts/inter-600.woff2') format('woff2');}
@font-face{font-family:'Inter';font-style:normal;font-weight:700;font-display:swap;src:url('/fonts/inter-700.woff2') format('woff2');}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/spacegrotesk-400.woff2') format('woff2');}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:500;font-display:swap;src:url('/fonts/spacegrotesk-500.woff2') format('woff2');}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:600;font-display:swap;src:url('/fonts/spacegrotesk-600.woff2') format('woff2');}
@font-face{font-family:'Space Grotesk';font-style:normal;font-weight:700;font-display:swap;src:url('/fonts/spacegrotesk-700.woff2') format('woff2');}
@font-face{font-family:'Space Mono';font-style:normal;font-weight:400;font-display:swap;src:url('/fonts/spacemono-400.woff2') format('woff2');}
@font-face{font-family:'Unbounded';font-style:normal;font-weight:600;font-display:swap;src:url('/fonts/unbounded-600.woff2') format('woff2');}
@font-face{font-family:'Unbounded';font-style:normal;font-weight:700;font-display:swap;src:url('/fonts/unbounded-700.woff2') format('woff2');}
@font-face{font-family:'Unbounded';font-style:normal;font-weight:800;font-display:swap;src:url('/fonts/unbounded-800.woff2') format('woff2');}
/* ============================================================
   ProfiSuite - Immo · Design-System
   Aesthetik: "Editorial Warm Dark" — architektonisch, ruhig,
   Serif-Display + klare Sans, warmer Kupfer-Akzent (Zuhause/Backstein).
   Kein generisches AI-Design. Offline-/APK-tauglich (keine externen Calls).
   ============================================================ */

:root{
  /* Canvas & Flächen — warmes Near-Black, nicht blau */
  --canvas:#14110d;
  --canvas-2:#1a1611;
  --surface:#211c16;
  --surface-2:#2a241c;
  --surface-3:#332c22;
  --line:rgba(247,241,231,.14);
  --line-strong:rgba(247,241,231,.26);

  /* Tinte — höherer Kontrast für gute Lesbarkeit */
  --ink:#f7f1e7;
  --ink-dim:#dccfbb;
  --ink-faint:#b1a48c;
  --muted:var(--ink-faint); /* v151 fix: --muted war nirgends definiert; Alias repariert alle Altstellen themetreu */

  /* Akzente */
  --copper:#dd9559;          /* primär — Terrakotta/Kupfer */
  --copper-2:#eaa86c;
  --copper-soft:rgba(221,149,89,.14);
  --copper-line:rgba(221,149,89,.32);
  --sage:#34b3a0;            /* positiv – ruhig/entsättigt */
  --sage-soft:rgba(52,179,160,.14);
  --lime:#a3e635;            /* DreiHundertSechzig-Markenfarbe */
  --lime-deep:#84cc16;
  --lime-glow:rgba(163,230,53,.45);
  --rust:#cf6b4d;            /* leer / Achtung */
  --rust-soft:rgba(207,107,77,.14);
  --gold:#d2b079;            /* Hinweis – ruhig */
  --gold-soft:rgba(210,176,121,.14);
  --glow-1:rgba(221,149,89,.12); --glow-2:rgba(122,142,120,.08);

  /* Maße */
  --r-s:10px; --r-m:16px; --r-l:22px; --r-xl:30px;
  --pad:clamp(16px,4vw,30px);
  --shadow:0 1px 0 rgba(255,255,255,.04) inset, 0 24px 60px -28px rgba(0,0,0,.7);
  --shadow-soft:0 10px 30px -18px rgba(0,0,0,.65);

  /* Typografie */
  --serif:"Space Grotesk",ui-sans-serif,-apple-system,"Segoe UI",Roboto,sans-serif;
  --display:"Unbounded","Space Grotesk",ui-sans-serif,-apple-system,"Segoe UI",sans-serif;
  --sans:"Inter",ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,sans-serif;
  --mono:"Space Mono",ui-monospace,"SF Mono","Cascadia Mono","Roboto Mono",Menlo,monospace;
}

*{box-sizing:border-box;}
html,body{margin:0;padding:0;height:100%;}
body{overflow:hidden;}
body{
  font-family:var(--sans);
  color:var(--ink);
  background:var(--canvas);
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
  /* Atmosphäre: feine warme Glows + Korn */
  background-image:
    radial-gradient(1200px 600px at 88% -10%, rgba(221,149,89,.10), transparent 60%),
    radial-gradient(900px 500px at -5% 8%, rgba(159,176,131,.06), transparent 55%);
  background-attachment:fixed;
}
body::before{ /* Korn-Overlay */
  content:""; position:fixed; inset:0; z-index:0; pointer-events:none; opacity:.035;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}
::selection{background:var(--copper-soft); color:var(--ink);}
::-webkit-scrollbar{width:11px;height:11px;}
::-webkit-scrollbar-thumb{background:var(--surface-3);border-radius:20px;border:3px solid var(--canvas);}
a{color:inherit;text-decoration:none;}
button{font-family:inherit; color:inherit;}

/* ---------- Layout-Gerüst ---------- */
.app{position:relative;z-index:1;display:grid;grid-template-columns:248px 1fr;height:100vh;height:100dvh;overflow:hidden;
  background-color:var(--canvas);color:var(--ink);
  background-image:
    radial-gradient(1100px 620px at 92% -12%, var(--glow-1), transparent 60%),
    radial-gradient(820px 520px at -8% 8%, var(--glow-2), transparent 58%);
  background-attachment:fixed;}
.sidebar{
  height:100%;display:flex;flex-direction:column;
  border-right:1px solid var(--line);
  background:linear-gradient(180deg,var(--canvas-2),var(--canvas));
  padding:22px 16px;gap:6px;overflow:hidden;
}
.sidebar .brand{flex:none;}
.sidebar .nav{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-right:2px;}
.side-bottom{flex:none;margin-top:12px;display:flex;flex-direction:column;gap:6px;}
.sidebar .nav{scrollbar-width:thin;scrollbar-color:var(--copper-line) transparent;}
.sidebar .nav::-webkit-scrollbar{width:4px;}
.sidebar .nav::-webkit-scrollbar-track{background:transparent;border:0;}
.sidebar .nav::-webkit-scrollbar-thumb{background:var(--copper-line);border:0;border-radius:10px;}
.sidebar .nav::-webkit-scrollbar-thumb:hover{background:var(--copper-2);}
.brand{display:flex;align-items:center;gap:11px;padding:6px 8px 18px;}
.brand .mark{
  width:38px;height:38px;border-radius:11px;display:grid;place-items:center;flex:none;
  background:linear-gradient(150deg,var(--copper),#b5703a);
  box-shadow:0 8px 22px -10px rgba(221,149,89,.8), 0 1px 0 rgba(255,255,255,.25) inset;
}
.brand .mark svg{width:21px;height:21px;}
.brand b{font-family:var(--serif);font-weight:600;font-size:18px;letter-spacing:.2px;line-height:1;}
.brand small{display:block;color:var(--ink-faint);font-size:11px;letter-spacing:.14em;text-transform:uppercase;margin-top:3px;}

.nav{display:flex;flex-direction:column;gap:2px;margin-top:4px;}
.nav .lbl{font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-faint);padding:14px 10px 6px;}
.nav a{
  display:flex;align-items:center;gap:11px;padding:10px 11px;border-radius:11px;
  color:var(--ink-dim);font-size:14px;font-weight:500;cursor:pointer;
  transition:background .18s,color .18s,transform .12s;
}
.nav a svg{width:18px;height:18px;flex:none;opacity:.85;}
.nav a>span:not(.tag){flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.nav a:hover{background:var(--surface);color:var(--ink);}
.nav a.active{background:var(--copper-soft);color:var(--copper-2);box-shadow:inset 0 0 0 1px var(--copper-line);}
.nav a.locked{opacity:.5;cursor:default;}
.nav a.locked:hover{background:transparent;color:var(--ink-dim);}
.nav a .tag{margin-left:auto;flex:none;font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-faint);
  border:1px solid var(--line-strong);border-radius:20px;padding:2px 7px;}

.mode-switch{margin-top:auto;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:5px;display:flex;gap:4px;}
.mode-switch button{
  flex:1;border:0;background:transparent;color:var(--ink-faint);font-size:12.5px;font-weight:600;
  padding:9px 6px;border-radius:10px;cursor:pointer;transition:all .18s;letter-spacing:.02em;
}
.mode-switch button.on{background:linear-gradient(180deg,var(--surface-3),var(--surface-2));color:var(--ink);box-shadow:var(--shadow-soft);}
.mode-hint{font-size:11px;color:var(--ink-faint);text-align:center;padding:9px 4px 2px;line-height:1.4;}

/* ---------- Main ---------- */
.main{min-width:0;display:flex;flex-direction:column;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;}
.topbar{
  position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:14px;
  padding:16px var(--pad);border-bottom:1px solid var(--line);
  background:color-mix(in oklab,var(--canvas) 82%,transparent);backdrop-filter:blur(14px);
}
.topbar .crumb{font-size:12.5px;color:var(--ink-faint);letter-spacing:.04em;}
.topbar .crumb b{color:var(--ink-dim);font-weight:600;}
.topbar .spacer{flex:1;}
.search{display:flex;align-items:center;gap:9px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:9px 13px;min-width:200px;color:var(--ink-faint);}
.search input{border:0;background:transparent;color:var(--ink);outline:none;font-size:13.5px;width:100%;font-family:inherit;}
.search svg{width:16px;height:16px;}

.content{padding:var(--pad);max-width:1180px;width:100%;}

/* ---------- Buttons ---------- */
.btn{display:inline-flex;align-items:center;gap:8px;border:1px solid var(--line-strong);background:var(--surface);
  color:var(--ink);font-size:13.5px;font-weight:600;padding:10px 15px;border-radius:12px;cursor:pointer;
  transition:transform .12s,background .18s,border-color .18s;}
.btn:hover{background:var(--surface-2);transform:translateY(-1px);}
.btn:active{transform:translateY(0);}
.btn svg{width:16px;height:16px;}
.btn.primary{background:linear-gradient(180deg,var(--copper-2),var(--copper));color:#241405;border-color:transparent;
  box-shadow:0 10px 26px -12px rgba(221,149,89,.8),0 1px 0 rgba(255,255,255,.3) inset;}
.btn.primary:hover{filter:brightness(1.04);}
.btn.ghost{background:transparent;border-color:var(--line);}
.btn.sm{padding:7px 11px;font-size:12.5px;border-radius:10px;}
.btn.icon{padding:9px;border-radius:11px;}

/* ---------- Hero / Page head ---------- */
.head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px;flex-wrap:wrap;margin-bottom:26px;}
.head h1{font-family:var(--serif);font-weight:600;font-size:clamp(26px,4.4vw,40px);line-height:1.04;margin:0 0 8px;letter-spacing:-.01em;}
.head .eyebrow{font-size:11.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--copper);margin-bottom:12px;font-weight:600;}
.head p{margin:0;color:var(--ink-dim);font-size:14.5px;max-width:46ch;line-height:1.55;}

/* ---------- KPI ---------- */
.kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:26px;}
.kpi{background:linear-gradient(180deg,var(--surface),var(--canvas-2));border:1px solid var(--line);border-radius:var(--r-l);
  padding:18px 18px 16px;position:relative;overflow:hidden;box-shadow:var(--shadow-soft);}
.kpi::after{content:"";position:absolute;right:-30px;top:-30px;width:120px;height:120px;border-radius:50%;
  background:radial-gradient(circle,var(--copper-soft),transparent 70%);}
.kpi .k-ic{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;background:var(--surface-2);border:1px solid var(--line);margin-bottom:14px;}
.kpi .k-ic svg{width:17px;height:17px;color:var(--copper-2);}
.kpi .k-val{font-family:var(--serif);font-size:30px;font-weight:600;line-height:1;letter-spacing:-.01em;}
.kpi .k-val small{font-size:15px;color:var(--ink-faint);font-family:var(--sans);font-weight:600;margin-left:3px;}
.kpi .k-lbl{color:var(--ink-faint);font-size:12.5px;margin-top:7px;letter-spacing:.02em;}
.kpi .k-sub{margin-top:10px;font-size:12px;display:inline-flex;align-items:center;gap:6px;padding:3px 9px;border-radius:20px;}
.kpi .k-sub.up{background:var(--sage-soft);color:var(--sage);}
.kpi .k-sub.warn{background:var(--gold-soft);color:var(--gold);}
.kpi .k-sub.down{background:var(--rust-soft);color:var(--rust);}

/* ---------- Section ---------- */
.section{margin-bottom:30px;}
.section-head{display:flex;align-items:center;gap:12px;margin-bottom:16px;}
.section-head h2{font-family:var(--serif);font-size:20px;font-weight:600;margin:0;letter-spacing:.01em;}
.section-head .count{color:var(--ink-faint);font-size:13px;background:var(--surface);border:1px solid var(--line);padding:2px 10px;border-radius:20px;}
.section-head .spacer{flex:1;}

/* ---------- Objekt-Karten ---------- */
.obj-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:16px;}
.obj-card{
  background:linear-gradient(180deg,var(--surface),var(--canvas-2));border:1px solid var(--line);border-radius:var(--r-l);
  overflow:hidden;cursor:pointer;transition:transform .16s,border-color .18s,box-shadow .2s;position:relative;
  animation:rise .5s both;
}
.obj-card:hover{transform:translateY(-3px);border-color:var(--copper-line);box-shadow:var(--shadow);}
.obj-card .cover{height:108px;position:relative;display:flex;align-items:flex-end;padding:13px 16px;
  background:
    linear-gradient(180deg,transparent,rgba(20,17,13,.85)),
    linear-gradient(135deg,#3a2f23,#241d16);
}
.obj-card .cover .badge{position:absolute;top:12px;left:14px;font-size:10.5px;letter-spacing:.12em;text-transform:uppercase;
  background:rgba(20,17,13,.55);border:1px solid rgba(255,255,255,.22);color:rgba(255,255,255,.9);padding:4px 9px;border-radius:20px;backdrop-filter:blur(6px);}
.obj-card .cover .glyph{position:absolute;right:14px;top:10px;font-size:46px;line-height:1;opacity:.9;filter:saturate(.9);}
.obj-card .cover h3{font-family:var(--serif);font-size:18px;font-weight:600;margin:0;line-height:1.1;color:#fff;text-shadow:0 1px 10px rgba(0,0,0,.55);}
.obj-card .body{padding:14px 16px 16px;}
.obj-card .addr{color:var(--ink-faint);font-size:12.5px;display:flex;align-items:center;gap:6px;margin-bottom:14px;}
.obj-card .addr svg{width:13px;height:13px;flex:none;}
.occ{height:7px;border-radius:20px;background:var(--surface-3);overflow:hidden;display:flex;}
.occ i{display:block;height:100%;}
.occ i.f{background:linear-gradient(90deg,var(--sage),#b6c79b);}
.occ i.v{background:var(--rust-soft);}
.obj-card .stats{display:flex;justify-content:space-between;margin-top:13px;gap:8px;}
.obj-card .stat{flex:1;}
.obj-card .stat .v{font-size:15px;font-weight:700;font-family:var(--serif);}
.obj-card .stat .l{font-size:11px;color:var(--ink-faint);margin-top:2px;}

/* ---------- Detail ---------- */
.detail-grid{display:grid;grid-template-columns:1.6fr 1fr;gap:18px;align-items:start;}
.panel{background:linear-gradient(180deg,var(--surface),var(--canvas-2));border:1px solid var(--line);border-radius:var(--r-l);padding:20px;box-shadow:var(--shadow-soft);}
.panel h3{font-family:var(--serif);font-size:17px;font-weight:600;margin:0 0 14px;display:flex;align-items:center;gap:9px;}

.unit-row{display:flex;align-items:center;gap:14px;padding:14px 12px;border-radius:14px;cursor:pointer;transition:background .16s;border:1px solid transparent;}
.unit-row:hover{background:var(--surface-2);border-color:var(--line);}
.unit-row .u-ic{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;flex:none;font-size:18px;background:var(--surface-2);border:1px solid var(--line);}
.unit-row .u-main{flex:1;min-width:0;}
.unit-row .u-main b{font-size:14.5px;font-weight:600;display:block;}
.unit-row .u-main span{font-size:12.5px;color:var(--ink-faint);}
.unit-row .u-rent{text-align:right;}
.unit-row .u-rent b{font-family:var(--serif);font-size:15px;}
.unit-row .u-rent span{font-size:11px;color:var(--ink-faint);display:block;}

.pill{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;font-weight:600;padding:4px 10px;border-radius:20px;letter-spacing:.02em;}
.pill::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;}
.pill.ok{background:var(--sage-soft);color:var(--sage);}
.pill.warn{background:var(--gold-soft);color:var(--gold);}
.pill.bad{background:var(--rust-soft);color:var(--rust);}
.pill.neutral{background:var(--surface-2);color:var(--ink-dim);}

.meta-list{display:flex;flex-direction:column;gap:1px;}
.meta-list .row{display:flex;justify-content:space-between;gap:12px;padding:11px 2px;border-bottom:1px solid var(--line);font-size:13.5px;}
.meta-list .row:last-child{border-bottom:0;}
.meta-list .row .k{color:var(--ink-faint);}
.meta-list .row .v{font-weight:600;text-align:right;}

/* ---------- Frist-Teaser ---------- */
.frist{display:flex;gap:12px;align-items:flex-start;padding:13px 14px;border-radius:14px;background:var(--gold-soft);border:1px solid rgba(230,189,107,.25);margin-bottom:10px;}
.frist .fi{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:rgba(230,189,107,.18);flex:none;}
.frist .ft b{font-size:13.5px;display:block;}
.frist .ft span{font-size:12px;color:var(--ink-dim);}
.frist .fdue{margin-left:auto;font-size:12px;color:var(--gold);font-weight:700;white-space:nowrap;}

/* ---------- Inline-Hilfe / Recht ---------- */
.hint{display:flex;gap:10px;background:var(--copper-soft);border:1px solid var(--copper-line);border-radius:12px;padding:11px 13px;font-size:12.5px;color:var(--ink-dim);line-height:1.5;}
.hint svg{width:16px;height:16px;color:var(--copper-2);flex:none;margin-top:1px;}
.hint b{color:var(--ink);}

/* ---------- Empty state ---------- */
.empty{text-align:center;padding:60px 20px;border:1.5px dashed var(--line-strong);border-radius:var(--r-xl);background:var(--canvas-2);}
.empty .e-ic{width:64px;height:64px;border-radius:18px;display:grid;place-items:center;margin:0 auto 18px;
  background:var(--copper-soft);border:1px solid var(--copper-line);font-size:30px;}
.empty h3{font-family:var(--serif);font-size:22px;margin:0 0 8px;}
.empty p{color:var(--ink-dim);max-width:42ch;margin:0 auto 20px;line-height:1.6;font-size:14px;}

/* ---------- Modal ---------- */
.modal-bg{position:fixed;inset:0;left:248px;z-index:60;background:rgba(10,8,6,.6);backdrop-filter:blur(6px);display:grid;place-items:center;padding:18px;animation:fade .2s;}
.modal{width:min(1040px,100%);max-height:94vh;overflow:auto;background:linear-gradient(180deg,var(--surface),var(--canvas-2));
  border:1px solid var(--line-strong);border-radius:var(--r-xl);box-shadow:var(--shadow);animation:pop .26s cubic-bezier(.2,.8,.2,1);}
.modal .m-head{padding:22px 24px 6px;}
.modal .m-head .eyebrow{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--copper);font-weight:600;}
.modal .m-head h2{font-family:var(--serif);font-size:23px;margin:8px 0 4px;font-weight:600;}
.modal .m-head p{color:var(--ink-faint);font-size:13px;margin:0;}
.modal .m-body{padding:18px 24px;display:flex;flex-direction:column;gap:15px;}
.modal .m-foot{padding:16px 24px 22px;display:flex;gap:10px;justify-content:flex-end;border-top:1px solid var(--line);margin-top:4px;}

.field label{display:block;font-size:12.5px;font-weight:600;color:var(--ink-dim);margin-bottom:7px;letter-spacing:.01em;}
.field label .opt{color:var(--ink-faint);font-weight:500;}
.field input,.field select,.field textarea{
  width:100%;background:var(--canvas);border:1px solid var(--line-strong);border-radius:11px;
  padding:11px 13px;color:var(--ink);font-size:14px;font-family:inherit;outline:none;transition:border-color .16s,box-shadow .16s;
}
.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--copper-line);box-shadow:0 0 0 3px var(--copper-soft);}
.field .help{font-size:11.5px;color:var(--ink-faint);margin-top:6px;line-height:1.45;}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:13px;}
.chip-row{display:flex;flex-wrap:wrap;gap:8px;}
.chip{padding:8px 13px;border-radius:11px;border:1px solid var(--line-strong);background:var(--canvas);font-size:13px;cursor:pointer;color:var(--ink-dim);transition:all .15s;}
.chip.on{background:var(--copper-soft);border-color:var(--copper-line);color:var(--copper-2);font-weight:600;}

/* ---------- Toast ---------- */
.toast{position:fixed;bottom:22px;left:50%;transform:translateX(-50%) translateY(20px);z-index:80;
  background:var(--surface-3);border:1px solid var(--line-strong);border-radius:14px;padding:13px 18px;font-size:13.5px;
  box-shadow:var(--shadow);opacity:0;transition:all .3s;display:flex;align-items:center;gap:10px;pointer-events:none;}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0);}
.toast svg{width:18px;height:18px;color:var(--sage);}

/* ---------- Mobile ---------- */
.mtab{display:none;}
.mh-burger{display:none;}
.nav-scrim{display:none;}
.tb-menu{display:none;align-items:center;gap:7px;padding:9px 13px;border:1px solid var(--line);background:transparent;border-radius:11px;color:var(--ink);font-weight:600;font-size:13.5px;cursor:pointer;flex:none;}
.tb-menu:hover{border-color:var(--copper-line);background:var(--copper-soft);color:var(--copper-2);}
.tb-menu svg{flex:none;}
/* Navigations-Overlay (Drawer) — überall dort, wo die linke Leiste ausgeblendet ist (Tablet + Handy) */
@media(max-width:1100px){
  .app.nav-open .sidebar{display:flex;position:fixed;top:0;left:0;bottom:0;width:min(84vw,300px);z-index:70;overflow-y:auto;box-shadow:0 0 60px rgba(0,0,0,.55);border-right:1px solid var(--line);}
  .app.nav-open .nav-scrim{display:block;position:fixed;inset:0;z-index:65;background:rgba(0,0,0,.5);}
}
@media(max-width:900px){
  .app{grid-template-columns:1fr;}
  .sidebar{display:none;}
  .mh-burger{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;margin-right:8px;flex:none;border:1px solid var(--line);background:transparent;border-radius:11px;color:var(--ink);cursor:pointer;}
  .mh-burger:active{background:var(--copper-soft);}
  .modal-bg{left:0;}
  .kpis{grid-template-columns:1fr 1fr;}
  .detail-grid{grid-template-columns:1fr;}
  .content{padding-bottom:90px;}
  .mtab{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:40;background:color-mix(in oklab,var(--canvas) 92%,transparent);
    backdrop-filter:blur(14px);border-top:1px solid var(--line);padding:8px 6px env(safe-area-inset-bottom);justify-content:space-around;}
  .mtab a{display:flex;flex-direction:column;align-items:center;gap:3px;color:var(--ink-faint);font-size:10px;padding:7px 12px;border-radius:12px;}
  .mtab a.active{color:var(--copper-2);background:var(--copper-soft);}
  .mtab a svg{width:20px;height:20px;}
  .grid-2{grid-template-columns:1fr;}
}
@media(max-width:560px){ .kpis{grid-template-columns:1fr 1fr;gap:10px;} .kpi .k-val{font-size:25px;} }

/* ---------- Animationen ---------- */
@keyframes rise{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:translateY(0);}}
@keyframes fade{from{opacity:0;}to{opacity:1;}}
@keyframes pop{from{opacity:0;transform:scale(.96) translateY(10px);}to{opacity:1;transform:scale(1) translateY(0);}}
.stagger>*{animation:rise .5s both;}
.stagger>*:nth-child(2){animation-delay:.05s;}
.stagger>*:nth-child(3){animation-delay:.1s;}
.stagger>*:nth-child(4){animation-delay:.15s;}
.stagger>*:nth-child(5){animation-delay:.2s;}
.stagger>*:nth-child(6){animation-delay:.25s;}

/* ============================================================
   FIXES & MOTION (v2)
   ============================================================ */

/* --- SVG-Größen IMMER begrenzen: sichere Basisgröße für alle Inline-Icons.
       Spezifischere Container-Regeln (z. B. .kpi .k-ic svg) überschreiben das. --- */
svg{width:18px;height:18px;max-width:100%;flex:none;vertical-align:-3px;}
.head p svg,.crumb svg,.addr svg,.meta-list svg,.pill svg,.locktag svg{width:15px;height:15px;}
.panel h3 svg{width:18px;height:18px;color:var(--copper-2);flex:none;}
.frist .fi svg{width:16px;height:16px;color:var(--gold);}
.section-head h2 svg{width:18px;height:18px;}
.empty .e-ic svg{width:30px;height:30px;color:var(--copper-2);}
.modal .m-head svg{width:20px;height:20px;}
.lic-banner svg{width:17px;height:17px;flex:none;}

/* --- Kontrast-Feinschliff (bessere Lesbarkeit) --- */
.kpi .k-lbl{color:var(--ink-dim);}
.obj-card .addr{color:var(--ink-dim);}
.obj-card .stat .l{color:var(--ink-dim);}
.head p{color:var(--ink-dim);}
.empty p{color:var(--ink-dim);}
.nav a{color:var(--ink-dim);}
.frist .ft span{color:var(--ink-dim);}
.meta-list .row .k{color:var(--ink-dim);}
.field .help{color:var(--ink-dim);}
.hint{color:var(--ink-dim);}
.unit-row .u-main span{color:var(--ink-dim);}
.mode-hint{color:var(--ink-dim);}

/* --- Saubere Umbrüche --- */
.head h1,.obj-card h3,.modal .m-head h2,.panel h3{overflow-wrap:break-word;hyphens:auto;}
.kpi .k-val{overflow-wrap:normal;}
.obj-card h3{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.unit-row .u-main b{overflow-wrap:anywhere;}
.crumb{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:48vw;}

/* ============================================================
   BEWEGUNG — Symbole leben, jeder Klick reagiert
   ============================================================ */
@media (prefers-reduced-motion: no-preference){

  /* Nav-Icons gleiten beim Hover, aktives Icon pulsiert sanft */
  .nav a svg, .mtab a svg{transition:transform .25s cubic-bezier(.34,1.56,.64,1);}
  .nav a:hover svg{transform:translateX(3px) scale(1.08);}
  .nav a.active svg{color:var(--copper-2);animation:breathe 3.2s ease-in-out infinite;}
  .mtab a:active svg{transform:scale(.82);}

  /* KPI-Icons: leichtes Schweben, beim Hover anheben + drehen */
  .kpi .k-ic{transition:transform .3s cubic-bezier(.34,1.56,.64,1),background .2s;}
  .kpi:hover .k-ic{transform:translateY(-3px) rotate(-6deg);background:var(--copper-soft);}
  .kpi .k-ic svg{transition:transform .3s;}
  .kpi:hover .k-ic svg{transform:scale(1.12);}

  /* Buttons: Icon schiebt mit */
  .btn svg{transition:transform .2s;}
  .btn:hover svg{transform:translateX(2px);}
  .btn.primary:hover svg{transform:scale(1.12) rotate(4deg);}

  /* Glocke klingelt (Frist) */
  .frist .fi svg{transform-origin:50% 12%;animation:ring 4.5s ease-in-out infinite;}
  .panel h3 svg{transition:transform .3s;}
  .panel:hover h3 svg{transform:rotate(-8deg) scale(1.1);}

  /* Objekt-Karten: Pfeil erscheint & gleitet */
  .obj-card .cover .glyph{transition:transform .35s cubic-bezier(.34,1.56,.64,1);}
  .obj-card:hover .cover .glyph{transform:translateY(-3px) scale(1.12) rotate(3deg);}
  .obj-card::after{content:"→";position:absolute;right:14px;bottom:14px;font-size:18px;color:var(--copper-2);
    opacity:0;transform:translateX(-6px);transition:all .25s;}
  .obj-card:hover::after{opacity:1;transform:translateX(0);}

  /* Unit-Rows: Schlüssel-Icon wackelt */
  .unit-row .u-ic{transition:transform .25s cubic-bezier(.34,1.56,.64,1);}
  .unit-row:hover .u-ic{transform:rotate(-10deg) scale(1.08);}

  /* Pills pulsieren je nach Status */
  .pill.bad::before{animation:blink 1.6s ease-in-out infinite;}
}

/* klickbare KPI / Tiles */
.kpi.clk,.tile.clk{cursor:pointer;transition:transform .16s,border-color .2s,box-shadow .2s;}
.kpi.clk:hover,.tile.clk:hover{transform:translateY(-3px);border-color:var(--copper-line);box-shadow:var(--shadow);}

/* Lizenz-Banner */
.lic-banner{display:flex;align-items:center;gap:10px;padding:11px 16px;font-size:13px;font-weight:600;
  border-bottom:1px solid var(--line);}
.lic-banner.preview{background:var(--copper-soft);color:var(--copper-2);}
.lic-banner.warn{background:var(--gold-soft);color:var(--gold);}
.lic-banner.readonly{background:var(--rust-soft);color:var(--rust);}
.lic-banner .spacer{flex:1;}
.lic-banner button{border:1px solid currentColor;background:transparent;color:inherit;font-size:12px;font-weight:600;padding:5px 11px;border-radius:9px;cursor:pointer;}

/* Modul-Landing (Roadmap-Seiten) */
.feature-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px;margin-top:8px;}
.fcard{background:linear-gradient(180deg,var(--surface),var(--canvas-2));border:1px solid var(--line);border-radius:var(--r-l);padding:18px;animation:rise .5s both;}
.fcard .fc-ic{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:var(--copper-soft);border:1px solid var(--copper-line);margin-bottom:13px;}
.fcard .fc-ic svg{width:19px;height:19px;color:var(--copper-2);}
.fcard h4{margin:0 0 6px;font-size:14.5px;}
.fcard p{margin:0;font-size:12.5px;color:var(--ink-dim);line-height:1.5;}
.locktag{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:600;color:var(--gold);background:var(--gold-soft);border:1px solid rgba(230,189,107,.3);padding:4px 10px;border-radius:20px;margin-top:12px;}

/* Block-Screen (Lizenz gesperrt) */
.block-screen{position:fixed;inset:0;z-index:200;background:var(--canvas);display:grid;place-items:center;padding:24px;text-align:center;}
.block-screen .bx{max-width:440px;}
.block-screen .b-ic{width:80px;height:80px;border-radius:24px;display:grid;place-items:center;margin:0 auto 22px;background:var(--rust-soft);border:1px solid rgba(207,107,77,.3);font-size:38px;}
.block-screen h1{font-family:var(--serif);font-size:30px;margin:0 0 12px;}
.block-screen p{color:var(--ink-dim);line-height:1.6;margin:0 0 22px;}

/* Status-Punkt */
.dot{width:9px;height:9px;border-radius:50%;display:inline-block;}
.dot.on{background:var(--sage);box-shadow:0 0 0 4px var(--sage-soft);}
.dot.off{background:var(--rust);box-shadow:0 0 0 4px var(--rust-soft);}
.dot.idle{background:var(--gold);box-shadow:0 0 0 4px var(--gold-soft);}

@keyframes ring{0%,86%,100%{transform:rotate(0);}88%{transform:rotate(13deg);}90%{transform:rotate(-11deg);}92%{transform:rotate(8deg);}94%{transform:rotate(-6deg);}96%{transform:rotate(3deg);}98%{transform:rotate(-1deg);}}
@keyframes breathe{0%,100%{transform:scale(1);opacity:1;}50%{transform:scale(1.12);opacity:.85;}}
@keyframes blink{0%,100%{opacity:1;}50%{opacity:.35;}}
@keyframes spin{to{transform:rotate(360deg);}}
.spin{animation:spin .8s linear infinite;}

/* ---------- Zahlungs-Modul (Soll/Ist + Mahnwesen) ---------- */
.frist.clk{cursor:pointer;transition:transform .14s,border-color .2s;}
.frist.clk:hover{transform:translateY(-2px);border-color:rgba(230,189,107,.5);}
.zrow{display:flex;align-items:center;gap:14px;padding:14px 6px;border-bottom:1px solid var(--line);}
.zrow:last-child{border-bottom:0;}
.zr-main{flex:1;min-width:0;}
.zr-main b{display:block;font-size:14.5px;font-weight:600;}
.zr-main span{font-size:12.5px;color:var(--ink-faint);}
.zr-amt{text-align:right;min-width:96px;}
.zr-amt b{font-family:var(--serif);font-size:15px;}
.zr-amt span{display:block;font-size:11px;color:var(--ink-faint);}
.zr-st{display:flex;align-items:center;min-width:120px;}
.zr-act{display:flex;gap:7px;justify-content:flex-end;min-width:160px;}
@media(max-width:760px){
  .zrow{flex-wrap:wrap;gap:8px;}
  .zr-st,.zr-act{min-width:0;}
  .zr-act{width:100%;justify-content:flex-start;margin-top:4px;flex-wrap:wrap;}
  .zr-act .btn{flex:0 1 auto;}
}

/* ---------- Nebenkosten & CO₂ ---------- */
.nk-inp{background:var(--canvas);border:1px solid var(--line-strong);border-radius:9px;color:var(--ink);
  font-size:13px;padding:7px 9px;width:100%;font-family:inherit;}
.nk-inp:focus{outline:none;border-color:var(--copper);}
select.nk-inp{cursor:pointer;}
.nk-name{background:transparent;border:1px solid transparent;border-radius:8px;color:var(--ink);
  font-size:14px;font-weight:600;padding:5px 7px;width:100%;font-family:inherit;}
.nk-name:hover{border-color:var(--line);}
.nk-name:focus{outline:none;border-color:var(--copper);background:var(--canvas);}
#nk-positions .zrow{gap:10px;padding:9px 4px;}
.zrow.nk-off{opacity:.55;}
.zrow.nk-off .nk-name{font-style:italic;}
.nk-tg{width:30px;height:30px;border-radius:8px;display:grid;place-items:center;cursor:pointer;
  border:1px solid var(--line-strong);background:var(--surface);color:var(--ink-faint);}
.nk-tg.on{background:var(--sage-soft);border-color:rgba(122,158,107,.4);color:var(--sage);}
.nk-tg svg{width:15px;height:15px;}
.co2-split{display:flex;height:34px;border-radius:10px;overflow:hidden;margin-top:14px;border:1px solid var(--line);}
.co2-split .seg{background:var(--copper);color:#1a1208;display:grid;place-items:center;font-size:11.5px;font-weight:700;
  transition:width .35s cubic-bezier(.2,.8,.2,1);min-width:0;overflow:hidden;white-space:nowrap;}
.co2-split .seg.v{background:var(--surface-3);color:var(--ink-dim);}
.co2-split .seg span{padding:0 6px;}
@media(max-width:760px){
  #nk-positions .zrow{flex-wrap:wrap;}
  #nk-positions .zrow>div{width:auto !important;}
  .zr-main{flex:1 1 100%;}
}

/* ---------- Auth / Login / Geräte-Gate ---------- */
.auth-bg{position:fixed;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;
  padding:24px;background:
    radial-gradient(1200px 600px at 50% -12%,rgba(221,149,89,.12),transparent 60%),
    radial-gradient(760px 420px at 50% 116%,rgba(163,230,53,.07),transparent 62%),
    var(--canvas);}
.auth-card{position:relative;width:100%;max-width:438px;
  background:linear-gradient(180deg,var(--surface),var(--canvas-2));
  border:1px solid var(--line-strong);border-radius:var(--r-xl);padding:34px 30px 30px;
  box-shadow:0 30px 70px -28px rgba(0,0,0,.7), 0 2px 0 rgba(255,255,255,.04) inset, 0 0 0 1px rgba(255,255,255,.02) inset;
  animation:pop .34s cubic-bezier(.2,.8,.2,1);}
.auth-card::before{content:"";position:absolute;left:30px;right:30px;top:0;height:1px;
  background:linear-gradient(90deg,transparent,var(--copper-line),transparent);}
.auth-brand{display:flex;align-items:center;gap:13px;margin:0 0 20px;padding-bottom:18px;
  border-bottom:1px solid var(--line);}
.auth-brand .mark{width:46px;height:46px;border-radius:13px;display:grid;place-items:center;flex:none;
  background:linear-gradient(150deg,var(--copper),#b5703a);color:#fff;
  box-shadow:0 10px 26px -10px rgba(221,149,89,.85), 0 1px 0 rgba(255,255,255,.3) inset;}
.auth-brand .mark svg{width:24px;height:24px;}
.auth-brand b{font-family:var(--serif);font-size:18px;display:block;line-height:1.1;}
.auth-brand small{color:var(--ink-faint);font-size:11.5px;letter-spacing:.13em;text-transform:uppercase;margin-top:3px;display:block;}
.auth-h{font-family:var(--serif);font-size:29px;margin:0 0 7px;line-height:1.05;}
.auth-sub{color:var(--ink-dim);font-size:13.5px;line-height:1.55;margin:0 0 20px;}
.auth-card .field{margin-bottom:15px;}
.auth-card .field label{font-size:11.5px;letter-spacing:.04em;color:var(--ink-faint);text-transform:uppercase;}
.auth-card .field input{transition:border-color .16s,box-shadow .16s,background .16s;}
.auth-card .field input:focus{border-color:var(--copper-line);box-shadow:0 0 0 3px var(--copper-soft);outline:none;}
.auth-btn{width:100%;justify-content:center;margin-top:10px;padding:13px 16px;font-size:14.5px;font-weight:600;}
.auth-hint{display:flex;gap:8px;align-items:flex-start;color:var(--ink-faint);font-size:12px;margin:16px 0 0;}
.auth-hint svg{color:var(--copper-2);}
.auth-err{display:flex;gap:9px;align-items:center;background:var(--rust-soft);border:1px solid rgba(207,107,77,.35);
  color:var(--rust);border-radius:11px;padding:11px 13px;font-size:13px;font-weight:600;margin-bottom:16px;}
.auth-adv{margin:2px 0 6px;}
.auth-adv summary{cursor:pointer;color:var(--ink-faint);font-size:12.5px;list-style:none;}
.auth-adv summary::-webkit-details-marker{display:none;}
.auth-adv summary:hover{color:var(--copper-2);}
.auth-foot{margin-top:20px;display:flex;align-items:center;justify-content:center;gap:7px;flex-wrap:wrap;color:var(--ink-faint);font-size:11.5px;letter-spacing:.04em;}
.auth-foot .b360{font-size:11.5px;}
.auth-foot .af-tail{line-height:1;}
.auth-foot .af-build{flex-basis:100%;text-align:center;font-size:10px;color:var(--ink-faint);opacity:.7;margin-top:2px;letter-spacing:.06em;}
.auth-wait{width:64px;height:64px;border-radius:18px;display:grid;place-items:center;margin:0 0 18px;
  background:var(--gold-soft);border:1px solid rgba(230,189,107,.3);color:var(--gold);}
.auth-wait svg{width:30px;height:30px;animation:breathe 2.4s ease-in-out infinite;}
.auth-dev{background:var(--canvas);border:1px solid var(--line);border-radius:12px;padding:6px 14px;margin:0 0 16px;}
.auth-dev .row{display:flex;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--line);font-size:13px;}
.auth-dev .row:last-child{border-bottom:0;}
.auth-dev .row .k{color:var(--ink-faint);}
.auth-load{text-align:center;padding:20px 0;}
.auth-spin{width:54px;height:54px;border-radius:50%;display:inline-grid;place-items:center;color:var(--copper-2);
  background:var(--copper-soft);border:1px solid var(--copper-line);}
.auth-spin svg{width:26px;height:26px;}
.auth-load p{color:var(--ink-dim);font-size:13px;margin-top:14px;}

/* ---------- Auswertungen / Charts / Simulator / Fristen-Schweregrad ---------- */
.bar-row{display:flex;align-items:center;gap:12px;padding:8px 0;}
.bar-lbl{flex:0 0 38%;font-size:13px;color:var(--ink-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.bar{flex:1;height:14px;background:var(--canvas);border-radius:8px;overflow:hidden;border:1px solid var(--line);}
.bar i{display:block;height:100%;border-radius:8px;background:linear-gradient(90deg,var(--copper),var(--copper-2));animation:grow .6s cubic-bezier(.2,.8,.2,1);}
.bar-val{flex:0 0 auto;font-family:var(--serif);font-size:13px;font-weight:600;min-width:74px;text-align:right;}
.risk{height:8px;border-radius:6px;background:var(--canvas);overflow:hidden;border:1px solid var(--line);margin-bottom:3px;}
.risk i{display:block;height:100%;background:linear-gradient(90deg,var(--gold),var(--rust));animation:grow .6s ease;}
@keyframes grow{from{width:0 !important;}}
.badge-uni{font-size:10px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--copper-2);
  background:var(--copper-soft);border:1px solid var(--copper-line);border-radius:20px;padding:3px 9px;margin-left:auto;}
.sim-out{margin-top:10px;}
.dsgvo-box{background:var(--canvas);border:1px solid var(--line);border-radius:11px;padding:12px 14px;}
.weg-tbl{display:flex;flex-direction:column;gap:2px;margin-top:6px;}
.weg-tr{display:grid;grid-template-columns:1.6fr 1fr .9fr .9fr;align-items:center;gap:8px;padding:8px 10px;border-radius:9px;font-size:13px;}
.weg-tr:nth-child(even){background:var(--canvas);}
.weg-th{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);background:transparent!important;}
.weg-tr .r{text-align:right;}
.weg-tr span small{display:block;color:var(--ink-faint);font-size:11px;}
.weg-sum{border-top:1px solid var(--line-strong);margin-top:4px;}
.weg-pos{display:grid;grid-template-columns:1.6fr .8fr 1fr auto;gap:6px;margin-bottom:6px;align-items:center;}
.weg-pos input,.weg-pos select{padding:8px 9px;border:1px solid var(--line);border-radius:9px;background:var(--canvas);color:var(--ink);font-size:13px;width:100%;}
.weg-pos2{display:grid;grid-template-columns:1.4fr 1fr .8fr;gap:8px;align-items:center;padding:7px 0;border-bottom:1px solid var(--line);font-size:13px;}
.weg-pos2 .ab-key{color:var(--ink-faint);font-size:11.5px;}
.weg-pos2 .ab-bet{padding:7px 9px;border:1px solid var(--line);border-radius:9px;background:var(--canvas);color:var(--ink);text-align:right;}
@media(max-width:560px){ .weg-tr{grid-template-columns:1.3fr 1fr 1fr;} .weg-tr span:nth-child(2){display:none;} .weg-pos{grid-template-columns:1fr 1fr;} }
.sim-line{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 12px;border:1px solid var(--line);border-radius:10px;margin-bottom:6px;background:var(--canvas);font-size:13px;}
.sim-line span{color:var(--ink-dim);}
.idx-legal{background:var(--copper-soft);border:1px solid var(--copper-line);border-radius:10px;padding:10px 12px;color:var(--ink-dim);}
.sim-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.sim-kpi{background:var(--canvas);border:1px solid var(--line);border-radius:12px;padding:13px 14px;}
.sim-kpi .v{font-family:var(--serif);font-size:19px;font-weight:600;color:var(--copper-2);}
.sim-kpi .l{font-size:11.5px;color:var(--ink-faint);margin-top:3px;}
.slider{-webkit-appearance:none;width:100%;height:6px;border-radius:6px;background:var(--surface-3);outline:none;margin-top:8px;}
.slider::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;border-radius:50%;background:var(--copper);cursor:pointer;border:3px solid var(--canvas-2);box-shadow:0 0 0 1px var(--copper-line);}
.slider::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:var(--copper);cursor:pointer;border:3px solid var(--canvas-2);}
.frist.sev-high{background:var(--rust-soft);border-color:rgba(207,107,77,.3);}
.frist.sev-high .fi{background:rgba(207,107,77,.18);}
.frist.sev-high .fi svg{color:var(--rust);}
.frist.sev-mid .fi svg{color:var(--gold);}
.frist .fdue.over{color:var(--rust);}

/* ============================================================
   MODERN POLISH PASS  (additiv – verfeinert bestehende Klassen)
   ============================================================ */
/* Weicher, lebendigerer Hintergrund */
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;
  background:
    radial-gradient(900px 500px at 88% -8%, rgba(221,149,89,.10), transparent 60%),
    radial-gradient(700px 520px at -6% 12%, rgba(122,142,120,.07), transparent 60%);}

/* KPI-Karten: Tiefe + Hover-Lift + Akzentlinie */
.kpi{position:relative;overflow:hidden;transition:transform .22s cubic-bezier(.2,.8,.2,1),box-shadow .22s,border-color .22s;}
.kpi::after{content:"";position:absolute;left:0;top:0;height:100%;width:3px;background:linear-gradient(180deg,var(--copper),var(--copper-2));opacity:0;transition:opacity .22s;}
.kpi:hover{transform:translateY(-3px);box-shadow:0 14px 30px -18px rgba(0,0,0,.6);border-color:var(--copper-line);}
.kpi:hover::after{opacity:1;}
.kpi .k{font-variant-numeric:tabular-nums;}

/* Panels: feine Innenkante + smootherer Schatten */
.panel{transition:border-color .2s,box-shadow .2s;}
.panel:hover{border-color:var(--line-strong);}

/* Buttons: Verlauf + Press-Feedback */
.btn{transition:transform .12s ease,background .2s,border-color .2s,box-shadow .2s;}
.btn:active{transform:translateY(1px) scale(.99);}
.btn.primary{background:linear-gradient(135deg,var(--copper),var(--copper-2));border:0;box-shadow:0 8px 20px -12px rgba(221,149,89,.8);}
.btn.primary:hover{filter:brightness(1.06);box-shadow:0 12px 26px -12px rgba(221,149,89,.9);}

/* Aktiver Nav-Eintrag: Akzentbalken */
.nav a{position:relative;transition:background .18s,color .18s;}
.nav a.active::before{content:"";position:absolute;left:-2px;top:18%;height:64%;width:3px;border-radius:3px;background:linear-gradient(180deg,var(--copper),var(--copper-2));}

/* Karten/Listenzeilen: sanfter Hover */
.zrow{transition:background .16s;border-radius:10px;}
.zrow:hover{background:var(--surface-2);}
.frist{transition:transform .16s,background .16s;}
.frist.clk:hover{transform:translateX(2px);}

/* Brand-Mark: warmer Verlauf */
.brand .mark{background:linear-gradient(135deg,var(--copper-soft),transparent);border:1px solid var(--copper-line);}

/* Eyebrow: edler Look */
.eyebrow{letter-spacing:.14em;}

/* Sanfte Einblend-Animation für Views */
#view{animation:viewIn .32s cubic-bezier(.2,.8,.2,1);}
@keyframes viewIn{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}}

/* Pills runder & klarer */
.pill{border-radius:999px;font-weight:600;letter-spacing:.01em;}

/* Scrollbar dezent */
*::-webkit-scrollbar{width:10px;height:10px;}
*::-webkit-scrollbar-thumb{background:var(--surface-3);border-radius:8px;border:2px solid var(--canvas);}
*::-webkit-scrollbar-thumb:hover{background:var(--line-strong);}

@media (prefers-reduced-motion: reduce){
  #view,.kpi,.btn,.bar i,.risk i{animation:none !important;transition:none !important;}
}

/* ---------- ProfiSuite Intelligence (AI) ---------- */
.ai-quick{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px;margin-bottom:16px;}
.ai-chip{display:flex;align-items:center;gap:10px;text-align:left;padding:13px 14px;border-radius:14px;cursor:pointer;
  background:var(--surface);border:1px solid var(--line);color:var(--ink);transition:transform .15s,border-color .15s,background .15s;font-size:13.5px;}
.ai-chip:hover{transform:translateY(-2px);border-color:var(--copper-line);background:var(--surface-2);}
.ai-chip svg{width:18px;height:18px;color:var(--copper-2);flex:none;}
.ai-chip span{font-weight:600;}
.ai-panel{display:flex;flex-direction:column;padding:0;overflow:hidden;}
.ai-log{min-height:240px;max-height:52vh;overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:12px;}
.ai-empty{margin:auto;text-align:center;color:var(--ink-faint);max-width:440px;}
.ai-empty svg{width:40px;height:40px;color:var(--copper);opacity:.6;margin-bottom:10px;}
.ai-msg{max-width:88%;padding:11px 14px;border-radius:14px;font-size:14px;line-height:1.55;}
.ai-msg.user{align-self:flex-end;background:linear-gradient(135deg,var(--copper),var(--copper-2));color:#1a140d;border-bottom-right-radius:4px;}
.ai-msg.bot{align-self:flex-start;background:var(--surface-2);border:1px solid var(--line);border-bottom-left-radius:4px;}
.ai-msg.bot.err{background:var(--rust-soft);border-color:rgba(207,107,77,.3);}
.ai-typing{color:var(--ink-faint);font-style:italic;}
.ai-src{margin-top:8px;font-size:12px;color:var(--ink-faint);}
.ai-src a{color:var(--copper-2);}
.ai-hint{margin-top:8px;font-size:12px;color:var(--ink-dim);}
.ai-hint code{background:var(--canvas);padding:1px 5px;border-radius:5px;font-family:var(--mono);font-size:11px;}
.ai-input{display:flex;gap:8px;padding:12px;border-top:1px solid var(--line);background:var(--surface);}
.ai-input textarea{flex:1;resize:none;background:var(--canvas);border:1px solid var(--line);border-radius:10px;padding:10px 12px;color:var(--ink);font:inherit;font-size:14px;}
.ai-input textarea:focus{outline:none;border-color:var(--copper);}
.ai-foot{padding:8px 14px;font-size:11.5px;color:var(--ink-faint);display:flex;align-items:center;gap:6px;border-top:1px solid var(--line);}
.ai-foot svg{width:13px;height:13px;}

/* ============================================================
   EDITIONEN — zwei Zielgruppen, zwei Designs
   ============================================================ */
/* --- VERWALTUNG: professionell, dicht, dunkel (Default-Palette, hier nur Feinschliff) --- */
.app.edition-verwaltung .brand b{letter-spacing:.005em;}
.app.edition-verwaltung .ed-pill{background:rgba(122,142,120,.16);color:#bfcdb0;border-color:rgba(159,176,131,.3);}
.app.edition-verwaltung .nav a{border-radius:9px;}                 /* etwas sachlicher */

/* --- PRIVAT: hell, warm, freundlich (eigenes Theme über Variablen-Override) --- */
.app.edition-privat{
  --canvas:#f1ece3; --canvas-2:#fbf8f3; --surface:#ffffff; --surface-2:#f5efe6; --surface-3:#ebe1d3;
  --line:rgba(45,34,22,.15); --line-strong:rgba(45,34,22,.28);
  --ink:#1e1710; --ink-dim:#473d31; --ink-faint:#6e6353;
  --copper:#b05e22; --copper-2:#8f4a17; --copper-soft:rgba(176,94,34,.12); --copper-line:rgba(176,94,34,.32);
  --sage:#1f8c7c; --sage-soft:rgba(31,140,124,.15); --rust:#a8431f; --rust-soft:rgba(168,67,31,.13);
  --gold:#8a6620; --gold-soft:rgba(138,102,32,.16);
  --glow-1:rgba(176,94,34,.12); --glow-2:rgba(88,122,70,.10);
  --shadow:0 1px 0 rgba(255,255,255,.8) inset, 0 20px 46px -26px rgba(70,52,30,.45);
  --shadow-soft:0 14px 30px -20px rgba(70,52,30,.36);
  --r-s:14px; --r-m:20px; --r-l:26px; --r-xl:34px;
}
.app.edition-privat .btn.primary{color:#fff;}
.app.edition-privat .ai-msg.user{color:#fff;}
.app.edition-privat .ed-pill{background:rgba(198,120,62,.14);color:#a85f2b;border-color:rgba(198,120,62,.32);}
.app.edition-privat .sidebar{background:linear-gradient(180deg,#fffdf9,#f3ebdd);border-right:1px solid var(--line);}
.app.edition-privat .brand .mark{background:linear-gradient(135deg,#f3d9bf,#fff);}
.app.edition-privat .nav a{border-radius:14px;}                    /* weich */
.app.edition-privat .nav a.active{background:var(--copper-soft);}
.app.edition-privat body, .app.edition-privat{ }
.app.edition-privat .mtab{background:color-mix(in oklab,#fffdf9 90%,transparent);}
.app.edition-privat .topbar, .app.edition-privat .mheader{background:color-mix(in oklab,#f6f1e9 86%,transparent);}
.app.edition-privat .kpi:hover{box-shadow:0 14px 30px -20px rgba(80,60,30,.4);}

/* Edition-Pill */
.ed-pill{display:inline-block;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  padding:2px 8px;border-radius:20px;border:1px solid var(--copper-line);background:var(--copper-soft);color:var(--copper-2);}
.ed-pill.sm{font-size:9px;padding:1px 7px;}

/* DreiHundertSechzig-Wortmarke */
.side-foot{margin-top:10px;padding-top:12px;border-top:1px solid var(--line);}
.b360{display:inline-flex;align-items:center;gap:7px;color:var(--ink-faint);font-size:11px;letter-spacing:.06em;}
.b360 svg{width:16px;height:16px;color:var(--lime);transform:rotate(-20deg);}
.b360 b{font-weight:600;letter-spacing:.04em;}

/* ============================================================
   MOBILE-HEADER (Tablet/Handy) — Sidebar entfällt, Brand bleibt sichtbar
   ============================================================ */
.mheader{display:none;}
@media(max-width:900px){
  .mheader{display:flex;align-items:center;justify-content:space-between;gap:10px;
    position:sticky;top:0;z-index:30;padding:calc(10px + env(safe-area-inset-top)) 16px 10px;
    background:color-mix(in oklab,var(--canvas) 88%,transparent);backdrop-filter:blur(14px);border-bottom:1px solid var(--line);}
  .mh-brand{display:flex;align-items:center;gap:10px;}
  .mh-brand .mark{width:34px;height:34px;border-radius:11px;display:grid;place-items:center;background:var(--copper-soft);border:1px solid var(--copper-line);color:var(--copper-2);}
  .mh-brand .mark svg{width:18px;height:18px;}
  .mh-brand b{font-family:var(--serif);font-size:16px;display:block;line-height:1.1;}
  .mh-360 .b360 b{display:none;} /* nur Marke-Icon auf engem Screen */
}
@media(min-width:901px){ .mheader{display:none;} }

/* ============================================================
   MOBILE-FEINSCHLIFF (iOS + Android)
   ============================================================ */
/* Schmaler Desktop / Tablet quer: linke Leiste weicht dem Topbar-Menü (kein Doppel-Menü) */
@media(max-width:1100px) and (min-width:901px){
  .app{grid-template-columns:1fr;}
  .sidebar{display:none;}
  .tb-menu{display:inline-flex;}
}
/* iOS: 16px Mindestgröße verhindert Auto-Zoom beim Fokus */
@media(max-width:900px){
  input,select,textarea{font-size:16px !important;}
  .head h1{font-size:clamp(22px,6vw,30px);}
  .head{flex-direction:column;align-items:flex-start;gap:12px;}
  .head .btn, .head>div>.btn{width:auto;}
  .btn{min-height:44px;}                 /* Touch-Ziele */
  .nav a, .mtab a{min-height:44px;}
  .content{padding-left:16px;padding-right:16px;}
  .zrow{flex-wrap:wrap;}
  .zr-act{width:100%;}
  /* Modale als Bottom-Sheet */
  .modal-bg{align-items:flex-end;}
  .modal{max-width:100%;width:100%;border-radius:22px 22px 0 0;max-height:92vh;animation:sheetUp .28s cubic-bezier(.2,.8,.2,1);}
  .ai-quick{grid-template-columns:1fr 1fr;}
  .sim-grid{grid-template-columns:1fr 1fr;}
}
@keyframes sheetUp{from{transform:translateY(100%);}to{transform:translateY(0);}}
@media(max-width:380px){ .kpis{grid-template-columns:1fr;} .ai-quick{grid-template-columns:1fr;} }

/* ============================================================
   KOLLABORATION + SUPPORT (Postfach · Teamchat · Hilfe · Diagnose)
   ============================================================ */
/* Hilfe-Button (schwebend) */
.help-fab{position:fixed;right:20px;bottom:calc(20px + env(safe-area-inset-bottom));z-index:35;height:48px;min-width:48px;padding:0;border-radius:26px;
  border:1px solid rgba(255,255,255,.14);background:linear-gradient(135deg,var(--copper),var(--copper-2));color:#fff;
  display:flex;align-items:center;gap:0;overflow:hidden;cursor:pointer;box-shadow:0 10px 30px -10px var(--glow-copper,rgba(224,106,56,.6)), 0 2px 8px rgba(0,0,0,.25);transition:min-width .25s ease, transform .15s ease, box-shadow .25s ease;}
.help-fab svg{width:21px;height:21px;flex:none;margin:0 13.5px;}
.help-fab .hf-label{font-size:13.5px;font-weight:600;white-space:nowrap;max-width:0;opacity:0;transition:max-width .25s ease, opacity .2s ease, margin .25s ease;margin:0;}
.help-fab:hover{transform:translateY(-2px);box-shadow:0 16px 40px -10px var(--glow-copper,rgba(224,106,56,.8)), 0 3px 10px rgba(0,0,0,.3);}
.help-fab:hover .hf-label{max-width:80px;opacity:1;margin-right:16px;}
.help-fab:hover svg{margin-right:8px;}
@media(max-width:900px){ .help-fab{bottom:calc(74px + env(safe-area-inset-bottom));right:14px;height:42px;min-width:42px;} .help-fab svg{margin:0 12.5px;} .help-fab:hover .hf-label,.help-fab .hf-label{max-width:0;opacity:0;margin:0;} }
.help-tip{margin-top:14px;padding:12px 14px;border-radius:var(--r-m);background:var(--copper-soft);border:1px solid var(--copper-line);color:var(--ink-dim);font-size:13px;display:flex;gap:8px;align-items:flex-start;}
.help-tip svg{width:18px;height:18px;color:var(--copper);flex:none;margin-top:1px;}
.help-contact{margin-top:12px;font-size:12.5px;color:var(--ink-faint);}
.help-contact a{color:var(--copper-2);}

/* Nav-Badge (ungelesen) */
.nav a .tag{background:var(--copper);color:#fff;border-radius:20px;padding:1px 7px;font-size:10px;letter-spacing:0;text-transform:none;font-weight:700;}

/* Postfach */
.inbox-list{display:flex;flex-direction:column;gap:10px;margin-top:8px;}
.inbox-item{display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border:1px solid var(--line);border-radius:var(--r-m);background:var(--surface);cursor:pointer;transition:border-color .15s,transform .15s;}
.inbox-item:hover{border-color:var(--copper-line);transform:translateY(-1px);}
.inbox-item.unread{background:var(--surface-2);border-color:var(--copper-line);}
.ii-dot{width:9px;height:9px;border-radius:50%;background:var(--ink-faint);margin-top:6px;flex:none;}
.inbox-item.unread .ii-dot{background:var(--copper);}
.ii-dot.imp{background:var(--rust);}
.ii-main{flex:1;min-width:0;}
.ii-top{display:flex;justify-content:space-between;gap:10px;align-items:baseline;}
.ii-top b{font-size:14.5px;}
.ii-when{font-size:11px;color:var(--ink-faint);flex:none;}
.ii-body{font-size:13px;color:var(--ink-dim);margin-top:3px;line-height:1.5;}
.ii-link{display:inline-block;margin-top:6px;font-size:12.5px;color:var(--copper-2);cursor:pointer;}
.ii-arch{flex:none;background:transparent;border:1px solid var(--line);border-radius:9px;width:32px;height:32px;display:grid;place-items:center;color:var(--ink-faint);cursor:pointer;}
.ii-arch:hover{color:var(--sage);border-color:var(--sage);}
.ii-arch svg{width:15px;height:15px;}

/* Teamchat */
.chat-wrap{display:flex;flex-direction:column;height:calc(100vh - 230px);min-height:340px;border:1px solid var(--line);border-radius:var(--r-l);background:var(--surface);overflow:hidden;margin-top:8px;}
.chat-scroll{flex:1;overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:10px;}
.chat-empty{margin:auto;color:var(--ink-faint);font-size:14px;}
.chat-row{display:flex;gap:9px;align-items:flex-end;max-width:78%;}
.chat-row.mine{align-self:flex-end;flex-direction:row-reverse;}
.chat-av{width:30px;height:30px;border-radius:50%;background:var(--surface-3);display:grid;place-items:center;font-size:13px;font-weight:700;color:var(--ink-dim);flex:none;}
.chat-bubble{background:var(--surface-2);border:1px solid var(--line);border-radius:16px;padding:9px 13px;font-size:14px;line-height:1.45;white-space:pre-wrap;word-break:break-word;}
.chat-row.mine .chat-bubble{background:linear-gradient(135deg,var(--copper),var(--copper-2));color:#fff;border-color:transparent;}
.chat-meta{font-size:10.5px;opacity:.7;margin-bottom:3px;}
.chat-input{display:flex;gap:9px;padding:12px;border-top:1px solid var(--line);background:var(--canvas-2);}
.chat-input input{flex:1;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:11px 14px;color:var(--ink);font-size:15px;}
.chat-input input:focus{border-color:var(--copper-line);outline:none;}
.chat-input .btn{flex:none;padding:0 16px;}
.chat-input .btn svg{width:18px;height:18px;}

/* Mobile-Header: Postfach-Icon */
.mh-right{display:flex;align-items:center;gap:12px;}
.mh-mail{position:relative;color:var(--ink-dim);}
.mh-mail svg{width:22px;height:22px;}
.mh-badge{position:absolute;top:-6px;right:-7px;background:var(--copper);color:#fff;font-size:9px;font-weight:700;border-radius:20px;padding:1px 5px;}

/* Diagnose */
.diag-out{margin-top:8px;}
.diag-load{padding:40px;text-align:center;color:var(--ink-faint);}
.diag-load svg{width:22px;height:22px;vertical-align:middle;margin-right:8px;}
.diag-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
@media(max-width:900px){ .diag-grid{grid-template-columns:1fr;} }
.diag-card{border:1px solid var(--line);border-radius:var(--r-m);background:var(--surface);padding:16px 18px;}
.diag-card h3{font-size:13px;text-transform:uppercase;letter-spacing:.12em;color:var(--copper);margin:0 0 10px;}
.diag-more{grid-column:1/-1;border:1px solid var(--line);border-radius:14px;padding:2px 16px;background:var(--surface);}
.diag-more>summary{cursor:pointer;padding:13px 2px;font-size:13px;font-weight:600;color:var(--ink-dim);list-style:none;display:flex;align-items:center;gap:8px;}
.diag-more>summary::-webkit-details-marker{display:none;}
.diag-more>summary svg{width:16px;height:16px;flex:0 0 auto;}
.diag-more[open]>summary{border-bottom:1px solid var(--line);margin-bottom:4px;}
.diag-tbl{width:100%;font-size:13px;border-collapse:collapse;}
.diag-tbl td{padding:5px 0;vertical-align:top;border-bottom:1px solid var(--line);}
.diag-tbl td:first-child{color:var(--ink-faint);width:42%;padding-right:10px;}
.diag-tbl td:last-child{color:var(--ink-dim);word-break:break-word;}
.diag-tbl .ok{color:var(--sage);}
.diag-tbl .bad{color:var(--rust);}
.diag-errs{font-size:12px;font-family:var(--mono);max-height:160px;overflow:auto;}
.diag-err{padding:4px 0;color:var(--ink-dim);border-bottom:1px solid var(--line);}

/* Reparatur-Buttons */
.repair-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
@media(max-width:560px){ .repair-grid{grid-template-columns:1fr;} }
.btn.danger{border-color:var(--rust);color:var(--rust);}
.btn.danger:hover{background:var(--rust-soft);}
.btn.sm{padding:7px 14px;min-height:auto;font-size:13px;}

/* Update-Banner */
.update-banner{position:fixed;top:0;left:0;right:0;z-index:70;display:flex;align-items:center;justify-content:center;gap:14px;
  padding:calc(9px + env(safe-area-inset-top)) 16px 9px;
  background:linear-gradient(90deg,var(--copper),var(--copper-2));color:#fff;font-size:14px;font-weight:600;
  box-shadow:0 6px 20px -8px rgba(0,0,0,.5);animation:rise .3s both;}
.update-banner span{display:inline-flex;align-items:center;gap:8px;}
.update-banner svg{width:18px;height:18px;}
.update-banner .btn{background:rgba(255,255,255,.18);border:1px solid rgba(255,255,255,.5);color:#fff;}
.update-banner .btn:hover{background:rgba(255,255,255,.3);}
.update-banner .upd-x{background:transparent;border:0;color:#fff;font-size:22px;line-height:1;padding:0 2px 0 6px;cursor:pointer;opacity:.8;font-weight:700;}
.update-banner .upd-x:hover{opacity:1;}

/* ============================================================
   KOMFORT-MODUS (große Schrift / seniorenfreundlich)
   ============================================================ */
.komfort-toggle{display:flex;align-items:center;justify-content:center;gap:9px;width:100%;margin-top:8px;
  padding:11px 12px;border-radius:14px;border:1px solid var(--copper-line);background:var(--copper-soft);
  color:var(--copper-2);font-weight:700;font-size:13.5px;cursor:pointer;transition:all .15s;}
.komfort-toggle:hover{background:var(--copper);color:#fff;}
.komfort-toggle.on{background:var(--copper);color:#fff;box-shadow:var(--shadow-soft);}
.komfort-toggle .kf-a{font-size:16px;font-weight:800;line-height:1;}
.komfort-toggle.on:hover{filter:brightness(1.05);}

.app.komfort{font-size:16.5px;}
.app.komfort .nav a{padding-top:12px;padding-bottom:12px;}
.app.komfort .nav a span{font-size:16px;}
.app.komfort .nav .lbl{font-size:12px;}
.app.komfort .head h1{font-size:clamp(32px,5vw,48px);}
.app.komfort .head p{font-size:18px;max-width:52ch;}
.app.komfort .head .eyebrow{font-size:13px;}
.app.komfort .btn{min-height:54px;font-size:16.5px;padding:14px 22px;}
.app.komfort .btn svg{width:20px;height:20px;}
.app.komfort .empty h3{font-size:26px;}
.app.komfort .empty p{font-size:17px;}
.app.komfort .kpi .k-val{font-size:34px;}
.app.komfort .ii-top b{font-size:17px;}
.app.komfort .ii-body,.app.komfort .chat-bubble,.app.komfort p{font-size:16.5px;}
.app.komfort .obj-card h3{font-size:20px;}

/* ============================================================
   MODERNE FEINHEITEN (beide Editionen)
   ============================================================ */
.btn.primary{background:linear-gradient(135deg,var(--copper),var(--copper-2));border:1px solid var(--copper-line);
  box-shadow:0 10px 24px -12px var(--copper),0 1px 0 rgba(255,255,255,.18) inset;}
.btn.primary:hover{transform:translateY(-1px);filter:brightness(1.04);}
.empty{background:linear-gradient(180deg,var(--surface),var(--canvas-2));}
.empty .e-ic{background:linear-gradient(135deg,var(--copper-soft),transparent);border:1px solid var(--copper-line);}
.app.edition-privat .empty h3{color:var(--ink);}
.app.edition-privat .head h1{color:var(--ink);}
.app.edition-privat .topbar .crumb b{color:var(--ink);}
/* Privat: weichere, modernere Karten */
.app.edition-privat .panel,.app.edition-privat .obj-card,.app.edition-privat .kpi{box-shadow:var(--shadow-soft);}
.app.edition-privat .nav a.active{background:var(--copper);color:#fff;box-shadow:0 8px 20px -10px var(--copper);}
.app.edition-privat .nav a.active svg{color:#fff;}

/* ============================================================
   PDF-Vorschau · Fotos · Clear-Buttons · Zurück
   ============================================================ */
/* PDF-Vorschau-Modal */
.modal.modal-pdf{width:min(1080px,96vw);display:flex;flex-direction:column;height:min(94vh,1040px);max-height:94vh;overflow:hidden;}
.modal.modal-pdf>.m-head,.modal.modal-pdf>.doc-lang-bar,.modal.modal-pdf>.doc-disclaimer,.modal.modal-pdf>.sig-rule,.modal.modal-pdf>.m-foot{flex:0 0 auto;}
.doc-disclaimer{display:flex;gap:7px;align-items:center;font-size:11px;color:var(--ink-faint);margin:8px 14px 0;line-height:1.4;}
.doc-disclaimer svg{width:13px;height:13px;flex:none;color:var(--ink-faint);}
.modal.modal-pdf .pdf-frame-wrap{flex:1 1 auto;min-height:200px;overflow:hidden;}
.modal.modal-pdf .pdf-frame-wrap .pdf-frame{height:100%;min-height:0;}
.modal-pdf .m-foot{ flex-wrap:wrap; justify-content:flex-end; }
.modal-pdf .m-foot .btn{ flex:0 0 auto; }
.doc-menu{ position:relative; display:inline-flex; }
.doc-menu>summary{ list-style:none; cursor:pointer; }
.doc-menu>summary::-webkit-details-marker{ display:none; }
.doc-menu>summary::marker{ content:""; }
.doc-menu-pop{ position:absolute; bottom:calc(100% + 8px); right:0; z-index:40; display:flex; flex-direction:column; gap:6px; padding:8px; min-width:230px; background:var(--surface); border:1px solid var(--line); border-radius:14px; box-shadow:0 14px 38px rgba(0,0,0,.20); }
.doc-menu-pop .btn{ width:100%; justify-content:flex-start; }
@media (max-width:680px){ .doc-menu{ display:flex; } .doc-menu-pop{ left:0; right:0; min-width:0; } }
.modal-pdf .pdf-frame{ height:min(70vh,760px); }
.pdf-frame-wrap{padding:0 18px;}
.pdf-frame{width:100%;height:min(64vh,640px);border:1px solid var(--line);border-radius:var(--r-m);background:#fff;}
.foto-view{padding:0 18px;text-align:center;}
.foto-view img{max-width:100%;max-height:64vh;border-radius:var(--r-m);border:1px solid var(--line);}

/* Fotos & Dokumente */
.panel-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;flex-wrap:wrap;}
.panel-head h3{margin:0;}
.foto-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:12px;}
.foto-tile{position:relative;aspect-ratio:4/3;border-radius:var(--r-m);overflow:hidden;border:1px solid var(--line);background:var(--surface-2);cursor:pointer;transition:transform .15s,border-color .15s;}
.foto-tile:hover{transform:translateY(-2px);border-color:var(--copper-line);}
.foto-tile img{width:100%;height:100%;object-fit:cover;display:block;}
.foto-pdf{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;color:var(--copper-2);font-size:12px;font-weight:600;}
.foto-pdf svg{width:30px;height:30px;}
.foto-del{position:absolute;top:6px;right:6px;width:26px;height:26px;border-radius:50%;border:0;background:rgba(20,16,12,.62);color:#fff;cursor:pointer;font-size:12px;line-height:1;display:grid;place-items:center;backdrop-filter:blur(4px);}
.foto-del:hover{background:var(--rust);}
.foto-empty{grid-column:1/-1;color:var(--ink-faint);font-size:13.5px;padding:18px 4px;text-align:center;border:1.5px dashed var(--line-strong);border-radius:var(--r-m);}

/* X-Button in Eingaben */
.inp-x{position:absolute;top:50%;transform:translateY(-50%);right:9px;width:22px;height:22px;border-radius:50%;border:0;
  background:var(--surface-3);color:var(--ink-dim);font-size:11px;line-height:1;cursor:pointer;display:none;place-items:center;padding:0;}
.inp-x:hover{background:var(--rust);color:#fff;}
.field .inp-x{right:10px;}
.search .inp-x{right:8px;}
.field input,.field textarea,.search input{padding-right:34px !important;}
.app.komfort .inp-x{width:28px;height:28px;font-size:13px;}

/* Zurück-Button (Topbar) */
.back-btn{display:inline-flex;align-items:center;gap:6px;background:var(--surface);border:1px solid var(--line-strong);
  border-radius:11px;padding:8px 13px;color:var(--ink-dim);font-size:13px;font-weight:600;cursor:pointer;margin-right:12px;transition:all .15s;}
.back-btn:hover{border-color:var(--copper-line);color:var(--copper-2);background:var(--copper-soft);}
.back-btn svg{width:16px;height:16px;}
@media(max-width:560px){ .back-btn span{display:none;} .back-btn{padding:9px;} }
.app.komfort .back-btn{padding:11px 16px;font-size:15px;min-height:44px;}

/* Speicher-Anzeige (Fotos) */
.store-meter{margin:0 0 14px;}
.sm-bar{height:7px;border-radius:8px;background:var(--surface-3);overflow:hidden;border:1px solid var(--line);}
.sm-bar span{display:block;height:100%;background:linear-gradient(90deg,var(--sage),var(--copper));border-radius:8px;transition:width .3s;}
.store-meter.warn .sm-bar span{background:linear-gradient(90deg,var(--gold),var(--rust));}
.sm-txt{font-size:11.5px;color:var(--ink-faint);margin-top:5px;}
.store-meter.warn .sm-txt{color:var(--rust);font-weight:600;}

/* ===== Moderne Typo-Politur (Space Grotesk / Inter) ===== */
.head h1,.block-screen h1,.auth-h{letter-spacing:-.025em;}
.kpi .k-val,.obj-card .cover h3,.modal .m-head h2{letter-spacing:-.02em;}
.eyebrow,.head .eyebrow,.nav .lbl,.brand small{font-family:var(--serif);font-weight:600;}
.brand b,.mh-brand b,.auth-brand b{letter-spacing:-.015em;}
.btn{letter-spacing:.005em;}

/* ===== Display-Headlines: Unbounded + Verlauf + Glow (edition-adaptiv) ===== */
:root{ --glow-copper:rgba(221,149,89,.32); }
.app.edition-privat{ --glow-copper:rgba(176,94,34,.16); }

.brand b,.mh-brand b,.auth-brand b,
.head h1,.auth-h,.block-screen h1{ font-family:var(--display); font-weight:700; }

.head h1,.auth-h,.block-screen h1{
  letter-spacing:-.04em; line-height:1.02;
  background:linear-gradient(118deg,var(--ink) 6%,var(--copper-2) 82%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;
  filter:drop-shadow(0 3px 24px var(--glow-copper));
}
.brand b,.mh-brand b,.auth-brand b{
  letter-spacing:-.02em;
  background:linear-gradient(115deg,var(--ink),var(--copper) 92%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;
  filter:drop-shadow(0 2px 14px var(--glow-copper));
}
/* KPI-Zahlen: dezenter Verlauf (bleibt Space Grotesk = passt in die Karte) */
.kpi .k-val{
  letter-spacing:-.03em;
  background:linear-gradient(120deg,var(--ink),var(--copper-2) 95%);
  -webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent;color:transparent;
}
.kpi .k-val small{ -webkit-text-fill-color:var(--ink-faint); color:var(--ink-faint); }

/* ============================================================
   FUTURISTISCHE EFFEKTE: KPI-Glas/Glow, animierte Headline-Verläufe, Marken-Shine
   ============================================================ */

/* --- KPI-Karten: Glas-Rahmen + Glow + Hover --- */
.kpi{ transition:transform .4s cubic-bezier(.2,.7,.3,1), box-shadow .4s ease, border-color .4s ease; }
.kpi::before{ content:""; position:absolute; inset:0; border-radius:inherit; padding:1px; pointer-events:none; z-index:2;
  background:linear-gradient(140deg, rgba(255,255,255,.22), transparent 28%, transparent 68%, var(--copper-line));
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
  -webkit-mask-composite:xor; mask-composite:exclude; opacity:.65; transition:opacity .4s ease; }
.kpi:hover{ transform:translateY(-4px); border-color:var(--copper-line);
  box-shadow:0 18px 46px -16px var(--glow-copper), 0 2px 0 rgba(255,255,255,.04) inset; }
.kpi:hover::before{ opacity:1; }
.kpi:hover::after{ transform:scale(1.25); transition:transform .5s ease; }

/* --- Headlines: sanft wandernder Verlauf + atmender Glow --- */
.head h1,.auth-h,.block-screen h1{ background-size:220% 220%; }
@keyframes psHeadShift{ 0%{background-position:0% 50%} 50%{background-position:100% 50%} 100%{background-position:0% 50%} }
@keyframes psHeadGlow{ 0%,100%{filter:drop-shadow(0 3px 20px var(--glow-copper))} 50%{filter:drop-shadow(0 4px 34px var(--glow-copper))} }

/* --- Marke: feiner Shine-Sweep --- */
.brand b,.mh-brand b,.auth-brand b{
  background:
    linear-gradient(100deg, transparent 38%, rgba(255,255,255,.55) 50%, transparent 62%),
    linear-gradient(115deg, var(--ink), var(--copper) 92%);
  background-size:230% auto, 100% 100%;
  background-position:135% center, 0 0;
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; color:transparent;
}
@keyframes psShine{ 0%{background-position:135% center, 0 0} 55%{background-position:-35% center, 0 0} 100%{background-position:-35% center, 0 0} }

@media (prefers-reduced-motion: no-preference){
  .head h1,.auth-h,.block-screen h1{ animation:psHeadShift 16s ease-in-out infinite, psHeadGlow 7s ease-in-out infinite; }
  .brand b,.mh-brand b,.auth-brand b{ animation:psShine 7s ease-in-out infinite; }
}

/* ===== Animiertes Logo (responsives Mark) ===== */
.brand .mark{ color:#fff; }
.ps-logo{ display:block; overflow:visible; }
.ps-ring{ transform-box:fill-box; transform-origin:50% 50%; }
@media (prefers-reduced-motion: no-preference){
  .ps-ring{ animation:psRing 9s linear infinite; }
  .mark:hover .ps-roof{ animation:psRoofBob .55s ease; }
}
@keyframes psRing{ to{ transform:rotate(360deg); } }
@keyframes psRoofBob{ 0%,100%{ transform:translateY(0); } 50%{ transform:translateY(-1.6px); } }

/* Diagnose: Lizenz-Hinweise */
.diag-warn{background:var(--gold-soft);color:var(--gold);border:1px solid var(--gold);border-radius:10px;padding:10px 12px;font-size:12.5px;margin:0 0 10px;line-height:1.5;}
.diag-ok{background:var(--sage-soft);color:var(--sage);border:1px solid var(--sage);border-radius:10px;padding:9px 12px;font-size:12.5px;margin:0 0 10px;}
.feat-row td .y{color:var(--sage);font-weight:700;} .feat-row td .n{color:var(--rust);font-weight:700;}

/* ===== Mieterakte: Dokument-Kategorien ===== */
.form-eyebrow{font-family:var(--serif);font-weight:600;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-faint);margin:4px 0 8px;}
.doc-list{display:flex;flex-direction:column;gap:8px;}
.doc-row{border:1px solid var(--line);border-radius:12px;padding:10px 12px;background:var(--surface);}
.doc-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;}
.doc-name{display:flex;align-items:center;gap:8px;font-weight:600;font-size:13.5px;flex:1;min-width:140px;}
.doc-name svg{width:16px;height:16px;color:var(--copper-2);flex:none;}
.doc-status{font-size:11.5px;font-weight:600;padding:3px 9px;border-radius:20px;letter-spacing:.02em;}
.doc-status.ok{background:var(--sage-soft);color:var(--sage);}
.doc-status.missing{background:var(--gold-soft);color:var(--gold);}
.foto-grid.sm{margin-top:10px;grid-template-columns:repeat(auto-fill,minmax(64px,1fr));gap:8px;}
.foto-grid.sm .foto-tile{aspect-ratio:1;}

/* Mieterakte: Vollständigkeit + DSGVO */
.akte-summary{margin:10px 0 4px;}
.akte-bar{display:flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;padding:9px 12px;border-radius:10px;}
.akte-bar svg{width:16px;height:16px;flex:none;}
.akte-bar.ok{background:var(--sage-soft);color:var(--sage);}
.akte-bar.warn{background:var(--gold-soft);color:var(--gold);}
.dsgvo-note{display:flex;align-items:flex-start;gap:8px;font-size:12px;line-height:1.5;color:var(--ink-dim);background:var(--surface-2);border:1px solid var(--line);border-radius:10px;padding:9px 11px;margin-top:8px;}
.dsgvo-note svg{width:15px;height:15px;flex:none;color:var(--copper-2);margin-top:1px;}

/* Globale Suche: Ergebnis-Dropdown */
.search{position:relative;}
.search-res{position:absolute;top:calc(100% + 6px);left:0;right:0;z-index:60;background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow-pop,0 18px 50px -20px rgba(0,0,0,.4));padding:6px;max-height:60vh;overflow:auto;min-width:240px;}
.sr-item{display:flex;align-items:center;gap:10px;width:100%;text-align:left;background:none;border:0;padding:9px 10px;border-radius:10px;cursor:pointer;color:var(--ink);}
.sr-item:hover{background:var(--surface-2);}
.sr-type{font-size:10px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--copper-2);background:var(--copper-soft);border-radius:6px;padding:2px 7px;flex:none;}
.sr-main{display:flex;flex-direction:column;line-height:1.25;min-width:0;}
.sr-main b{font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sr-main small{font-size:11.5px;color:var(--ink-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.sr-empty{padding:12px;font-size:12.5px;color:var(--ink-faint);text-align:center;}

/* Bankabgleich */
.bank-drop{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px;}
.bank-sum{font-size:13px;font-weight:600;margin:4px 0 10px;color:var(--ink-dim);}
.bank-tbl{display:flex;flex-direction:column;gap:8px;}
.bank-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap;border:1px solid var(--line);border-radius:12px;padding:9px 11px;background:var(--surface);}
.bank-tx{display:flex;flex-direction:column;flex:1;min-width:160px;line-height:1.3;}
.bank-tx b{font-size:14px;}
.bank-tx span{font-size:11.5px;color:var(--ink-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;}
.bank-sel{flex:1;min-width:180px;}
.bank-empty,.bank-sum{font-size:12.5px;}
.bank-empty{color:var(--gold);background:var(--gold-soft);border-radius:10px;padding:10px 12px;}
@media(max-width:560px){ .bank-sel{min-width:140px;} }

/* ===== ProfiSuite Intelligence: Insights, Fokus, Briefing ===== */
.insight-list{display:flex;flex-direction:column;gap:8px;}
.insight{display:flex;align-items:center;gap:12px;border:1px solid var(--line);border-left:3px solid var(--line);border-radius:12px;padding:11px 13px;background:var(--surface);}
.insight.high{border-left-color:var(--rust);} .insight.med{border-left-color:var(--gold);} .insight.info{border-left-color:var(--sage);}
.ins-ic{width:30px;height:30px;border-radius:9px;display:grid;place-items:center;background:var(--surface-2);flex:none;}
.ins-ic svg{width:16px;height:16px;color:var(--copper-2);}
.ins-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px;}
.ins-tx b{font-size:13.5px;} .ins-tx span{font-size:12px;color:var(--ink-dim);line-height:1.4;}
.ins-act{display:flex;gap:6px;flex-wrap:wrap;flex:none;}
.ai-focus{display:flex;align-items:center;gap:14px;border-radius:16px;padding:16px 18px;margin-bottom:16px;color:#fff;
  background:linear-gradient(125deg,var(--copper),#9c5b2e);box-shadow:0 16px 40px -18px var(--glow-copper,rgba(180,110,60,.6));}
.ai-focus .aif-ic{width:40px;height:40px;border-radius:12px;display:grid;place-items:center;background:rgba(255,255,255,.16);flex:none;}
.ai-focus .aif-ic svg{width:20px;height:20px;color:#fff;}
.aif-tx{flex:1;min-width:0;} .aif-h{font-size:11px;letter-spacing:.08em;text-transform:uppercase;opacity:.85;font-family:var(--serif);font-weight:600;}
.aif-tx b{display:block;font-size:16px;margin:2px 0;} .aif-tx span{font-size:12.5px;opacity:.92;line-height:1.45;}
.aif-act{display:flex;gap:8px;flex:none;flex-wrap:wrap;}
.ai-focus .btn.ghost{background:rgba(255,255,255,.16);border-color:rgba(255,255,255,.3);color:#fff;}
.ai-focus .btn.primary{background:#fff;color:var(--copper);}
.ai-brief{display:flex;align-items:center;gap:14px;border:1px solid var(--copper-line);border-radius:16px;padding:14px 16px;margin:16px 0;cursor:pointer;
  background:linear-gradient(120deg,var(--copper-soft),transparent);transition:transform .25s,box-shadow .25s;}
.ai-brief:hover{transform:translateY(-2px);box-shadow:0 14px 34px -18px var(--glow-copper,rgba(180,110,60,.5));}
.ai-brief .aib-ic{width:38px;height:38px;border-radius:11px;display:grid;place-items:center;background:linear-gradient(150deg,var(--copper),#9c5b2e);flex:none;}
.ai-brief .aib-ic svg{width:19px;height:19px;color:#fff;}
.aib-tx{flex:1;min-width:0;} .aib-h{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--copper-2);font-family:var(--serif);font-weight:600;display:flex;align-items:center;gap:8px;}
.aib-cnt{background:var(--copper);color:#fff;border-radius:20px;padding:1px 8px;font-size:10px;letter-spacing:.02em;}
.aib-tx b{display:block;font-size:15px;margin:1px 0;} .aib-tx span{font-size:12.5px;color:var(--ink-dim);line-height:1.4;}
.ai-msg h4{font-family:var(--serif);font-size:13.5px;margin:8px 0 4px;} .ai-msg ul{margin:4px 0 4px 2px;padding-left:18px;} .ai-msg li{margin:2px 0;font-size:13px;}
/* Nav-Akzent: KI hervorheben */
.sidebar a[data-go="/intelligence"] svg, .mtab a[data-go="/intelligence"] svg{ color:var(--copper); }
@media (prefers-reduced-motion: no-preference){ .sidebar a[data-go="/intelligence"]:not(.active) svg{ animation:psSpark 3.2s ease-in-out infinite; } }
@keyframes psSpark{ 0%,100%{opacity:.85;transform:scale(1);} 50%{opacity:1;transform:scale(1.12);} }
@media(max-width:560px){ .ai-focus,.ai-brief{flex-wrap:wrap;} .aif-act{width:100%;} }

/* KI-Aktionen unter Antworten */
.ai-actions{margin-top:10px;display:flex;gap:8px;flex-wrap:wrap;}
.ai-actions .btn{background:var(--copper-soft);border:1px solid var(--copper-line);color:var(--copper-2);}
/* Bankabgleich: Betrag pro Zeile */
.bank-amt{width:110px;flex:none;}
.bank-hint{display:flex;align-items:flex-start;gap:7px;font-size:11.5px;color:var(--ink-faint);margin-top:10px;}
.bank-hint svg{width:14px;height:14px;flex:none;margin-top:1px;}
@media(max-width:560px){ .bank-amt{width:100%;} }

/* ============================================================
   VISUAL / GLOW REFINEMENT
   ============================================================ */
/* Primär-Buttons: Verlauf + Glow + Sheen */
.btn.primary{ background:linear-gradient(135deg,var(--copper),#a85f30); border-color:transparent; color:#fff;
  box-shadow:0 10px 26px -12px var(--glow-copper,rgba(200,120,60,.7)), 0 1px 0 rgba(255,255,255,.25) inset; position:relative; overflow:hidden; }
.btn.primary:hover{ box-shadow:0 16px 38px -12px var(--glow-copper,rgba(200,120,60,.85)), 0 1px 0 rgba(255,255,255,.3) inset; transform:translateY(-1px); }
.btn.primary::after{ content:""; position:absolute; inset:0; background:linear-gradient(100deg,transparent 35%,rgba(255,255,255,.35) 50%,transparent 65%); background-size:250% 100%; background-position:140% 0; pointer-events:none; }
@media (prefers-reduced-motion: no-preference){ .btn.primary::after{ animation:psBtnSheen 6s ease-in-out infinite; } }
@keyframes psBtnSheen{ 0%{background-position:140% 0;} 55%{background-position:-40% 0;} 100%{background-position:-40% 0;} }

/* Panels: feiner Glas-Akzent oben + Hover-Lift */
.panel{ position:relative; transition:box-shadow .35s, transform .35s, border-color .35s; }
.panel::before{ content:""; position:absolute; left:0; right:0; top:0; height:1px; border-radius:inherit;
  background:linear-gradient(90deg,transparent, var(--copper-line), transparent); opacity:.7; pointer-events:none; }
.panel:hover{ box-shadow:0 22px 50px -28px var(--glow-copper,rgba(160,100,60,.45)); }
.panel h3{ position:relative; }

/* Section-Titel: Verlaufs-Unterstrich */
.section-head h2, .panel>h3{ background:linear-gradient(90deg,var(--ink),var(--copper-2)); -webkit-background-clip:text; background-clip:text; }
.section-head h2{ -webkit-text-fill-color:transparent; }

/* Pills & Status: dezenter Glow */
.pill.ok{ box-shadow:0 0 0 1px var(--sage-soft) inset, 0 4px 12px -6px rgba(52,179,160,.4); }
.pill.warn{ box-shadow:0 0 0 1px var(--gold-soft) inset, 0 4px 12px -6px rgba(180,140,40,.5); }
.pill.bad{ box-shadow:0 0 0 1px var(--rust-soft) inset, 0 4px 12px -6px rgba(170,70,60,.5); }

/* Insight-Karten: Glow beim Hover */
.insight{ transition:transform .25s, box-shadow .25s, border-color .25s; }
.insight:hover{ transform:translateY(-2px); box-shadow:0 16px 38px -22px var(--glow-copper,rgba(160,100,60,.5)); }
.insight.high:hover{ box-shadow:0 16px 38px -20px rgba(170,70,60,.45); }

/* Objekt-Karten: stärkerer Hover-Glow */
.obj-card{ transition:transform .3s, box-shadow .3s; }
.obj-card:hover{ transform:translateY(-3px); box-shadow:0 24px 52px -26px var(--glow-copper,rgba(160,100,60,.5)); }

/* Modal: weicher Glow-Rahmen */
.modal{ box-shadow:0 40px 100px -30px rgba(0,0,0,.5), 0 0 0 1px var(--line); }

/* Ambiente: sehr dezente Glow-Felder hinter dem Inhalt (nur Inhaltsspalte) */
.main{ position:relative; }
.main::before{ content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
  background:radial-gradient(620px 400px at 6% -6%, var(--copper-soft), transparent 60%),
            radial-gradient(560px 400px at 106% 2%, var(--copper-soft), transparent 62%);
  opacity:.45; }
.main>*{ position:relative; z-index:1; }

/* Checkbox-Label (Wirtschaftsdaten) */
.chk{display:flex;align-items:center;gap:9px;font-size:13.5px;margin:4px 0 2px;cursor:pointer;}
.chk input{width:auto;}

/* ============================================================
   DREIHUNDERTSECHZIG · MARKEN-LOGO (rotierender Glow-Ring)
   ============================================================ */
.b360{ display:inline-flex; align-items:center; gap:9px; font-size:11.5px; letter-spacing:.05em; color:var(--lime); }
.b360 svg{ width:19px; height:19px; color:var(--lime); transform:none;
  filter:drop-shadow(0 0 3px var(--lime-glow)) drop-shadow(0 0 7px rgba(163,230,53,.3)); overflow:visible; }
.b360-ring{ transform-box:fill-box; transform-origin:50% 50%; }
@media (prefers-reduced-motion: no-preference){ .b360-ring{ animation:b360spin 7s linear infinite; } }
@keyframes b360spin{ to{ transform:rotate(360deg); } }
.b360 b{ font-weight:700; letter-spacing:.01em; color:var(--ink); }
.b360 b i{ font-style:italic; font-weight:600; color:var(--lime); text-shadow:0 0 8px var(--lime-glow); }

/* Großes Marken-Signet (z. B. Einstellungen / About) */
.brand-hero{ display:flex; align-items:center; gap:16px; padding:18px 20px; border-radius:var(--r-l,18px);
  background:radial-gradient(120% 140% at 0% 0%, rgba(196,224,46,.08), transparent 60%), var(--surface-2,#15130f);
  border:1px solid var(--line); position:relative; overflow:hidden; }
.brand-hero .bh-ring{ width:54px; height:54px; flex:0 0 auto; color:#d6e23a;
  filter:drop-shadow(0 0 6px rgba(196,224,46,.8)) drop-shadow(0 0 14px rgba(196,224,46,.4)); }
.brand-hero .bh-ring circle{ transform-box:fill-box; transform-origin:50% 50%; }
@media (prefers-reduced-motion: no-preference){ .brand-hero .bh-ring circle{ animation:b360spin 9s linear infinite; } }
.brand-hero h4{ margin:0; font-size:18px; font-weight:700; color:var(--ink); }
.brand-hero h4 i{ font-style:italic; color:#7bbf32; }
.brand-hero p{ margin:3px 0 0; font-size:12.5px; color:var(--ink-faint); }

/* ============================================================
   MARKEN-LOGO · klar erkennbar in allen Editionen
   (Kupfer-Kachel + weißes Haus, voller Kontrast)
   ============================================================ */
.brand .mark, .mh-brand .mark, .auth-brand .mark{
  background:linear-gradient(150deg, var(--copper), #a85f30) !important;
  border:1px solid rgba(0,0,0,.10) !important;
  box-shadow:0 10px 24px -10px rgba(221,149,89,.85), 0 1px 0 rgba(255,255,255,.35) inset !important;
  color:#fff !important;
}
.app.edition-privat .brand .mark, .app.edition-privat .mh-brand .mark, .app.edition-privat .auth-brand .mark{
  background:linear-gradient(150deg, var(--copper), #a85f30) !important; color:#fff !important;
  border:1px solid rgba(0,0,0,.06) !important;
}
.brand .mark svg, .mh-brand .mark svg, .auth-brand .mark svg{ width:23px; height:23px; }
.ps-logo path, .ps-logo .ps-roof, .ps-logo .ps-door{ stroke:#fff !important; }
.ps-logo .ps-ring{ stroke:#fff !important; opacity:.9 !important; }

/* ============================================================
   TILGUNGSPLAN + VERKAUFS-RECHNER
   ============================================================ */
.amort-sum{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom:12px; }
.amort-sum>div{ flex:1 1 120px; background:var(--surface-2); border:1px solid var(--line); border-radius:12px; padding:10px 12px; }
.amort-sum span{ display:block; font-size:11px; color:var(--ink-faint); text-transform:uppercase; letter-spacing:.04em; }
.amort-sum b{ font-size:16px; color:var(--ink); }
.amort-wrap{ max-height:300px; overflow:auto; border:1px solid var(--line); border-radius:12px; }
.amort-tbl{ width:100%; border-collapse:collapse; font-size:12.5px; }
.amort-tbl th{ position:sticky; top:0; background:var(--surface-2); color:var(--ink-dim); font-weight:600; text-align:right; padding:8px 10px; border-bottom:1px solid var(--line); }
.amort-tbl th:first-child{ text-align:left; }
.amort-tbl td{ text-align:right; padding:7px 10px; border-bottom:1px solid var(--line); font-variant-numeric:tabular-nums; }
.amort-tbl td:first-child{ text-align:left; color:var(--ink-faint); }
.amort-tbl tr:last-child td{ border-bottom:none; }
.amort-tbl tbody tr:hover{ background:var(--copper-soft); }

.sale-res{ background:var(--surface-2); border:1px solid var(--line); border-radius:14px; padding:6px 14px; margin-top:6px; }
.sale-row{ display:flex; justify-content:space-between; align-items:center; gap:12px; padding:9px 0; border-bottom:1px dashed var(--line); font-size:13.5px; }
.sale-row:last-child{ border-bottom:none; }
.sale-row span{ color:var(--ink-dim); }
.sale-row b{ font-variant-numeric:tabular-nums; }
.sale-row.big{ font-size:15px; } .sale-row.big span{ color:var(--ink); font-weight:600; }
.sale-flag{ display:flex; gap:9px; align-items:flex-start; padding:10px 12px; margin:8px 0; border-radius:10px; font-size:12.5px; line-height:1.5; }
.sale-flag svg{ width:18px; height:18px; flex:none; margin-top:1px; }
.sale-flag.warn{ background:var(--gold-soft); border:1px solid var(--gold); }
.sale-flag.ok{ background:var(--sage-soft); border:1px solid var(--sage); }

/* ============================================================
   FUTURISTISCHE KPI-KARTEN & KI-LEISTE (Redesign)
   ============================================================ */
.kpis{ gap:16px; }
.kpi{
  border-radius:20px;
  background:
    radial-gradient(150% 130% at 100% -10%, rgba(198,120,62,.12), transparent 55%),
    linear-gradient(180deg, var(--surface), var(--canvas-2));
  border:1px solid var(--line);
  box-shadow:0 20px 44px -30px rgba(0,0,0,.75), inset 0 1px 0 rgba(255,255,255,.05);
  padding:18px 18px 16px;
}
/* dezentes Punkt-Raster im Hintergrund (futuristisch) */
.kpi > *{ position:relative; z-index:1; }
.kpi::after{ content:""; position:absolute; right:-26px; top:-30px; width:130px; height:130px; border-radius:50%;
  background:radial-gradient(circle, var(--copper-soft), transparent 70%); opacity:.7; z-index:0; }

/* Icon-Chip: glühender Verlaufs-Würfel statt flachem Quadrat */
.kpi .k-ic{
  width:44px; height:44px; border-radius:14px; margin-bottom:16px; border:1px solid rgba(255,255,255,.16);
  background:linear-gradient(150deg, var(--copper), #a85f30);
  box-shadow:0 12px 24px -10px var(--glow-copper,rgba(221,149,89,.85)),
             inset 0 1px 0 rgba(255,255,255,.4), inset 0 -7px 16px -8px rgba(0,0,0,.45);
  position:relative; overflow:hidden; display:grid; place-items:center;
}
.kpi .k-ic::before{ content:""; position:absolute; inset:0; background:linear-gradient(135deg, rgba(255,255,255,.42), transparent 46%); opacity:.55; }
.kpi .k-ic svg{ width:21px; height:21px; color:#fff !important; position:relative; z-index:1; filter:drop-shadow(0 1px 1px rgba(0,0,0,.25)); }

.kpi .k-val{ font-size:32px; letter-spacing:-.03em; }
.kpi .k-lbl{ color:var(--ink-dim); font-size:12px; letter-spacing:.06em; text-transform:uppercase; margin-top:8px; }
.kpi .k-sub{ margin-top:12px; font-size:11.5px; font-weight:600; letter-spacing:.02em; padding:4px 11px; border-radius:999px;
  border:1px solid transparent; backdrop-filter:blur(4px); }
.kpi .k-sub.up{ background:var(--sage-soft); color:var(--sage); border-color:rgba(120,160,110,.3); }
.kpi .k-sub.warn{ background:var(--gold-soft); color:var(--gold); border-color:rgba(190,150,60,.3); }
.kpi .k-sub.down{ background:var(--rust-soft); color:var(--rust); border-color:rgba(180,90,70,.3); }

/* obere Akzentlinie, die beim Hover aufleuchtet */
.kpi{ position:relative; }
.kpi .k-ic, .kpi .k-val, .kpi .k-lbl, .kpi .k-sub{ transition:all .35s cubic-bezier(.2,.7,.3,1); }
.kpi:hover{ transform:translateY(-5px); border-color:var(--copper-line);
  box-shadow:0 30px 60px -30px var(--glow-copper,rgba(200,120,60,.55)), inset 0 1px 0 rgba(255,255,255,.08); }
.kpi:hover .k-ic{ box-shadow:0 18px 30px -10px var(--glow-copper,rgba(221,149,89,1)), inset 0 1px 0 rgba(255,255,255,.5); }
@media (prefers-reduced-motion: no-preference){
  .kpi:hover .k-ic{ transform:translateY(-2px) rotate(-4deg) scale(1.04); }
  .kpi:hover .k-ic svg{ transform:scale(1.1); }
}

/* ---------- KI-Leiste (ai-brief) futuristisch ---------- */
.ai-brief{
  border-radius:18px; padding:16px 18px; border:1px solid var(--copper-line); gap:15px;
  background:
    radial-gradient(130% 200% at 0% 0%, rgba(198,120,62,.18), transparent 52%),
    linear-gradient(120deg, rgba(198,120,62,.07), transparent 70%);
  position:relative; overflow:hidden;
}
.ai-brief > *{ position:relative; z-index:1; }
.ai-brief::before{ content:""; position:absolute; inset:-1px; z-index:0; pointer-events:none;
  background:linear-gradient(110deg, transparent 32%, rgba(255,214,160,.12) 50%, transparent 68%); background-size:260% 100%; background-position:140% 0; }
@media (prefers-reduced-motion: no-preference){ .ai-brief::before{ animation:aibSweep 7.5s ease-in-out infinite; } }
@keyframes aibSweep{ 0%{background-position:140% 0;} 55%{background-position:-60% 0;} 100%{background-position:-60% 0;} }
.ai-brief .aib-ic{
  width:46px; height:46px; border-radius:14px; border:1px solid rgba(255,255,255,.18);
  background:linear-gradient(150deg, var(--copper), #9c5b2e);
  box-shadow:0 14px 28px -10px var(--glow-copper,rgba(221,149,89,.9)), inset 0 1px 0 rgba(255,255,255,.4);
  position:relative; overflow:hidden;
}
.ai-brief .aib-ic::before{ content:""; position:absolute; inset:0; background:linear-gradient(135deg, rgba(255,255,255,.4), transparent 46%); opacity:.5; }
.ai-brief .aib-ic svg{ width:22px; height:22px; color:#fff; position:relative; z-index:1; }
@media (prefers-reduced-motion: no-preference){ .ai-brief .aib-ic svg{ animation:psSpark 3.4s ease-in-out infinite; } }
.aib-h{ color:var(--copper-2); }
.aib-cnt{ background:linear-gradient(135deg, var(--copper), #b5703a); color:#fff; font-weight:700; padding:2px 9px;
  box-shadow:0 4px 12px -4px var(--glow-copper,rgba(221,149,89,.8)); }
.aib-tx b{ font-size:15.5px; font-weight:700; letter-spacing:-.01em; }
.ai-brief .aif-act,.ai-brief .btn{ position:relative; z-index:2; }

/* ============================================================
   INTELLIGENCE · KOMMANDOZENTRALE (prominenter Hero + Glow)
   ============================================================ */
.ai-hero{ position:relative; overflow:hidden; border-radius:24px; padding:26px 26px 22px; margin-bottom:18px;
  border:1px solid var(--copper-line);
  background:
    radial-gradient(120% 160% at 100% -20%, rgba(221,149,89,.22), transparent 55%),
    radial-gradient(90% 140% at -10% 120%, rgba(123,191,50,.10), transparent 55%),
    linear-gradient(140deg, rgba(40,28,18,.9), rgba(20,16,12,.92));
  box-shadow:0 30px 70px -34px var(--glow-copper,rgba(200,120,60,.6)), inset 0 1px 0 rgba(255,255,255,.06); }
.ai-hero > *{ position:relative; z-index:1; }
/* wandernder Lichtschweif */
.ai-hero::before{ content:""; position:absolute; inset:-2px; z-index:0; pointer-events:none;
  background:linear-gradient(115deg, transparent 30%, rgba(255,214,160,.14) 50%, transparent 70%); background-size:260% 100%; background-position:150% 0; }
@media (prefers-reduced-motion: no-preference){ .ai-hero::before{ animation:aibSweep 8s ease-in-out infinite; } }
/* leuchtende Orb mit Brain-Icon */
.aih-orb{ position:absolute; right:24px; top:22px; width:74px; height:74px; border-radius:22px; display:grid; place-items:center; z-index:1;
  background:linear-gradient(150deg, var(--copper), #8f4f25); border:1px solid rgba(255,255,255,.2);
  box-shadow:0 18px 40px -12px var(--glow-copper,rgba(221,149,89,.95)), inset 0 1px 0 rgba(255,255,255,.45); }
.aih-orb svg{ width:36px; height:36px; color:#fff; }
.aih-orb::after{ content:""; position:absolute; inset:-6px; border-radius:26px; border:1px solid rgba(221,149,89,.4); }
@media (prefers-reduced-motion: no-preference){ .aih-orb svg{ animation:psSpark 3.2s ease-in-out infinite; } .aih-orb::after{ animation:aihPulse 3s ease-in-out infinite; } }
@keyframes aihPulse{ 0%,100%{ opacity:.5; transform:scale(1);} 50%{ opacity:0; transform:scale(1.15);} }
.aih-badge{ display:inline-flex; align-items:center; gap:7px; font-size:11px; letter-spacing:.14em; text-transform:uppercase; font-weight:700;
  color:var(--copper-2); background:rgba(221,149,89,.14); border:1px solid var(--copper-line); padding:5px 12px; border-radius:999px; }
.aih-badge svg{ width:14px; height:14px; }
.aih-title{ font-family:var(--serif); font-size:34px; line-height:1.05; letter-spacing:-.02em; margin:12px 0 6px; color:#fff; padding-right:110px;
  background:linear-gradient(120deg,#fff, #ffd9b0 60%, var(--copper-2)); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; overflow-wrap:break-word; }
.aih-sub{ color:rgba(255,255,255,.72); font-size:13.5px; max-width:640px; line-height:1.5; margin:0; padding-right:110px; }
.aih-top{ padding-right:110px; }
.aih-stats{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-top:20px; }
.ai-stat{ position:relative; overflow:hidden; border-radius:16px; padding:14px 15px; border:1px solid rgba(255,255,255,.10);
  background:linear-gradient(180deg, rgba(255,255,255,.05), rgba(255,255,255,.015)); backdrop-filter:blur(6px); }
.ai-stat .ais-ic{ width:34px; height:34px; border-radius:11px; display:grid; place-items:center; margin-bottom:10px; border:1px solid rgba(255,255,255,.16);
  background:linear-gradient(150deg, var(--copper), #a85f30); box-shadow:0 10px 20px -10px var(--glow-copper,rgba(221,149,89,.8)), inset 0 1px 0 rgba(255,255,255,.4); }
.ai-stat .ais-ic svg{ width:17px; height:17px; color:#fff; }
.ai-stat .ais-v{ font-family:var(--serif); font-size:24px; font-weight:700; line-height:1; color:#fff; letter-spacing:-.02em; padding-right:84px; }
.ai-stat .ais-l{ font-size:11.5px; color:rgba(255,255,255,.6); margin-top:5px; letter-spacing:.04em; text-transform:uppercase; padding-right:84px; }
.ai-stat .ais-sub{ position:absolute; top:14px; right:14px; font-size:10.5px; font-weight:700; padding:3px 9px; border-radius:999px;
  background:rgba(255,255,255,.08); color:rgba(255,255,255,.75); border:1px solid rgba(255,255,255,.12); }
.ai-stat.st-high .ais-ic{ background:linear-gradient(150deg,#c2503f,#8f2f25); box-shadow:0 10px 22px -8px rgba(194,80,63,.85), inset 0 1px 0 rgba(255,255,255,.35); }
.ai-stat.st-high .ais-sub{ background:rgba(194,80,63,.22); color:#ffd2cb; border-color:rgba(194,80,63,.4); }
.ai-stat.st-pot .ais-ic{ background:linear-gradient(150deg,#7bbf32,#3f6b22); box-shadow:0 10px 22px -8px rgba(123,191,50,.7), inset 0 1px 0 rgba(255,255,255,.35); }
.ai-stat.st-pot .ais-v{ background:linear-gradient(120deg,#fff,#d6f5a8); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.ai-stat.st-risk .ais-ic{ background:linear-gradient(150deg,var(--gold),#9a7414); }
.ai-stat.st-ok .ais-sub{ background:rgba(123,191,50,.18); color:#cdeaa0; border-color:rgba(123,191,50,.35); }
@media (prefers-reduced-motion: no-preference){ .ai-stat{ transition:transform .3s, box-shadow .3s; } .ai-stat:hover{ transform:translateY(-3px); box-shadow:0 18px 38px -22px var(--glow-copper,rgba(200,120,60,.5)); } }
@media(max-width:680px){ .aih-stats{ grid-template-columns:1fr; } .aih-orb{ display:none; } .aih-title{ font-size:27px; padding-right:0; } .aih-sub,.aih-top{ padding-right:0; } }

/* Schnell-Analysen Überschrift */
.ai-quick-head{ display:flex; align-items:center; gap:8px; font-size:12px; letter-spacing:.08em; text-transform:uppercase; font-weight:700; color:var(--copper-2); margin:6px 2px 10px; }
.ai-quick-head svg{ width:15px; height:15px; }
/* Schnell-Analyse-Chips: glühend */
.ai-chip{ border:1px solid var(--line); background:linear-gradient(180deg,var(--surface),var(--canvas-2)); transition:transform .25s, box-shadow .25s, border-color .25s; }
.ai-chip svg{ color:#fff !important; width:32px; height:32px; padding:7px; border-radius:10px; box-sizing:border-box;
  background:linear-gradient(150deg,var(--copper),#a85f30); box-shadow:0 8px 18px -8px var(--glow-copper,rgba(221,149,89,.8)), inset 0 1px 0 rgba(255,255,255,.4); }
.ai-chip:hover{ transform:translateY(-3px); border-color:var(--copper-line); box-shadow:0 18px 38px -22px var(--glow-copper,rgba(200,120,60,.55)); }
.ai-insights .panel-head .count{ background:linear-gradient(135deg,var(--copper),#b5703a); color:#fff; border-radius:999px; padding:2px 10px; font-size:12px; font-weight:700; box-shadow:0 6px 14px -6px var(--glow-copper,rgba(221,149,89,.8)); }
.ai-panel{ box-shadow:0 22px 50px -30px var(--glow-copper,rgba(160,100,60,.45)); }
.ai-empty svg{ opacity:.85; filter:drop-shadow(0 0 10px var(--glow-copper,rgba(221,149,89,.5))); }

/* Nav: KI prominent + Dringend-Badge */
.sidebar a.nav-ki{ position:relative; }
.sidebar a.nav-ki svg{ color:var(--copper) !important; filter:drop-shadow(0 0 5px var(--glow-copper,rgba(221,149,89,.7))); }
.sidebar a.nav-ki.active{ background:linear-gradient(100deg, rgba(221,149,89,.18), transparent); }
.sidebar a.nav-ki::after{ content:""; position:absolute; left:0; top:8px; bottom:8px; width:2px; border-radius:2px;
  background:linear-gradient(180deg,var(--copper),var(--copper-2)); opacity:.5; }
.tag-glow{ background:linear-gradient(135deg,#c2503f,#8f2f25) !important; color:#fff !important; font-weight:700;
  box-shadow:0 0 0 1px rgba(194,80,63,.4), 0 6px 14px -6px rgba(194,80,63,.8); }
@media (prefers-reduced-motion: no-preference){ .tag-glow{ animation:aihPulse 2.4s ease-in-out infinite; } }

/* ============================================================
   EINHEITLICHER GLOW: Insight-Karten · Objekt-Karten · Panel-Header
   ============================================================ */
/* Insight-Karten: glühender Level-Chip + Glas */
.insight{ border:1px solid var(--line); border-left:none; border-radius:14px; padding:13px 14px;
  background:radial-gradient(120% 140% at 100% 0%, rgba(198,120,62,.06), transparent 55%), linear-gradient(180deg,var(--surface),var(--canvas-2)); }
.insight .ins-ic{ width:38px; height:38px; border-radius:12px; border:1px solid rgba(255,255,255,.14);
  background:linear-gradient(150deg,var(--copper),#a85f30); box-shadow:0 10px 20px -10px var(--glow-copper,rgba(221,149,89,.8)), inset 0 1px 0 rgba(255,255,255,.4); }
.insight .ins-ic svg{ width:18px; height:18px; color:#fff !important; }
.insight.high .ins-ic{ background:linear-gradient(150deg,#c2503f,#8f2f25); box-shadow:0 10px 22px -8px rgba(194,80,63,.8), inset 0 1px 0 rgba(255,255,255,.35); }
.insight.med .ins-ic{ background:linear-gradient(150deg,var(--gold),#9a7414); box-shadow:0 10px 22px -8px rgba(190,150,60,.7), inset 0 1px 0 rgba(255,255,255,.35); }
.insight.info .ins-ic{ background:linear-gradient(150deg,#7bbf32,#3f6b22); box-shadow:0 10px 22px -8px rgba(123,191,50,.6), inset 0 1px 0 rgba(255,255,255,.35); }
.insight.high{ border-color:rgba(194,80,63,.28); }
.insight.med{ border-color:rgba(190,150,60,.26); }
.insight .ins-tx b{ font-size:14px; }

/* Objekt-Karten: einheitlicher futuristischer Glow */
.obj-card{ border-radius:20px; background:linear-gradient(180deg,var(--surface),var(--canvas-2)); border:1px solid var(--line);
  box-shadow:0 20px 44px -30px rgba(0,0,0,.75); transition:transform .4s cubic-bezier(.2,.7,.3,1), box-shadow .4s ease, border-color .4s ease; position:relative; }
.obj-card .cover{ background:
    linear-gradient(180deg,transparent,rgba(20,17,13,.88)),
    radial-gradient(120% 160% at 110% -10%, rgba(221,149,89,.5), transparent 55%),
    linear-gradient(135deg,#3a2f23,#241d16); }
.obj-card .cover .glyph{ filter:drop-shadow(0 4px 14px rgba(221,149,89,.55)); opacity:.95; }
.obj-card .cover .badge{ background:rgba(20,16,12,.55); border:1px solid rgba(255,255,255,.18); color:#ffd9b0; backdrop-filter:blur(4px); border-radius:999px; padding:3px 10px; }
.obj-card .stat .v{ background:linear-gradient(120deg,var(--ink),var(--copper-2) 95%); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.obj-card:hover{ transform:translateY(-5px); border-color:var(--copper-line); box-shadow:0 34px 64px -30px var(--glow-copper,rgba(200,120,60,.6)); }

/* Panel-Header-Icons: leichter Kupfer-Glow für einheitliches Bild */
.panel h3 svg, .panel .panel-head h3 svg{ color:var(--copper-2); filter:drop-shadow(0 0 4px var(--glow-copper,rgba(221,149,89,.35))); }

/* ============================================================
   OBJEKTBILD (Kachel-Cover + Detail-Banner)
   ============================================================ */
.obj-card.has-img .cover{ height:158px; }
.obj-card.has-img .cover h3{ font-size:19px; }
.obj-card .cover{ background-size:cover; background-position:center; transition:height .3s; }
.obj-banner{ height:200px; border-radius:20px; background-size:cover; background-position:center; position:relative;
  border:1px solid var(--line); margin-bottom:18px; box-shadow:0 24px 54px -30px rgba(0,0,0,.7), inset 0 1px 0 rgba(255,255,255,.06); overflow:hidden; }
.obj-banner-act{ position:absolute; right:12px; bottom:12px; display:flex; gap:8px; }
.obj-banner-act .btn{ background:rgba(20,16,12,.55); border:1px solid rgba(255,255,255,.22); color:#fff; backdrop-filter:blur(6px); }
.obj-banner-act .btn:hover{ background:rgba(20,16,12,.72); }
@media(max-width:560px){ .obj-banner{ height:150px; } }

/* ============================================================
   PRIVAT-MODUS · moderner, visueller, mehr Glow
   ============================================================ */
.app.edition-privat{ --glow-copper:rgba(176,94,34,.32); }
/* wärmere Ambiente-Glows hinter dem Inhalt */
.app.edition-privat .main::before{
  background:
    radial-gradient(760px 480px at 4% -8%, rgba(176,94,34,.14), transparent 60%),
    radial-gradient(680px 480px at 106% 0%, rgba(88,122,70,.10), transparent 62%),
    radial-gradient(520px 420px at 60% 120%, rgba(176,94,34,.07), transparent 60%);
  opacity:1; }
/* Karten: cremige Verläufe + weiche farbige Schatten + Glow */
.app.edition-privat .kpi{
  background:
    radial-gradient(150% 130% at 100% -10%, rgba(176,94,34,.10), transparent 55%),
    linear-gradient(180deg,#ffffff,#faf5ec);
  border-color:rgba(45,34,22,.10);
  box-shadow:0 20px 44px -28px rgba(120,80,40,.5), inset 0 1px 0 rgba(255,255,255,.95); }
.app.edition-privat .kpi:hover{ box-shadow:0 30px 56px -28px rgba(176,94,34,.5), inset 0 1px 0 rgba(255,255,255,.95); }
.app.edition-privat .panel{
  background:linear-gradient(180deg,#ffffff,#faf6ee);
  box-shadow:0 18px 40px -26px rgba(120,80,40,.42), inset 0 1px 0 rgba(255,255,255,.95); }
.app.edition-privat .panel:hover{ box-shadow:0 26px 54px -30px rgba(176,94,34,.4), inset 0 1px 0 rgba(255,255,255,.95); }
.app.edition-privat .obj-card{
  background:linear-gradient(180deg,#ffffff,#f7f1e8);
  box-shadow:0 20px 44px -28px rgba(120,80,40,.5), inset 0 1px 0 rgba(255,255,255,.9); }
.app.edition-privat .obj-card:hover{ box-shadow:0 32px 60px -30px rgba(176,94,34,.55), inset 0 1px 0 rgba(255,255,255,.9); }
.app.edition-privat .insight{ background:linear-gradient(180deg,#ffffff,#faf6ee); box-shadow:0 12px 28px -22px rgba(120,80,40,.4); }
.app.edition-privat .ai-chip{ background:linear-gradient(180deg,#ffffff,#f7f1e8); box-shadow:0 12px 28px -22px rgba(120,80,40,.4); }
.app.edition-privat .ai-chip:hover{ box-shadow:0 20px 40px -22px rgba(176,94,34,.5); }
/* glühendere Primär-Buttons + Pills */
.app.edition-privat .btn.primary{ box-shadow:0 14px 28px -10px rgba(176,94,34,.6), 0 1px 0 rgba(255,255,255,.5) inset; }
.app.edition-privat .kpi .k-sub.up{ box-shadow:0 6px 14px -8px rgba(88,122,70,.5); }
.app.edition-privat .kpi .k-sub.warn{ box-shadow:0 6px 14px -8px rgba(148,106,16,.5); }
/* Icon-Chips in Privat zusätzlich leicht leuchten */
.app.edition-privat .kpi .k-ic, .app.edition-privat .insight .ins-ic, .app.edition-privat .ai-stat .ais-ic{
  box-shadow:0 12px 24px -8px rgba(176,94,34,.55), inset 0 1px 0 rgba(255,255,255,.55); }
/* aktiver Nav-Eintrag: kräftiger Glow */
.app.edition-privat .nav a.active{ box-shadow:0 12px 26px -10px rgba(176,94,34,.7); }
/* Module-Köpfe: Verlaufstitel auch in Privat */
.app.edition-privat .head h1{
  background:linear-gradient(120deg,#2a1f14, var(--copper) 95%);
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; color:transparent; }

/* ============================================================
   MODUL-KÖPFE als „Kommandozentrale" (Hero-Band + Glow)
   ============================================================ */
.head{ position:relative; overflow:hidden; align-items:center;
  border-radius:22px; padding:22px 24px 22px 27px; margin-bottom:22px;
  border:1px solid var(--line);
  background:
    radial-gradient(140% 180% at 100% -40%, var(--copper-soft), transparent 55%),
    linear-gradient(180deg, var(--surface), var(--canvas-2));
  box-shadow:0 22px 50px -34px rgba(0,0,0,.6), inset 0 1px 0 rgba(255,255,255,.05); }
.head > *{ position:relative; z-index:1; }
.head::after{ content:""; position:absolute; left:0; top:16px; bottom:16px; width:3px; border-radius:0 3px 3px 0; z-index:1;
  background:linear-gradient(180deg, var(--copper), var(--copper-2)); box-shadow:0 0 14px var(--glow-copper,rgba(221,149,89,.7)); }
.head::before{ content:""; position:absolute; inset:-1px; z-index:0; pointer-events:none;
  background:linear-gradient(115deg, transparent 34%, rgba(255,214,160,.09) 50%, transparent 66%); background-size:260% 100%; background-position:140% 0; }
@media (prefers-reduced-motion: no-preference){ .head::before{ animation:aibSweep 9s ease-in-out infinite; } }
.head .eyebrow{ color:var(--copper-2); letter-spacing:.14em; }
.app.edition-privat .head{ background:radial-gradient(140% 180% at 100% -40%, rgba(176,94,34,.12), transparent 55%), linear-gradient(180deg,#ffffff,#faf6ee);
  box-shadow:0 20px 44px -30px rgba(120,80,40,.4), inset 0 1px 0 rgba(255,255,255,.95); }
/* Objekt-Detail-Banner sitzt direkt über dem Kopf — etwas Abstand */
.obj-banner + .head{ margin-top:0; }

/* ============================================================
   EINHEITEN-BILD (Thumbnail + Button in der Zeile)
   ============================================================ */
.unit-row .u-ic.u-img{ background-size:cover; background-position:center; border:1px solid var(--line);
  box-shadow:0 8px 18px -10px rgba(0,0,0,.5); }
.u-imgbtn{ width:30px; height:30px; flex:none; border-radius:9px; display:grid; place-items:center; cursor:pointer;
  background:var(--surface-2); border:1px solid var(--line); color:var(--copper-2); margin-right:8px; transition:all .2s; }
.u-imgbtn svg{ width:15px; height:15px; }
.u-imgbtn:hover{ background:linear-gradient(150deg,var(--copper),#a85f30); color:#fff; border-color:transparent;
  box-shadow:0 8px 18px -8px var(--glow-copper,rgba(221,149,89,.8)); }

/* Breite Modals (Objekt verwalten, Dokumentengenerator etc.) */
.modal.wide{ width:min(820px,100%); }
.modal.wide .m-body{ padding-top:4px; }
@media(min-width:760px){ .modal.wide .grid-2{ gap:14px; } }

/* ============================================================
   SPINNER → Intelligence-Glow (dreht + leuchtet kupfern)
   ============================================================ */
.spin{ animation:spin .8s linear infinite; }
.spin, .loader, .ai-spinner{ color:var(--copper); filter:drop-shadow(0 0 6px var(--glow-copper,rgba(221,149,89,.85))); }
.ai-spinner{ width:30px; height:30px; border-radius:50%; border:3px solid rgba(221,149,89,.25); border-top-color:var(--copper);
  animation:spin .8s linear infinite; box-shadow:0 0 16px var(--glow-copper,rgba(221,149,89,.7)), inset 0 0 8px rgba(221,149,89,.25); }
@media (prefers-reduced-motion: reduce){ .spin,.ai-spinner{ animation:none; } }

/* Foto-Galerie: Titelbild-Stern */
.foto-tile{ position:relative; }
.foto-cover{ position:absolute; left:6px; top:6px; width:26px; height:26px; border-radius:8px; border:none; cursor:pointer;
  display:grid; place-items:center; font-size:15px; line-height:1; color:#fff; background:rgba(20,16,12,.55); backdrop-filter:blur(4px); transition:all .2s; }
.foto-cover:hover{ background:linear-gradient(150deg,var(--copper),#a85f30); box-shadow:0 6px 14px -6px var(--glow-copper,rgba(221,149,89,.9)); }
.foto-tile.is-cover{ outline:2px solid var(--copper); outline-offset:-2px; }
.foto-tile.is-cover .foto-cover{ background:linear-gradient(150deg,var(--copper),#a85f30); color:#ffe; box-shadow:0 6px 14px -6px var(--glow-copper,rgba(221,149,89,.9)); }

/* ============================================================
   PDF-VORSCHAU: mobil + Quer-/Hochformat (iOS & Android)
   ============================================================ */
.pdf-frame{ width:100%; height:min(64vh,640px); border:1px solid var(--line); border-radius:var(--r-m); background:#fff;
  -webkit-overflow-scrolling:touch; }
@media (max-width:680px){
  .modal.modal-pdf{ width:100%; max-width:100%; border-radius:20px 20px 0 0; max-height:96vh; }
  .pdf-frame-wrap{ padding:0 10px; }
  .pdf-frame{ height:62vh; }
  .modal-pdf .m-foot{ position:sticky; bottom:0; background:linear-gradient(180deg,transparent,var(--surface) 28%); }
}
@media (max-width:900px) and (orientation:landscape){
  .modal.modal-pdf{ max-height:98vh; }
  .pdf-frame{ height:74vh; }
  .modal-pdf .m-head p{ display:none; }
  .modal-pdf .m-head{ padding-bottom:6px; }
}

/* ============================================================
   LISTEN-ZEILEN sauber gegliedert (Zahlungen, NK, Dokumente …)
   ============================================================ */
.zrow{ display:flex; align-items:center; gap:16px; padding:13px 14px; border-bottom:1px solid var(--line);
  border-radius:12px; transition:background .16s, box-shadow .16s; }
.zrow:hover{ background:var(--surface-2); box-shadow:inset 0 0 0 1px var(--line); }
.zrow:last-child{ border-bottom:0; }
.zr-main{ flex:1 1 auto; min-width:0; }
.zr-main b{ display:block; font-size:14.5px; font-weight:600; line-height:1.2; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.zr-main span{ font-size:12.5px; color:var(--ink-faint); display:block; margin-top:2px; }
/* Betrag rechtsbündig, klar abgesetzt */
.zr-amt{ flex:0 0 auto; text-align:right; min-width:104px; padding-left:8px; border-left:1px solid var(--line); }
.zr-amt b{ font-family:var(--serif); font-size:15.5px; }
.zr-amt span{ display:block; font-size:11px; color:var(--ink-faint); margin-top:1px; }
/* Status-Spalte einheitlich */
.zr-st{ flex:0 0 auto; min-width:120px; display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.zr-act{ flex:0 0 auto; display:flex; gap:7px; justify-content:flex-end; align-items:center; min-width:150px; }
.zr-act .btn.sm{ white-space:nowrap; }
/* gleich hohe, ruhige Pills */
.pill{ min-height:24px; }
/* Responsive: sauber stapeln statt quetschen */
@media(max-width:720px){
  .zrow{ flex-wrap:wrap; gap:8px 12px; padding:12px; align-items:flex-start; }
  .zr-main{ flex:1 1 100%; }
  .zr-amt{ flex:0 0 auto; border-left:0; padding-left:0; text-align:left; min-width:0; }
  .zr-amt b{ font-size:15px; }
  .zr-st{ flex:1 1 auto; justify-content:flex-end; min-width:0; }
  .zr-act{ flex:1 1 100%; justify-content:flex-start; margin-top:2px; }
  .zr-act .btn{ flex:0 0 auto; }
}
/* NK-Positionszeilen bleiben kompakt */
#nk-positions .zrow{ gap:10px; padding:9px 6px; flex-wrap:wrap; }
#nk-positions .zr-main{ flex:1 1 100%; min-width:0; }
#nk-positions .zrow > div{ flex:0 0 auto; }
#nk-positions .zr-main{ flex:1 1 40%; }

/* Marken-Hero: Aktionsleiste + 360-Logo als Geste sichtbar */
.bh-act{ display:flex; gap:8px; flex-wrap:wrap; margin-top:10px; }
.bh-act .btn svg{ width:15px; height:15px; }
.b360[role="button"]{ cursor:pointer; user-select:none; }
.b360[role="button"]:hover svg{ filter:drop-shadow(0 0 6px var(--glow-copper,rgba(221,149,89,.8))); }

/* ============================================================
   ASSISTENT / ONBOARDING / EMPFEHLUNG
   ============================================================ */
.wz-dots{ display:flex; gap:7px; justify-content:center; margin:0 0 16px; }
.wz-dot{ width:9px; height:9px; border-radius:50%; background:var(--line-strong); transition:all .25s; }
.wz-dot.on{ background:var(--copper); box-shadow:0 0 10px var(--glow-copper,rgba(221,149,89,.8)); transform:scale(1.25); }
.wz-dot.done{ background:var(--sage); }
.ob-grid{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.ob-card{ display:flex; flex-direction:column; gap:4px; padding:14px; border-radius:14px; border:1px solid var(--line);
  background:radial-gradient(120% 140% at 100% 0%, var(--copper-soft), transparent 55%), linear-gradient(180deg,var(--surface),var(--canvas-2)); }
.ob-card svg{ width:22px; height:22px; color:#fff; padding:6px; border-radius:10px; box-sizing:border-box;
  background:linear-gradient(150deg,var(--copper),#a85f30); box-shadow:0 8px 18px -8px var(--glow-copper,rgba(221,149,89,.8)); }
.ob-card b{ font-size:13.5px; margin-top:4px; } .ob-card span{ font-size:11.5px; color:var(--ink-faint); }
@media(max-width:560px){ .ob-grid{ grid-template-columns:1fr; } }
.ref-box{ display:flex; align-items:center; gap:12px; margin-top:12px; padding:12px 14px; border-radius:14px;
  border:1px solid var(--copper-line); background:radial-gradient(120% 160% at 0% 0%, var(--copper-soft), transparent 60%), var(--surface); }
.ref-box > svg{ width:22px; height:22px; color:var(--copper); flex:none; }
.ref-box .ref-code{ font-family:var(--mono); letter-spacing:.06em; color:var(--copper-2); }
.ref-box .ref-sub{ font-size:11.5px; color:var(--ink-dim); margin-top:2px; }
.ref-box .mono{ font-family:var(--mono); font-size:11px; }
.ref-box .btn{ margin-left:auto; flex:none; }
@media(max-width:560px){ .ref-box{ flex-wrap:wrap; } .ref-box .btn{ margin-left:0; } }
.auth-foot .b360{ color:var(--lime); }
.auth-foot .b360 svg{ color:var(--lime); }

/* Berechtigungs-Block im Onboarding */
.perm-box{ margin-top:14px; padding:14px; border-radius:14px; border:1px solid var(--copper-line);
  background:radial-gradient(120% 150% at 100% 0%, var(--copper-soft), transparent 58%), var(--surface); }
.perm-head{ display:flex; align-items:center; gap:8px; font-weight:700; }
.perm-head svg{ width:18px; height:18px; color:var(--copper); }
.perm-box p{ font-size:12.5px; color:var(--ink-dim); margin:6px 0 8px; }
.perm-list{ display:flex; gap:8px; flex-wrap:wrap; margin-bottom:10px; }
.perm-chip{ display:inline-flex; align-items:center; gap:6px; font-size:12px; padding:5px 10px; border-radius:999px;
  background:var(--surface-2); border:1px solid var(--line); }
.perm-chip svg{ width:14px; height:14px; color:var(--copper-2); }
.perm-sub{ font-size:11px; color:var(--ink-faint); margin-top:8px; }

/* ============================================================
   FORM-SECTIONS (klar gegliederte Editoren)
   ============================================================ */
.form-section{ border:1px solid var(--line); border-radius:14px; background:var(--surface); margin-bottom:14px; overflow:hidden; }
.form-section:last-child{ margin-bottom:0; }
.fs-head{ display:flex; align-items:center; gap:9px; padding:11px 14px; font-weight:700; font-size:13px; letter-spacing:.01em;
  background:radial-gradient(120% 180% at 0% 0%, var(--copper-soft), transparent 60%), var(--surface-2);
  border-bottom:1px solid var(--line); }
.fs-head svg{ width:16px; height:16px; color:var(--copper); flex:none; }
.fs-body{ padding:14px; }
.fs-body > .field:last-child, .fs-body > .grid-2:last-child{ margin-bottom:0; }
.fs-body .form-eyebrow{ margin-top:0; }
/* Fotos-/Doku-Abschnitt innerhalb einer Section nicht doppelt rahmen */
.fs-body .doc-box, .fs-body .fotos-wrap{ border:0; padding:0; background:transparent; }

/* Permission-Status-Chips + Hinweis */
.perm-status{ display:flex; gap:7px; flex-wrap:wrap; margin:8px 0; }
.perm-note{ display:flex; gap:8px; align-items:flex-start; font-size:11.5px; color:var(--ink-dim); background:var(--rust-soft);
  border:1px solid var(--rust-soft); border-radius:10px; padding:8px 10px; }
.perm-note svg{ width:15px; height:15px; color:var(--rust); flex:none; margin-top:1px; }

/* ============================================================
   ABRECHNUNGS-TÜV / INSTANDHALTUNG / CO2-AUTO  (v37)
   ============================================================ */
.tuev{ border:1px solid var(--line); }
.tuev h3{ display:flex; align-items:center; }
.tuev-badge{ margin-left:auto; display:inline-flex; align-items:center; gap:6px; font-size:11.5px; font-weight:700; padding:4px 11px; border-radius:999px; }
.tuev-badge svg{ width:14px; height:14px; }
.tuev-badge.ok{ background:var(--sage-soft); color:var(--sage); }
.tuev-badge.warn{ background:var(--gold-soft); color:var(--gold); }
.tuev-badge.bad{ background:var(--rust-soft); color:var(--rust); }
.tuev-ok{ box-shadow:0 0 0 1px var(--sage-soft) inset; }
.tuev-warn{ box-shadow:0 0 0 1px var(--gold-soft) inset; }
.tuev-bad{ box-shadow:0 0 0 1px var(--rust-soft) inset; }
.tuev-list{ display:flex; flex-direction:column; gap:8px; margin-top:6px; }
.tuev-item{ display:flex; gap:9px; align-items:flex-start; font-size:12.5px; line-height:1.45; padding:9px 11px; border-radius:11px; background:var(--surface-2); }
.tuev-item svg{ width:15px; height:15px; flex:none; margin-top:1px; }
.tuev-item.ok svg{ color:var(--sage); } .tuev-item.ok{ background:var(--sage-soft); }
.tuev-item.warn svg{ color:var(--gold); } .tuev-item.warn{ background:var(--gold-soft); }
.tuev-item.bad svg{ color:var(--rust); } .tuev-item.bad{ background:var(--rust-soft); }
/* Rücklage-Hero */
.reserve-hero{ display:flex; align-items:center; gap:18px; padding:16px 18px; border-radius:16px;
  background:radial-gradient(130% 180% at 0% 0%, var(--copper-soft), transparent 60%), linear-gradient(180deg,var(--surface),var(--canvas-2));
  border:1px solid var(--copper-line); }
.rh-label{ font-size:12px; color:var(--ink-dim); letter-spacing:.04em; text-transform:uppercase; }
.rh-val{ font-family:var(--serif); font-size:30px; line-height:1.1; color:var(--copper-2); }
.rh-val span{ font-family:var(--sans); font-size:13px; color:var(--ink-faint); margin-left:6px; }
.rh-side{ margin-left:auto; text-align:right; font-size:13px; color:var(--ink-dim); }
/* CO2-Auto-Zeile */
.co2-auto{ display:flex; gap:10px; align-items:flex-end; margin-top:8px; }
.co2-auto .btn{ flex:none; margin-bottom:2px; }
@media(max-width:560px){ .co2-auto{ flex-wrap:wrap; } .co2-auto .btn{ width:100%; } .reserve-hero{ flex-wrap:wrap; } .rh-side{ margin-left:0; text-align:left; } }

/* ============================================================
   PRIVAT-MODUS · NEUES, EIGENSTÄNDIGES FARB- & BEWEGUNGSKONZEPT (v38)
   „Warm Home" — Koralle/Terrakotta, lebendiger, mehr Dynamik
   ============================================================ */
.app.edition-privat{
  --canvas:#f3ebdf; --canvas-2:#fdf8f1; --surface:#fffdfa; --surface-2:#f7efe3; --surface-3:#ecddca;
  --line:rgba(60,38,20,.14); --line-strong:rgba(60,38,20,.26);
  --ink:#241a10; --ink-dim:#4a3c2c; --ink-faint:#7a6c58;
  --copper:#e06a38; --copper-2:#bd4a1c; --copper-soft:rgba(224,106,56,.13); --copper-line:rgba(224,106,56,.34);
  --sage:#1f8c7c; --sage-soft:rgba(31,140,124,.15);
  --rust:#c2503a; --rust-soft:rgba(194,80,58,.13);
  --gold:#9c7a37; --gold-soft:rgba(156,122,55,.18);
  --accent2:#178a8a; --accent2-soft:rgba(23,138,138,.14);
  --glow-copper:rgba(224,106,56,.42);
  --glow-1:rgba(224,106,56,.14); --glow-2:rgba(23,138,138,.12);
}
/* Lebendiger, sanft bewegter Hintergrund */
.app.edition-privat .main::before{
  background:
    radial-gradient(60% 50% at 12% 0%, rgba(224,106,56,.16), transparent 60%),
    radial-gradient(55% 45% at 100% 8%, rgba(23,138,138,.13), transparent 62%),
    radial-gradient(70% 60% at 50% 110%, rgba(197,134,15,.10), transparent 60%);
  animation:privAurora 18s ease-in-out infinite alternate;
}
@keyframes privAurora{ 0%{ transform:translate3d(0,0,0) scale(1); opacity:.9; } 100%{ transform:translate3d(0,-1.5%,0) scale(1.06); opacity:1; } }
/* Interaktive Karten: anheben + leichter Zoom */
.app.edition-privat .kpi, .app.edition-privat .panel, .app.edition-privat .obj-card, .app.edition-privat .insight{
  transition:transform .22s cubic-bezier(.2,.7,.2,1), box-shadow .22s; }
.app.edition-privat .kpi:hover{ transform:translateY(-4px) scale(1.015); }
.app.edition-privat .obj-card:hover{ transform:translateY(-5px) scale(1.01); }
.app.edition-privat .panel:hover{ transform:translateY(-2px); }
.app.edition-privat .insight:hover{ transform:translateX(3px); }
/* Buttons: lebendiger Druck + Glanz */
.app.edition-privat .btn{ transition:transform .12s, box-shadow .2s, filter .2s; }
.app.edition-privat .btn:hover{ filter:saturate(1.08) brightness(1.02); }
.app.edition-privat .btn:active{ transform:scale(.96); }
.app.edition-privat .btn.primary{ background:linear-gradient(135deg,#ef7a45,#cf5020); box-shadow:0 12px 26px -12px var(--glow-copper); }
.app.edition-privat .btn.primary:hover{ box-shadow:0 16px 32px -12px var(--glow-copper); }
/* Nav: gleitendes, leuchtendes Aktiv-Pill */
.app.edition-privat .nav a{ position:relative; transition:background .2s, color .2s, transform .15s; }
.app.edition-privat .nav a:hover{ transform:translateX(2px); }
.app.edition-privat .nav a.active{ background:linear-gradient(135deg,#ef7a45,#cf5020); color:#fff;
  box-shadow:0 10px 24px -12px var(--glow-copper); }
.app.edition-privat .nav a.active::before{ content:""; position:absolute; left:-4px; top:18%; bottom:18%; width:4px; border-radius:6px;
  background:#fff; box-shadow:0 0 12px rgba(255,255,255,.8); }
.app.edition-privat .nav a.active svg{ color:#fff; }
/* KPI-Zahl im Koralle-Verlauf */
.app.edition-privat .k-val{ background:linear-gradient(120deg,#bd4a1c,#178a8a); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
/* Pills lebendiger */
.app.edition-privat .pill.ok{ background:rgba(31,140,124,.18); color:#3f7d63; }
.app.edition-privat .pill.warn{ background:rgba(197,134,15,.2); color:#9a6a08; }
.app.edition-privat .pill.bad{ background:rgba(216,71,43,.16); color:#b53a22; }
/* Akzent-2 (Teal) für die KI-Leiste/Insights-Highlights */
.app.edition-privat .head{ --glow-copper:rgba(23,138,138,.3); }
.app.edition-privat .ai-chip:hover{ border-color:var(--accent2); transform:translateY(-2px); }
@media(prefers-reduced-motion:reduce){
  .app.edition-privat .main::before{ animation:none; }
  .app.edition-privat .kpi:hover,.app.edition-privat .obj-card:hover,.app.edition-privat .panel:hover,.app.edition-privat .insight:hover,.app.edition-privat .nav a:hover{ transform:none; }
}
/* Signatur-Pad + Rechtshinweis (v38) */
.sig-pad{ width:100%; height:auto; aspect-ratio:64/22; background:#fffdf8; border:2px dashed var(--copper-line); border-radius:12px; touch-action:none; cursor:crosshair; }
.sig-remember{ display:flex; align-items:center; gap:8px; font-size:12.5px; color:var(--ink-dim); margin-top:10px; }
.sig-rule{ display:flex; gap:9px; align-items:flex-start; font-size:12px; line-height:1.45; margin:10px 14px 0; padding:9px 11px; border-radius:11px; }
.sig-rule svg{ width:15px; height:15px; flex:none; margin-top:1px; }
.sig-rule.ok{ background:var(--sage-soft); color:var(--ink-dim); } .sig-rule.ok svg{ color:var(--sage); }
.sig-rule.warn{ background:var(--gold-soft); color:var(--ink-dim); } .sig-rule.warn svg{ color:var(--gold); }
.sig-rule.bad{ background:var(--rust-soft); color:var(--ink-dim); } .sig-rule.bad svg{ color:var(--rust); }

/* Beleg-KI + Mieter-Portal (Schub 3+4) */
.beleg-prev{ text-align:center; margin-bottom:12px; }
.beleg-prev img{ max-height:220px; max-width:100%; border-radius:12px; border:1px solid var(--line); box-shadow:var(--shadow-soft); }
.ai-spinner{ width:42px; height:42px; display:grid; place-items:center; color:var(--copper); }
.portal-qr{ display:flex; justify-content:center; padding:10px 0 14px; }
.portal-qr img, .portal-qr canvas{ border-radius:10px; }
.portal-feats{ display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:12px; margin:4px 0 18px; }
.pf{ display:flex; align-items:center; gap:11px; padding:13px 15px; border:1px solid var(--line); border-radius:16px; background:linear-gradient(180deg,var(--surface),var(--canvas-2)); }
.pf .pf-ic{ width:38px; height:38px; border-radius:11px; display:grid; place-items:center; background:var(--copper-soft); border:1px solid var(--copper-line); flex:none; }
.pf .pf-ic svg{ width:19px; height:19px; color:var(--copper-2); }
.pf b{ font-size:13.5px; display:block; }
.pf small{ font-size:11.5px; color:var(--ink-dim); }

/* ============================================================
   DASHBOARD-UHR · FOKUS · MERKMALE · KOMPAKTE SETTINGS · ANIM-ICONS (v40)
   ============================================================ */
.dash-clock-wrap{ text-align:right; margin-left:auto; padding-right:14px; align-self:center; }
.dash-time{ font-family:var(--mono,monospace); font-size:26px; font-weight:700; letter-spacing:.04em; line-height:1;
  background:linear-gradient(120deg,var(--copper),var(--copper-2)); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.dash-date{ font-size:12px; color:var(--ink-faint); margin-top:4px; text-transform:capitalize; }
@media(max-width:680px){ .dash-clock-wrap{ display:none; } }
/* Heute im Fokus */
.fokus-row{ display:flex; align-items:stretch; gap:12px; margin:4px 0 18px; }
.fokus-grid{ flex:1; min-width:0; display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }
.fokus{ display:flex; align-items:center; gap:11px; padding:13px 14px; border-radius:15px; border:1px solid var(--line);
  background:linear-gradient(180deg,var(--surface),var(--canvas-2)); cursor:pointer; transition:transform .18s, box-shadow .18s; }
.fokus:hover{ transform:translateY(-3px); box-shadow:0 18px 36px -22px rgba(80,60,30,.45); }
.fk-ic{ width:38px; height:38px; flex:none; display:grid; place-items:center; border-radius:11px; color:#fff; }
.fk-ic svg{ width:19px; height:19px; }
.fk-main{ min-width:0; } .fk-val{ font-size:19px; font-weight:700; line-height:1.1; } .fk-lbl{ font-size:11.5px; color:var(--ink-faint); margin-top:2px; }
.fk-ok .fk-ic{ background:linear-gradient(150deg,var(--sage),#3a6b34); }
.fk-warn .fk-ic{ background:linear-gradient(150deg,var(--gold),#9a6a08); }
.fk-bad .fk-ic{ background:linear-gradient(150deg,var(--rust),#9a3322); animation:fkPulse 2s ease-in-out infinite; }
@keyframes fkPulse{ 0%,100%{ box-shadow:0 0 0 0 rgba(200,70,50,.45);} 50%{ box-shadow:0 0 0 7px rgba(200,70,50,0);} }
@media(max-width:760px){ .fokus-grid{ grid-template-columns:1fr 1fr; } }
/* Ausstattungs-Merkmale (Toggle-Chips) */
.feat-row .chip{ cursor:pointer; }
.feat-row .chip.on{ background:var(--copper); color:#fff; border-color:transparent; box-shadow:0 6px 16px -8px var(--glow-copper,rgba(176,94,34,.5)); }
/* Kompakte Einstellungen */
.view-settings .panel{ padding:14px 16px; margin-bottom:12px; }
.view-settings .panel h3{ font-size:14px; margin:0 0 10px; }
.view-settings .field{ margin-bottom:10px; }
.view-settings .field label{ font-size:12px; }
.view-settings .detail-grid{ gap:14px; }
.view-settings .hint{ padding:8px 10px; font-size:11.5px; }
.view-settings .btn{ padding:9px 14px; }
.view-settings .brand-hero{ padding:14px 16px; }
/* Bewegte/modernere Icons (reduced-motion-sicher) */
.nav a.active svg{ animation:navPop .4s ease; }
@keyframes navPop{ 0%{ transform:scale(.7); opacity:.4;} 60%{ transform:scale(1.18);} 100%{ transform:scale(1);} }
.k-ic svg{ transition:transform .3s cubic-bezier(.2,.7,.2,1); }
.kpi:hover .k-ic svg{ transform:scale(1.16) rotate(-6deg); }
.aib-ic svg{ animation:spark 2.6s ease-in-out infinite; transform-origin:center; }
@keyframes spark{ 0%,100%{ transform:scale(1) rotate(0);} 50%{ transform:scale(1.14) rotate(8deg);} }
.mh-360 .b360 svg, .side-foot .b360 svg{ animation:ringSpin 9s linear infinite; }
@keyframes ringSpin{ to{ transform:rotate(360deg);} }
.help-fab svg{ animation:none; }
@keyframes floaty{ 0%,100%{ transform:translateY(0);} 50%{ transform:translateY(-3px);} }
.tag-glow{ animation:tagPulse 1.8s ease-in-out infinite; }
@keyframes tagPulse{ 0%,100%{ box-shadow:0 0 0 0 rgba(200,70,50,.5);} 50%{ box-shadow:0 0 0 6px rgba(200,70,50,0);} }
@media(prefers-reduced-motion:reduce){
  .nav a.active svg,.aib-ic svg,.mh-360 .b360 svg,.side-foot .b360 svg,.help-fab svg,.fk-bad .fk-ic,.tag-glow{ animation:none; }
  .fokus:hover,.kpi:hover .k-ic svg{ transform:none; }
}

/* ============================================================
   v41 — SCORE · ADRESS-AUTOCOMPLETE · SPRACHEN · FOKUS-CONFIG · KONTRAST
   ============================================================ */
/* Kontrast: hellere Faint-Tinte (dunkles Theme), dunklere im Privat-Modus */
.app{ --ink-faint:#c2b49a; --ink-dim:#e6dccb; }
.app.edition-privat{ --ink-faint:#5f5446; --ink-dim:#3f3528; }
.muted{ color:var(--ink-dim); }
.hint{ color:var(--ink-dim); }
.k-lbl,.fk-lbl,.ais-l{ color:var(--ink-dim); }
.pill{ font-weight:600; }
.zr-main span,.row .k{ color:var(--ink-dim); }
/* Score-Ring */
.score-row{ display:flex; align-items:center; gap:16px; }
.score-ring{ --p:0; --c:var(--sage); width:74px; height:74px; flex:none; border-radius:50%;
  background:conic-gradient(var(--c) calc(var(--p)*1%), var(--line-strong) 0); display:grid; place-items:center; position:relative; }
.score-ring::before{ content:''; position:absolute; inset:8px; border-radius:50%; background:var(--surface); }
.score-ring span{ position:relative; font-weight:800; font-size:17px; }
.score-tx{ min-width:0; } .score-tx b{ display:block; font-size:14px; } .score-tx span{ font-size:12.5px; color:var(--ink-dim); }
/* Adress-Autocomplete (Photon/OSM) */
.addr-suggest{ position:absolute; left:0; right:0; top:100%; margin-top:4px; z-index:60; background:var(--surface);
  border:1px solid var(--line-strong); border-radius:12px; box-shadow:var(--shadow); overflow:hidden; max-height:230px; overflow-y:auto; }
.addr-item{ padding:10px 12px; font-size:13.5px; cursor:pointer; border-bottom:1px solid var(--line); color:var(--ink); }
.addr-item:last-child{ border-bottom:0; }
.addr-item:hover{ background:var(--copper-soft); color:var(--copper); }
.addr-attrib{ font-size:10.5px; color:var(--ink-faint); margin-top:4px; }
/* Sprach-Leiste im Dokument */
.doc-lang-bar{ display:flex; align-items:center; gap:7px; flex-wrap:wrap; padding:10px 14px; border-top:1px solid var(--line); }
.dlb-lbl{ font-size:12px; color:var(--ink-dim); display:inline-flex; align-items:center; gap:5px; }
.doc-lang-bar .chip.sm{ padding:5px 11px; font-size:12px; cursor:pointer; }
.doc-lang-bar .chip.on{ background:var(--copper); color:#fff; border-color:transparent; }
/* Fokus-Config-Button */
.fokus-cfg{ flex:none; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:5px; width:64px; border-radius:15px; border:1px dashed var(--line-strong);
  background:transparent; color:var(--ink-faint); cursor:pointer; transition:.18s; padding:8px; }
.fokus-cfg .fc-tx{ font-size:10px; font-weight:600; letter-spacing:.02em; }
.fokus-cfg:hover{ color:var(--copper); border-color:var(--copper-line); background:var(--copper-soft); }
.fokus-cfg svg{ width:18px; height:18px; }
@media(max-width:760px){ .fokus-cfg{ width:54px; } .fokus-cfg .fc-tx{ display:none; } }

/* ============================================================
   v42 — INTELLIGENCE-HERO · TOPBAR-NOTIF · DOC-RASTER · TEAM · A4-Vorschau
   ============================================================ */
/* Intelligence-Hero (Dashboard, prominent) */
.dash-aihero{ position:relative; overflow:hidden; margin:6px 0 20px; padding:20px 22px; border-radius:22px; cursor:pointer;
  background:linear-gradient(160deg, color-mix(in oklab,var(--copper) 16%,var(--surface)) 0%, var(--surface) 78%);
  border:1px solid var(--copper-line); box-shadow:0 22px 50px -30px var(--glow-copper,rgba(176,94,34,.6)); transition:transform .2s, box-shadow .2s; }
.dash-aihero:hover{ transform:translateY(-3px); box-shadow:0 30px 60px -30px var(--glow-copper,rgba(176,94,34,.7)); }
.dash-aihero.high{ border-color:var(--rust); }
.dash-aihero-glow{ position:absolute; inset:0; background:radial-gradient(130% 90% at 92% -12%, var(--copper-soft), transparent 58%); pointer-events:none; animation:spark 5s ease-in-out infinite; }
.aih-top{ display:flex; align-items:center; gap:10px; }
.aih-badge{ display:inline-flex; align-items:center; gap:7px; font-weight:700; font-size:13px; letter-spacing:.02em; color:var(--copper); }
.aih-badge svg{ width:18px; height:18px; animation:spark 2.6s ease-in-out infinite; }
.aih-cnt{ margin-left:auto; font-size:11px; font-weight:600; color:#fff; background:var(--copper); padding:3px 10px; border-radius:20px; }
.dash-aihero.high .aih-cnt{ background:var(--rust); }
.aih-main{ margin:12px 0 4px; } .aih-main b{ font-size:19px; line-height:1.25; display:block; } .aih-main p{ margin:6px 0 0; font-size:14px; color:var(--ink-dim); }
.aih-more{ display:flex; gap:8px; flex-wrap:wrap; margin:14px 0 4px; }
.aih-chip{ display:inline-flex; align-items:center; gap:7px; font-size:12.5px; font-weight:600; padding:7px 12px; border-radius:12px; background:var(--surface-2); border:1px solid var(--line); cursor:pointer; transition:.15s; }
.aih-chip:hover{ border-color:var(--copper-line); color:var(--copper); }
.aih-chip svg{ width:15px; height:15px; flex:none; }
.aih-chip.high{ border-color:var(--rust); }
.aih-act{ display:flex; gap:10px; flex-wrap:wrap; margin-top:14px; }
/* Topbar Notification-Banner (einheitlich über allen Tools) */
.notif-bar{ display:flex; gap:8px; align-items:center; margin-right:6px; }
.notif-chip{ display:inline-flex; align-items:center; gap:7px; padding:7px 12px; border-radius:20px; border:1px solid var(--line-strong);
  background:var(--surface-2); color:var(--ink-dim); font-size:12.5px; font-weight:600; cursor:pointer; transition:.16s; }
.notif-chip:hover{ color:var(--copper); border-color:var(--copper-line); transform:translateY(-1px); }
.notif-chip svg{ width:15px; height:15px; }
.notif-chip span{ background:var(--copper); color:#fff; border-radius:20px; min-width:18px; height:18px; display:inline-grid; place-items:center; font-size:11px; padding:0 5px; }
.notif-chip.warn span{ background:var(--rust); }
.notif-chip em{ font-style:normal; }
@media(max-width:860px){ .notif-chip em{ display:none; } }
/* Dokument-je-Mietverhältnis (sauberes Raster, keine Überlappung) */
.doc-mv-list{ display:flex; flex-direction:column; gap:12px; }
.doc-mv-card{ border:1px solid var(--line); border-radius:16px; padding:14px 16px; background:var(--surface-2); }
.doc-mv-card .btn{ margin-top:10px; }
.doc-type-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(210px,1fr)); gap:12px; }
.doc-type-card{ text-align:left; cursor:pointer; background:linear-gradient(180deg,var(--surface),var(--canvas-2)); border:1px solid var(--line); border-radius:var(--r-l); padding:15px; display:flex; flex-direction:column; gap:7px; transition:border-color .15s, transform .12s, box-shadow .15s; }
.doc-type-card:hover{ border-color:var(--copper-line); transform:translateY(-2px); box-shadow:0 10px 26px rgba(0,0,0,.10); }
.doc-type-card svg{ width:22px; height:22px; color:var(--copper-2); }
.doc-type-card b{ font-size:14px; color:var(--ink); }
.doc-type-card span{ font-size:12px; color:var(--ink-dim); line-height:1.4; }
.doc-pick-list{ display:flex; flex-direction:column; gap:8px; max-height:56vh; overflow:auto; }
.doc-pick-row{ text-align:left; cursor:pointer; display:flex; flex-direction:column; gap:2px; border:1px solid var(--line); border-radius:14px; padding:13px 15px; background:var(--surface-2); transition:border-color .15s, background .15s; }
.doc-pick-row:hover{ border-color:var(--copper-line); background:var(--copper-soft); }
.doc-pick-row b{ font-size:14px; } .doc-pick-row span{ font-size:12px; color:var(--ink-dim); }
.pkg-row{ display:flex; gap:8px; flex-wrap:wrap; }
.pkg-btn{ flex:1 1 auto; min-width:140px; justify-content:center; }
@media(max-width:560px){ .pkg-btn{ flex:1 1 100%; } }
.doc-mv-head{ display:flex; align-items:baseline; gap:10px; flex-wrap:wrap; margin-bottom:11px; padding-bottom:10px; border-bottom:1px dashed var(--line-strong); }
.doc-mv-head b{ font-size:15px; } .doc-mv-head span{ font-size:12.5px; color:var(--ink-dim); }
.doc-btn-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(165px,1fr)); gap:8px; }
.doc-btn-grid .btn{ justify-content:flex-start; white-space:normal; overflow:visible; text-overflow:clip; line-height:1.25; text-align:left; min-height:38px; }
/* Verwalter-Tag */
.verw-tag{ display:inline-flex; align-items:center; gap:5px; background:var(--copper-soft); color:var(--copper); border:1px solid var(--copper-line); padding:2px 9px; border-radius:20px; font-size:12px; font-weight:600; }
.verw-tag svg{ width:13px; height:13px; }

/* ============================================================
   v44 — QA-POLITUR: Bündigkeit, Overflow, Zahlungs-Raster, futuristische Pills, Logout
   ============================================================ */
/* Einheiten-Zeile: Titel bricht NIE mehr buchstabenweise um */
.unit-row{ flex-wrap:wrap; }
.unit-row .u-main{ flex:1 1 150px; min-width:130px; }
.unit-row .u-main b{ overflow-wrap:normal; word-break:keep-all; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.unit-row .u-main span{ overflow-wrap:normal; word-break:keep-all; }
.u-side{ display:flex; align-items:center; gap:8px; margin-left:auto; flex:0 0 auto; }
.u-side .u-rent{ text-align:right; min-width:84px; }
.u-side .btn.sm{ white-space:nowrap; }
@media(max-width:620px){
  .u-side{ margin-left:0; width:100%; justify-content:flex-end; margin-top:6px; flex-wrap:wrap; }
  .unit-row .u-main{ flex:1 1 100%; }
}
/* Zahlungseingänge: sauberes, bündiges Raster mit Ampel */
.pay-list{ display:flex; flex-direction:column; }
.pay-row{ display:grid; grid-template-columns:14px minmax(0,1fr) 116px 150px 196px; align-items:center; gap:14px;
  padding:13px 6px; border-bottom:1px solid var(--line); border-radius:10px; transition:background .16s; }
.pay-row:last-child{ border-bottom:0; } .pay-row:hover{ background:var(--surface-2); }
.pay-amp{ width:10px; height:10px; border-radius:50%; }
.pay-amp.ok{ background:var(--sage); box-shadow:0 0 0 3px var(--sage-soft); }
.pay-amp.warn{ background:var(--gold); box-shadow:0 0 0 3px var(--gold-soft); }
.pay-amp.bad{ background:var(--rust); box-shadow:0 0 0 3px var(--rust-soft); }
.pay-main{ min-width:0; } .pay-main b{ display:block; font-size:14.5px; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pay-main span{ font-size:12.5px; color:var(--ink-dim); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; display:block; }
.pay-amt{ text-align:right; } .pay-amt b{ font-family:var(--serif,inherit); font-size:15px; } .pay-amt span{ display:block; font-size:11px; color:var(--ink-dim); }
.pay-st{ display:flex; gap:6px; align-items:center; flex-wrap:wrap; }
.pay-act{ display:flex; gap:7px; justify-content:flex-end; }
.pay-act .btn{ white-space:nowrap; }
@media(max-width:820px){
  .pay-row{ grid-template-columns:14px 1fr auto; grid-auto-rows:auto; row-gap:8px; }
  .pay-amt{ grid-column:3; } .pay-st{ grid-column:2 / 4; } .pay-act{ grid-column:1 / 4; justify-content:flex-start; }
}
/* Editions-Pill: futuristisch statt geprägt */
.ed-pill{ display:inline-flex; align-items:center; gap:5px; font-size:10px; font-weight:700; letter-spacing:.12em; text-transform:uppercase;
  padding:3px 11px; border-radius:20px; border:1px solid var(--copper-line);
  background:linear-gradient(135deg, color-mix(in oklab,var(--copper) 24%, transparent), transparent);
  color:var(--copper-2); box-shadow:0 0 0 1px rgba(255,255,255,.02), 0 6px 16px -10px var(--glow-copper,rgba(176,94,34,.5)); backdrop-filter:blur(4px); }
.app.edition-verwaltung .ed-pill{ border-color:rgba(159,176,131,.42); color:#cdd9bd;
  background:linear-gradient(135deg, rgba(159,176,131,.22), transparent); box-shadow:0 6px 16px -10px rgba(120,150,110,.5); }
.ed-pill.sm{ font-size:9px; padding:2px 9px; }
/* Logout-Button (Sidebar) */
.logout-btn{ width:100%; margin:10px 0 4px; padding:10px 12px; border-radius:12px; border:1px solid var(--line-strong);
  background:transparent; color:var(--ink-dim); font-size:13px; font-weight:600; cursor:pointer; display:inline-flex; align-items:center; justify-content:center; gap:8px; transition:.16s; }
.logout-btn:hover{ color:var(--rust); border-color:var(--rust-soft); background:var(--rust-soft); }
.logout-btn svg{ width:15px; height:15px; }
/* Globaler Bündig-/Overflow-Pass */
.btn{ white-space:nowrap; max-width:100%; overflow:hidden; }
.btn>span{ min-width:0; overflow:hidden; text-overflow:ellipsis; }
@media(max-width:560px){ #view table{ display:block; overflow-x:auto; -webkit-overflow-scrolling:touch; } }
.btn span{ overflow:hidden; text-overflow:ellipsis; max-width:100%; }
/* In Button-Leisten dürfen Labels nicht abgeschnitten werden – Leiste bricht stattdessen um */
.m-foot{ flex-wrap:wrap; }
.m-foot .btn,.doc-btn-grid .btn{ flex:0 0 auto; }
.m-foot .btn span,.doc-btn-grid .btn span{ overflow:visible; text-overflow:clip; }
.pill{ white-space:nowrap; }
.zr-main b,.zr-main span{ overflow:hidden; text-overflow:ellipsis; }
.kpi .k-val{ overflow:hidden; text-overflow:ellipsis; }
.head h1{ overflow-wrap:break-word; }

/* Einwilligungs-Log + Portal-Login */
.consent-log .zrow{ padding:9px 4px; }
.consent-log .zr-main b{ font-size:13px; }

/* v47 — Push-Kategorien + Test-Push je MA */
.push-cats{ display:flex; flex-direction:column; gap:8px; }
.push-cat{ display:flex; align-items:center; justify-content:space-between; gap:14px; padding:11px 13px; border:1px solid var(--line); border-radius:12px; background:var(--surface-2); cursor:pointer; transition:.16s; }
.push-cat:hover{ border-color:var(--copper-line); }
.push-cat span{ display:flex; flex-direction:column; min-width:0; }
.push-cat span b{ font-size:13.5px; font-weight:600; }
.push-cat span em{ font-style:normal; font-size:12px; color:var(--ink-dim); }
.push-cat input{ width:auto; flex:none; accent-color:var(--copper); transform:scale(1.15); }
.push-ma-list{ display:flex; flex-direction:column; gap:8px; }
.push-ma{ display:flex; align-items:center; justify-content:space-between; gap:12px; padding:10px 12px; border:1px solid var(--line); border-radius:12px; }
.push-ma-main{ min-width:0; } .push-ma-main b{ display:block; font-size:13.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.push-ma-main span{ font-size:12px; color:var(--ink-dim); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; display:block; }

/* v53 — Teamchat Kanäle + Teilnehmer */
.chat-bar{ display:flex; align-items:center; justify-content:space-between; gap:12px; flex-wrap:wrap; margin-bottom:12px; }
.chat-chan{ display:flex; align-items:center; gap:8px; font-size:12.5px; color:var(--ink-dim); }
.chat-chan select{ padding:8px 11px; border-radius:10px; border:1px solid var(--line); background:var(--surface-2); color:var(--ink); font-size:13.5px; max-width:280px; }
.chat-mems{ display:flex; align-items:center; gap:6px; flex-wrap:wrap; }
.chat-mem{ font-size:11.5px; background:var(--copper-soft); color:var(--copper-2); border:1px solid var(--copper-line); border-radius:999px; padding:2px 9px; }
.pick-list{ display:flex; flex-direction:column; gap:8px; }
.pick-row{ display:flex; align-items:center; justify-content:space-between; gap:14px; padding:11px 13px; border:1px solid var(--line); border-radius:12px; background:var(--surface-2); cursor:pointer; }
.pick-row:hover{ border-color:var(--copper-line); }
.pick-row span{ display:flex; flex-direction:column; min-width:0; }
.pick-row span b{ font-size:13.5px; } .pick-row span em{ font-style:normal; font-size:12px; color:var(--ink-dim); }
.pick-row input{ width:auto; flex:none; accent-color:var(--copper); transform:scale(1.15); }

/* v56 — Miet-Recht-Werkzeuge */
.tool-grid{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
@media(max-width:560px){ .tool-grid{ grid-template-columns:1fr; } }
.tool-card{ text-align:left; display:flex; flex-direction:column; gap:6px; padding:16px; border:1px solid var(--line); border-radius:14px; background:var(--surface-2); cursor:pointer; transition:border-color .15s, transform .15s; }
.tool-card:hover{ border-color:var(--copper); transform:translateY(-2px); }
.tool-card .tc-ic{ width:34px; height:34px; display:grid; place-items:center; border-radius:10px; background:var(--copper-soft); color:var(--copper-2); }
.tool-card b{ font-size:14px; } .tool-card em{ font-style:normal; font-size:12px; color:var(--ink-dim); line-height:1.45; }
.tool-flags{ display:flex; flex-direction:column; gap:8px; margin:6px 0 2px; }
.chk{ display:flex; align-items:flex-start; gap:9px; font-size:13px; color:var(--ink); line-height:1.4; cursor:pointer; }
.chk input{ width:auto; flex:none; margin-top:2px; accent-color:var(--copper); transform:scale(1.1); }
.tool-out{ margin-top:12px; padding:12px 14px; border-radius:11px; font-size:13px; line-height:1.5; border:1px solid var(--line); background:var(--surface-2); }
.tool-out.ok{ border-color:#bfe3c2; background:#f1faf1; color:#2a6b32; }
.tool-out.warn{ border-color:#f0dcae; background:#fdf7e8; color:#8a6a1e; }
.tool-out.bad{ border-color:#f1c4c0; background:#fdeeec; color:#9a3b32; }
.tool-tbl{ width:100%; border-collapse:collapse; margin-top:8px; font-size:13px; }
.tool-tbl td{ padding:5px 2px; border-bottom:1px solid rgba(0,0,0,.06); } .tool-tbl td.r{ text-align:right; white-space:nowrap; }
.tool-tbl .bad-t{ color:#b3382c; font-weight:600; } .tool-tbl .ok-t{ color:#2a6b32; }

/* v57 — Geführte Tour */
.modal-tour{ max-width:440px; }
.tour{ padding:26px 26px 8px; text-align:center; }
.tour-ic{ width:62px; height:62px; margin:0 auto 14px; display:grid; place-items:center; border-radius:18px; background:var(--copper-soft); color:var(--copper-2); }
.tour-ic svg{ width:30px; height:30px; }
.tour h2{ margin:6px 0 8px; font-size:19px; }
.tour p{ color:var(--ink-dim); line-height:1.6; font-size:14px; margin:0 0 16px; }
.tour-dots{ display:flex; gap:7px; justify-content:center; margin:4px 0 2px; }
.tour-dot{ width:7px; height:7px; border-radius:50%; background:var(--line); transition:background .2s, width .2s; }
.tour-dot.on{ background:var(--copper); width:20px; border-radius:4px; }
.tour-foot{ justify-content:space-between; }

/* v58 — Liquiditätsvorschau */
.liq-chart{ display:flex; align-items:flex-end; gap:6px; height:120px; padding:6px 2px 0; border-bottom:1px solid var(--line); }
.liq-col{ flex:1; display:flex; flex-direction:column; align-items:center; gap:5px; justify-content:flex-end; }
.liq-bar{ width:100%; max-width:26px; border-radius:5px 5px 0 0; background:linear-gradient(180deg,var(--copper),var(--copper-2)); min-height:6px; }
.liq-bar.neg{ background:linear-gradient(180deg,#d98a82,#b3382c); }
.liq-lbl{ font-size:10px; color:var(--ink-dim); }

/* v59 — kompakte NK-Ergebniszeilen (Fix großer Leerraum) */
.nkr-list{ display:flex; flex-direction:column; }
.nkr{ padding:12px 4px; border-bottom:1px solid var(--line); }
.nkr:last-child{ border-bottom:0; }
.nkr-top{ display:flex; justify-content:space-between; gap:12px; align-items:baseline; }
.nkr-id{ min-width:0; } .nkr-id b{ font-size:14.5px; font-weight:600; } .nkr-id span{ display:block; font-size:12.5px; color:var(--ink-faint); margin-top:2px; }
.nkr-amt{ text-align:right; white-space:nowrap; } .nkr-amt b{ font-family:var(--serif); font-size:15px; } .nkr-amt span{ display:block; font-size:11px; color:var(--ink-faint); }
.nkr-bot{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-top:9px; }
.nkr-sp{ flex:1; } @media(max-width:560px){ .nkr-sp{ display:none; } .nkr-bot{ gap:6px; } }

/* v60 — Intelligence: mehr Animation */
@media (prefers-reduced-motion: no-preference){
  .aih-orb{ animation:aiOrbPulse 3.4s ease-in-out infinite; }
  .aih-orb::after{ animation:aiOrbRing 3.4s ease-in-out infinite; }
  .ai-hero .aih-badge{ animation:pop .5s ease both; }
  .ai-hero .aih-title{ animation:rise .5s .05s ease both; }
  .ai-hero .aih-sub{ animation:rise .5s .12s ease both; }
  .ai-stat{ animation:pop .5s both; } .aih-stats .ai-stat:nth-child(1){ animation-delay:.10s; } .aih-stats .ai-stat:nth-child(2){ animation-delay:.18s; } .aih-stats .ai-stat:nth-child(3){ animation-delay:.26s; }
  .ai-focus{ animation:rise .5s .2s ease both; }
  .ai-focus::after{ content:""; position:absolute; inset:0; border-radius:inherit; pointer-events:none;
    background:linear-gradient(115deg,transparent 30%,rgba(255,255,255,.16) 50%,transparent 70%); background-size:220% 100%; animation:aiFocusSheen 4.5s ease-in-out infinite; }
  .insight-list > *{ animation:rise .45s both; }
  .insight-list > *:nth-child(1){animation-delay:.04s;} .insight-list > *:nth-child(2){animation-delay:.10s;}
  .insight-list > *:nth-child(3){animation-delay:.16s;} .insight-list > *:nth-child(4){animation-delay:.22s;}
  .insight-list > *:nth-child(5){animation-delay:.28s;} .insight-list > *:nth-child(6){animation-delay:.34s;}
  .insight-list > *:nth-child(n+7){animation-delay:.40s;}
  .ai-quick .ai-chip{ animation:pop .45s both; }
  .ai-quick .ai-chip:nth-child(odd){animation-delay:.10s;} .ai-quick .ai-chip:nth-child(even){animation-delay:.16s;}
  .ai-insights .count{ animation:aiCountPulse 2.6s ease-in-out infinite; }
  .ais-v{ transition:color .3s; }
}
.ai-focus{ position:relative; overflow:hidden; }
@keyframes aiOrbPulse{ 0%,100%{ transform:scale(1); box-shadow:0 10px 30px -8px var(--glow-copper,rgba(224,106,56,.5)); } 50%{ transform:scale(1.06); box-shadow:0 16px 44px -6px var(--glow-copper,rgba(224,106,56,.7)); } }
@keyframes aiOrbRing{ 0%,100%{ transform:scale(1); opacity:.5; } 50%{ transform:scale(1.18); opacity:.15; } }
@keyframes aiFocusSheen{ 0%{ background-position:140% 0; } 55%,100%{ background-position:-40% 0; } }
@keyframes aiCountPulse{ 0%,100%{ transform:scale(1); } 50%{ transform:scale(1.12); } }

/* v60 — Objekt-Detail: ausgewogenes Panel-Raster (Fix Leerraum links) */
.obj-panels{ display:grid; grid-template-columns:repeat(auto-fill,minmax(330px,1fr)); gap:18px; align-items:start; margin-top:18px; }
@media(max-width:560px){ .obj-panels{ grid-template-columns:1fr; } }

/* v60 — Verbindungsindikator (Online/Offline) */
.conn-ind{ display:flex; align-items:center; gap:8px; padding:7px 10px; margin:4px 2px 8px; border-radius:11px; font-size:12px; font-weight:600;
  border:1px solid var(--line); background:var(--canvas-2); color:var(--ink-dim); }
.conn-ind.is-on{ color:var(--sage); } .conn-ind.is-off{ color:var(--rust); }
.conn-dot{ width:9px; height:9px; border-radius:50%; background:var(--ink-faint); flex:none; box-shadow:0 0 0 0 transparent; }
.conn-dot.on{ background:var(--sage); box-shadow:0 0 0 3px color-mix(in oklab,var(--sage) 22%,transparent); }
.conn-dot.off{ background:var(--rust); box-shadow:0 0 0 3px color-mix(in oklab,var(--rust) 20%,transparent); }
@media (prefers-reduced-motion: no-preference){ .conn-dot.on{ animation:connPulse 2.6s ease-in-out infinite; } }
@keyframes connPulse{ 0%,100%{ box-shadow:0 0 0 0 color-mix(in oklab,var(--sage) 30%,transparent); } 50%{ box-shadow:0 0 0 4px color-mix(in oklab,var(--sage) 8%,transparent); } }
.mh-conn{ width:10px; height:10px; align-self:center; }

/* v61 — Bearbeiten-Dialog groß + mobil fixiert */
html{ overflow-x:hidden; }
body.modal-open{ overflow:hidden; }
.modal .m-body{ max-width:100%; }
.modal-pdf{ width:min(1080px,100%); }
@media(max-width:900px){
  .modal-bg{ padding:0; place-items:end center; }
  .modal, .modal.modal-pdf, .modal.wide, .modal.modal-tour{ width:100%; max-width:100%; max-height:94vh; border-radius:20px 20px 0 0; }
  .modal-bg{ overscroll-behavior:contain; touch-action:pan-y; }
  .modal{ overscroll-behavior:contain; }
}

/* v61 — mehr Animationen (Intelligence-Nav + app-weit) */
.nav a.nav-ki{ position:relative; overflow:hidden; }
.nav a.nav-ki::after{ content:""; position:absolute; inset:0; pointer-events:none; border-radius:inherit;
  background:linear-gradient(120deg,transparent 35%,rgba(224,106,56,.16) 50%,transparent 65%); background-size:240% 100%; }
@media (prefers-reduced-motion: no-preference){
  .nav a.nav-ki::after{ animation:kiSheen 5.5s ease-in-out infinite; }
  .nav a.nav-ki svg{ animation:kiSpark 2.8s ease-in-out infinite; transform-origin:center; }
  .nav a{ animation:navIn .4s both; }
  .nav a:nth-child(1){animation-delay:.02s}.nav a:nth-child(2){animation-delay:.05s}.nav a:nth-child(3){animation-delay:.08s}
  .nav a:nth-child(4){animation-delay:.11s}.nav a:nth-child(5){animation-delay:.14s}.nav a:nth-child(6){animation-delay:.17s}
  .nav a:nth-child(n+7){animation-delay:.20s}
  .kpi{ transition:transform .18s ease, box-shadow .18s ease; }
  .kpi:hover{ transform:translateY(-3px); }
  .panel{ animation:viewIn .4s both; }
  .obj-card,.unit-row,.zrow,.nkr,.frist{ transition:transform .16s ease, box-shadow .16s ease, background .16s ease; }
  .obj-card:hover{ transform:translateY(-3px); }
}
.btn{ transition:transform .12s ease, box-shadow .18s ease, background .18s ease, border-color .18s ease; }
.btn:active{ transform:scale(.96); }
.ai-chip:active,.tab:active,.chip:active{ transform:scale(.97); }
@keyframes kiSheen{ 0%{ background-position:180% 0; } 60%,100%{ background-position:-80% 0; } }
@keyframes kiSpark{ 0%,100%{ transform:rotate(0) scale(1); opacity:.9; } 50%{ transform:rotate(8deg) scale(1.12); opacity:1; } }
@keyframes navIn{ from{ opacity:0; transform:translateX(-8px); } to{ opacity:1; transform:none; } }
@media (prefers-reduced-motion: reduce){ .nav a.nav-ki::after,.nav a.nav-ki svg,.nav a,.panel{ animation:none; } }

/* v61 — Sync-Status im Verbindungsindikator */
.conn-ind.is-on .conn-dot.sync, .conn-dot.sync{ background:var(--gold,#d6a23a); box-shadow:0 0 0 3px color-mix(in oklab,var(--gold,#d6a23a) 20%,transparent); }
@media (prefers-reduced-motion: no-preference){ .conn-dot.sync{ animation:connSync 1s linear infinite; } }
@keyframes connSync{ 0%,100%{ opacity:1; } 50%{ opacity:.45; } }
.conn-ind.is-on.is-on .conn-tx{ }

/* v61 — Objekt-Detail: dichtes Masonry (kein Leerraum) */
.obj-units{ margin-bottom:18px; }
.obj-masonry{ column-width:340px; column-gap:18px; }
.obj-masonry > *{ break-inside:avoid; -webkit-column-break-inside:avoid; page-break-inside:avoid; margin:0 0 18px; display:block; width:100%; }
@media(max-width:600px){ .obj-masonry{ column-width:auto; column-count:1; } }

/* v61 — Intelligence-Chat prominenter + mehr Quick-Analysen */
.ai-quick{ grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); }
.ai-chat{ border:1px solid var(--copper-line); box-shadow:0 18px 50px -24px var(--glow-copper,rgba(224,106,56,.5)), inset 0 0 0 1px color-mix(in oklab,var(--copper) 8%,transparent); position:relative; }
.ai-chat::before{ content:""; position:absolute; inset:0; border-radius:inherit; pointer-events:none; padding:1px;
  background:linear-gradient(135deg,color-mix(in oklab,var(--copper) 55%,transparent),transparent 45%,color-mix(in oklab,var(--copper-2) 40%,transparent));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude; }
.ai-chat-head{ display:flex; align-items:center; gap:13px; padding:15px 18px; border-bottom:1px solid var(--line); background:linear-gradient(180deg,color-mix(in oklab,var(--copper) 10%,transparent),transparent); }
.ai-chat-orb{ width:40px; height:40px; border-radius:13px; display:grid; place-items:center; flex:none; color:#fff;
  background:linear-gradient(135deg,var(--copper),var(--copper-2)); box-shadow:0 8px 22px -8px var(--glow-copper,rgba(224,106,56,.6)); }
.ai-chat-orb svg{ width:21px; height:21px; }
.ai-chat-head b{ font-size:15px; display:block; } .ai-chat-head em{ font-size:12px; color:var(--ink-faint); font-style:normal; }
.ai-live{ margin-left:auto; font-size:11px; font-weight:700; letter-spacing:.04em; color:var(--copper-2); display:inline-flex; align-items:center; gap:5px; padding:4px 10px; border-radius:999px; background:var(--copper-soft); border:1px solid var(--copper-line); }
.ai-live svg{ width:13px; height:13px; }
.ai-log{ min-height:300px; max-height:56vh; }
.ai-input textarea{ font-size:15px; padding:12px 14px; }
.ai-input .btn{ align-self:stretch; }
@media (prefers-reduced-motion: no-preference){ .ai-chat-orb{ animation:aiOrbPulse 3.4s ease-in-out infinite; } .ai-live svg{ animation:kiSpark 2.6s ease-in-out infinite; } }

/* v61 — Dashboard-Intelligence: Kennzahlen + Schnellanalysen */
.aih-stats3{ display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin:14px 0 4px; }
.ahs{ background:color-mix(in oklab,var(--surface) 70%,transparent); border:1px solid var(--line); border-radius:13px; padding:11px 13px; }
.ahs b{ font-family:var(--serif); font-size:19px; display:block; line-height:1.1; }
.ahs span{ font-size:11px; color:var(--ink-faint); }
.ahs.pos b{ color:var(--sage); } .ahs.neg b{ color:var(--rust); }
.aih-quick{ display:flex; flex-wrap:wrap; gap:8px; margin:12px 0 4px; }
.aih-quick .btn{ background:color-mix(in oklab,var(--surface) 80%,transparent); }
@media(max-width:560px){ .aih-stats3{ grid-template-columns:1fr 1fr 1fr; gap:7px; } .ahs b{ font-size:16px; } .aih-act{ padding-right:60px; } }

/* v68 — Test-Benachrichtigungen (Support) */
.testpush-grid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(190px,1fr)); gap:8px; }
.testpush-grid .btn{ justify-content:flex-start; }

/* ============================================================
   v91 — Login-Politur + sichtbares Build-Badge
   Overrides am Dateiende · innerhalb der bestehenden Designsprache
   (Kupfer/Lime-Glas, Unbounded-Display) · prefers-reduced-motion-sicher
   ============================================================ */

/* Atmosphäre: dezente, langsam driftende Aurora hinter der Karte */
.auth-bg{ overflow:hidden; isolation:isolate; }
.auth-bg::after{
  content:""; position:absolute; inset:-20% -10%; z-index:0; pointer-events:none;
  background:
    radial-gradient(38% 32% at 22% 18%, rgba(221,149,89,.16), transparent 70%),
    radial-gradient(34% 30% at 82% 28%, rgba(163,230,53,.10), transparent 72%),
    radial-gradient(46% 40% at 50% 108%, rgba(221,149,89,.10), transparent 70%);
  filter:blur(8px);
}
.auth-bg > .auth-card{ position:relative; z-index:2; }
.auth-bg > .auth-foot{ position:relative; z-index:2; }

/* Karte: etwas tiefere Tiefe + lebendigere Akzentlinie oben */
.auth-card{
  box-shadow:0 40px 90px -34px rgba(0,0,0,.78), 0 2px 0 rgba(255,255,255,.05) inset,
             0 0 0 1px rgba(255,255,255,.02) inset, 0 0 60px -30px rgba(221,149,89,.45);
}
.auth-card::before{
  background:linear-gradient(90deg,transparent,var(--copper),var(--copper-2),transparent);
  background-size:200% 100%; height:1.5px; filter:drop-shadow(0 0 6px rgba(221,149,89,.5));
}

/* Logo-Mark: weicher pulsierender Glow-Ring */
.auth-brand .mark{ position:relative; }
.auth-brand .mark::after{
  content:""; position:absolute; inset:-5px; border-radius:17px; z-index:-1;
  background:radial-gradient(circle at 50% 50%, rgba(221,149,89,.55), transparent 70%);
  opacity:.7;
}

/* Überschrift: Display-Font (Unbounded) für Charakter */
.auth-h{
  font-family:var(--display); font-weight:600; font-size:26px; letter-spacing:-.005em;
  color:var(--ink);
}

/* Sichtbares Build-Badge als Pill (löst „v90 unsichtbar") */
.auth-foot .af-build{
  flex-basis:100%; text-align:center; margin-top:11px; opacity:1; font-size:0; letter-spacing:0;
}
.auth-foot .af-pill{
  display:inline-flex; align-items:center; gap:7px;
  padding:5px 13px; border-radius:999px;
  font-family:var(--mono,"Space Mono",ui-monospace,monospace);
  font-size:11px; font-weight:600; letter-spacing:.07em;
  color:var(--copper-2);
  background:var(--copper-soft);
  border:1px solid var(--copper-line);
  box-shadow:0 8px 20px -12px rgba(221,149,89,.6), 0 1px 0 rgba(255,255,255,.05) inset;
}
.auth-foot .af-dot{
  width:7px; height:7px; border-radius:50%; flex:none;
  background:var(--lime); box-shadow:0 0 9px var(--lime-glow);
}

/* Bewegung nur, wenn der Nutzer sie zulässt */
@media (prefers-reduced-motion: no-preference){
  .auth-card::before{ animation:authSheen 6s ease-in-out infinite; }
  @keyframes authSheen{ 0%,100%{background-position:0% 0} 50%{background-position:100% 0} }

  .auth-brand .mark::after{ animation:authMarkGlow 3.2s ease-in-out infinite; }
  @keyframes authMarkGlow{ 0%,100%{opacity:.55;transform:scale(.96)} 50%{opacity:.9;transform:scale(1.06)} }

  .auth-foot .af-dot{ animation:authDot 2.2s ease-in-out infinite; }
  @keyframes authDot{ 0%,100%{opacity:1;transform:scale(1)} 50%{opacity:.5;transform:scale(.78)} }

  /* gestaffeltes Einblenden der Login-Bausteine */
  .auth-card .auth-brand,.auth-card .auth-h,.auth-card .auth-sub,
  .auth-card .field,.auth-card .auth-adv,.auth-card .auth-btn,.auth-card .auth-hint{
    animation:authRise .5s cubic-bezier(.2,.8,.2,1) both;
  }
  .auth-card .auth-brand{animation-delay:.04s}
  .auth-card .auth-h{animation-delay:.10s}
  .auth-card .auth-sub{animation-delay:.15s}
  .auth-card .field:nth-of-type(1){animation-delay:.20s}
  .auth-card .field:nth-of-type(2){animation-delay:.25s}
  .auth-card .auth-adv{animation-delay:.29s}
  .auth-card .auth-btn{animation-delay:.34s}
  .auth-card .auth-hint{animation-delay:.39s}
  @keyframes authRise{ from{opacity:0;transform:translateY(9px)} to{opacity:1;transform:none} }
}

/* ============================================================
   v93 — Chip-/Badge-System: weg von „vollrund & langweilig"
   Einheitliche, klar gestaltete Chips (feiner Verlauf + Haarlinie +
   eckiger Mini-Indikator) statt 999px-Pillen. + Intelligence-Badge-Fix.
   Overrides am Dateiende.
   ============================================================ */

/* Gemeinsame, ruhige Chip-Rundung (statt vollrund) */
.pill, .kpi .k-sub, .ed-pill, .ed-pill.sm, .notif-chip, .aih-cnt, .ai-live,
.chat-mem, .tuev-badge, .perm-chip, .ais-sub, .obj-card .cover .badge,
.nav a .tag, .tag{ border-radius:8px; }

/* Status-Pillen: feiner Zwei-Ton-Verlauf + Haarlinie + eckiger Mini-Indikator */
.pill{
  padding:5px 11px 5px 9px; font-size:11.5px; font-weight:600; letter-spacing:.01em;
  border:1px solid var(--line);
  box-shadow:0 1px 0 rgba(255,255,255,.03) inset, 0 6px 16px -13px rgba(0,0,0,.7);
}
.pill::before{ width:7px; height:7px; border-radius:2px; }   /* eckiger Indikator statt Kreis */
.pill.ok{ background:linear-gradient(180deg,var(--sage-soft),transparent); color:var(--sage); border-color:rgba(52,179,160,.32); }
.pill.warn{ background:linear-gradient(180deg,var(--gold-soft),transparent); color:var(--gold); border-color:rgba(230,189,107,.36); }
.pill.bad{ background:linear-gradient(180deg,var(--rust-soft),transparent); color:var(--rust); border-color:rgba(207,107,77,.36); }
.pill.neutral{ background:linear-gradient(180deg,var(--surface-2),transparent); color:var(--ink-dim); border-color:var(--line); }

/* KPI-Sub („ausgeglichen", „Rückstand" …): gleiche Sprache, eckiger Punkt davor */
.kpi .k-sub{ padding:4px 10px 4px 9px; display:inline-flex; align-items:center; gap:7px; }
.kpi .k-sub::before{ content:""; width:7px; height:7px; border-radius:2px; background:currentColor; flex:none; }
.kpi .k-sub.up{ background:linear-gradient(180deg,var(--sage-soft),transparent); }
.kpi .k-sub.warn{ background:linear-gradient(180deg,var(--gold-soft),transparent); }
.kpi .k-sub.down{ background:linear-gradient(180deg,var(--rust-soft),transparent); }

/* Zähler-Bubbles eckiger (statt Kreis), bleiben kompakt */
.notif-chip span{ border-radius:6px; }

/* Edition-Pill: entrundet, edler Verlauf bleibt */
.ed-pill{ letter-spacing:.1em; }

/* ---- Intelligence-Badge: Überlauf-Fix + ruhiger, edler ---- */
.aih-top{ display:flex; align-items:center; flex-wrap:wrap; gap:10px; row-gap:8px; }
.dash-aihero .aih-top{ padding-right:0; }            /* Teaser hat keine Orb -> kein Reserve-Platz */
.aih-badge{
  white-space:nowrap; letter-spacing:.07em; border-radius:9px;
  background:linear-gradient(180deg, rgba(221,149,89,.18), rgba(221,149,89,.05));
  border:1px solid var(--copper-line); padding:5px 12px;
}
.aih-cnt{ padding:4px 10px; }
@media(max-width:560px){ .aih-badge{ letter-spacing:.04em; font-size:10px; padding:4px 10px; } }
/* ============================================================
   v99 — Zurück zur fixen Seitenleiste (Top-Menü entfernt).
   Die Basis liefert die links fixierte, beim Scrollen stehende Leiste
   (.sidebar position:sticky; top:0; height:100vh). Hier nur Feinschliff:
   die Gruppen-Blöcke (.nav-grp aus dem Markup) sauber stapeln.
   ============================================================ */
.sidebar .nav .nav-grp{ display:flex; flex-direction:column; gap:2px; }

/* ============================================================
   v100 — App-Shell: linke Sidebar FEST, nur der Inhalt scrollt.
   .app = exakt Viewport-Höhe (kein Seiten-Scroll mehr),
   .main ist der einzige Scrollbereich, .topbar bleibt oben angeheftet.
   ============================================================ */
html,body{height:100%;}
body{overflow:hidden;}
.app{height:100vh;height:100dvh;overflow:hidden;}
.sidebar{position:static;height:100%;}
.main{min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;}
.topbar{position:sticky;top:0;}

/* ============================================================
   v102 — Feste Sidebar bereits ab Tablet (ab 901px).
   Vorher wich die Leiste zwischen 901–1100px einem Top-Menü;
   jetzt bleibt sie als feste linke Spalte. Handy (≤900px) unverändert
   (Drawer über Burger + Bottom-Tabs).
   ============================================================ */
@media(min-width:901px){
  .app{grid-template-columns:248px 1fr;}
  .sidebar{display:flex;}
  .tb-menu{display:none;}
}

/* ============================================================
   v105 — LESBARKEIT & SKALIERUNG (Override-Block, bewusst am Ende)
   Behebt: unsichtbare Gradient-Überschriften in WebView/TWA,
   zu blasser Sekundärtext, Horizontal-Überlauf bei großer Schrift.
   ============================================================ */

/* 1) Überschriften & Zahlen NIE transparent rendern -> immer gut lesbar */
.head h1, .auth-h, .block-screen h1,
.brand b, .mh-brand b, .auth-brand b,
.section-head h2, .panel > h3,
.kpi .k-val, .kpi .k-val small,
.obj-card .stat .v, .ai-stat .ais-v, .ais-v {
  background: none !important;
  -webkit-background-clip: border-box !important;
  background-clip: border-box !important;
  -webkit-text-fill-color: currentColor !important;
  color: var(--ink) !important;
  filter: none !important;
}
.kpi .k-val small { color: var(--ink-faint) !important; }

/* 2) Sekundärtext heller (besserer Kontrast auf dunklem Grund) */
:root {
  --ink-dim: #e8ddcc;
  --ink-faint: #cabd a3;
}
:root { --ink-faint: #c9bda4; } /* (sichere Hex-Notation) */

/* 3) Kein horizontaler Überlauf — lange URLs/Codes brechen um */
html, body { max-width: 100%; overflow-x: hidden; }
.app, .main { max-width: 100vw; }
.main { overflow-x: hidden; }
.auth-card, .panel, .card, .kpi { max-width: 100%; }
.auth-sub, .auth-hint, .head p, .hint, .meta-list, .row,
.row .k, .row .v, .panel p, .card p, code, .mono, a, .auth-foot {
  overflow-wrap: anywhere;
  word-break: break-word;
}

/* 4) Große Systemschrift: Inhalt darf wachsen & scrollen statt zu klippen */
@media (max-width: 900px) {
  html, body { height: auto; min-height: 100%; }
  body { overflow-x: hidden; overflow-y: auto; }
  .main { min-height: 0; }
}

/* ============================================================
   v106 — DUNKLES THEMA DEUTLICH AUFGEHELLT
   Hellere Flächen, kräftigere Ränder, hellerer Text -> klar lesbar,
   Karten heben sich sichtbar vom Hintergrund ab. Warm-dunkel bleibt erhalten.
   ============================================================ */
:root{
  --canvas:#221d16;          /* vorher #14110d — deutlich heller */
  --canvas-2:#2b251c;
  --surface:#352d22;         /* Karten heben sich ab */
  --surface-2:#423728;
  --surface-3:#4f4232;
  --line:rgba(247,241,231,.22);        /* Ränder sichtbarer */
  --line-strong:rgba(247,241,231,.42);
  --ink:#fcf8f1;
  --ink-dim:#efe6d6;         /* Sekundärtext klar lesbar */
  --ink-faint:#d2c4ab;
  --shadow:0 1px 0 rgba(255,255,255,.05) inset, 0 16px 40px -26px rgba(0,0,0,.5);
  --shadow-soft:0 8px 22px -16px rgba(0,0,0,.45);
}
/* Karten/Panels bekommen einen klaren, etwas helleren Verlauf + sichtbare Kante */
.kpi, .panel, .obj-card, .fokus, .card, .ai-panel{
  border-color:var(--line-strong);
  box-shadow:var(--shadow-soft);
}
/* Sekundärtext nirgends unter ~#cabd a3 — Mindest-Lesbarkeit */
.k-lbl, .kpi .k-lbl, .crumb, .nav .lbl, .hint, .auth-foot, .mode-hint{ color:var(--ink-dim) !important; }

/* ============================================================
   v107 — NATIVE-FEEL: kein blaues Tap-Kästchen, sichtbares Drücken,
   kompaktere Handy-Optik (Modal/Buttons/Felder).
   ============================================================ */
* { -webkit-tap-highlight-color: transparent; }

/* Sichtbares Drücken (Press-Feedback) */
.btn, .chip, .nav a, .tile, .kpi.clk, .fokus, [data-go], button {
  transition: transform .08s ease, filter .12s ease, background .14s ease;
}
.btn:active, .chip:active, .nav a:active, .tile:active,
.kpi.clk:active, .fokus:active, [data-go]:active, button:active {
  transform: scale(.97);
  filter: brightness(1.1);
}

/* Kompakter & wertiger auf dem Handy — wirkt wie eine native App */
@media (max-width: 900px) {
  .modal .m-head h2 { font-size: 21px; line-height: 1.12; }
  .modal .m-head .eyebrow { font-size: 10px; letter-spacing: .16em; }
  .modal .m-head p { font-size: 13px; }
  .modal .m-head, .modal .m-body { padding-left: 18px; padding-right: 18px; }
  .field { margin-bottom: 13px; }
  .field label { font-size: 12px; letter-spacing: .02em; }
  .field input, .field textarea, .field select { padding: 11px 13px; font-size: 15px; border-radius: 12px; }
  .btn { padding: 9px 14px; font-size: 13px; border-radius: 11px; }
  .btn.primary, .auth-btn { padding: 12px 16px; font-size: 14px; }
  .modal .m-foot { padding: 12px 16px 16px; gap: 8px; }
  .head h1 { font-size: clamp(22px, 6vw, 28px); }
  .kpi .k-val { font-size: 26px; }
  .kpi { padding: 14px 14px 13px; }
}

/* ============================================================
   v108 — Felder-Bug behoben: horizontaler Überlauf endgültig
   gesperrt; lange URLs/Codes brechen um statt das Layout zu
   sprengen. Dokument-Dropdown. Kein Android-Text-Popup.
   ============================================================ */
/* Kern: .main hatte durch overflow-y:auto implizit horizontales
   Scrollen -> jetzt hart gesperrt. */
.main { overflow-x: hidden; }
.content, .panel { max-width: 100%; }
.field input, .field select, .field textarea { max-width: 100%; box-sizing: border-box; }
.field textarea { white-space: pre-wrap; word-break: break-word; }

/* Lange, unbrechbare Inhalte (Referral-Link, Einbettungs-Code,
   E-Mails) zwingend umbrechen */
.panel p, .hint, .hint div, .field label, .field .help,
.ref-code, code, pre, .mono, [style*="monospace"] {
  overflow-wrap: anywhere;
  word-break: break-word;
}

/* Dokument-Picker: ein Dropdown + Erzeugen-Button statt 11 Buttons */
.doc-pick { display: flex; gap: 9px; align-items: stretch; }
.doc-pick .doc-sel {
  flex: 1 1 auto; min-width: 0;
  background: var(--canvas); color: var(--ink);
  border: 1px solid var(--line-strong); border-radius: 12px;
  padding: 11px 13px; font-size: 15px; font-family: inherit; outline: none;
}
.doc-pick .doc-sel:focus { border-color: var(--copper-line); box-shadow: 0 0 0 3px var(--copper-soft); }
.doc-pick .btn { flex: 0 0 auto; white-space: nowrap; }

/* Android-Text-Popup (Google „Bereich") unterbinden: UI-Chrome
   nicht markierbar; Eingaben bleiben selbstverständlich markierbar */
.m-head, .field label, .btn, .chip, .sidebar, .mtab, .section-head,
.panel > h3, .head h1, .head p, .doc-mv-head { -webkit-user-select: none; user-select: none; }
input, textarea, select, .ref-code, [contenteditable] { -webkit-user-select: text; user-select: text; }

/* ============================================================
   v109 — Dokument-Vorschau mobil aufgeraeumt (Dokument ist jetzt
   responsiv; Button-Fuss als sauberes 2er-Raster). Sidebar dezenter.
   ============================================================ */
@media (max-width: 900px) {
  .modal-pdf .pdf-frame { height: 46vh; }
  .modal-pdf .m-foot {
    display: grid; grid-template-columns: 1fr 1fr; gap: 8px;
    padding: 12px 14px calc(14px + env(safe-area-inset-bottom));
  }
  .modal-pdf .m-foot .btn { width: 100%; justify-content: center; font-size: 13px; padding: 11px 8px; }
  .modal-pdf .m-foot .btn.primary { grid-column: 1 / -1; }   /* „Als PDF" volle Breite */
  .doc-lang-bar { flex-wrap: wrap; }
}
/* „Große Schrift" weniger schreierisch (war optisch sehr laut) */
.komfort-toggle { font-size: 12.5px; padding: 9px 12px; }

/* ============================================================
   v110 — Sticky-Header deckend, Sidebar-Fuss kompakt (Menue passt
   wieder), untere Leiste feiner, Umbrueche korrigiert (keine
   zerhackten Woerter mehr). Konsistente Optik.
   ============================================================ */

/* 1) Topbar nicht mehr durchscheinend -> Inhalt verschwindet sauber darunter */
.topbar { background: var(--canvas); -webkit-backdrop-filter: none; backdrop-filter: none; z-index: 25; }
@media (max-width: 900px) {
  .topbar { padding: 11px var(--pad); gap: 10px; }
  .topbar .tb-menu { display: none; }   /* mheader hat schon einen Menue-Button */
  .mheader { z-index: 31; }
}

/* 2) Sidebar-Fuss kompakt — grosse Buttons drueckten das Menue weg */
.side-bottom { gap: 5px; margin-top: 10px; }
.komfort-toggle {
  width: 100%; margin-top: 4px; padding: 8px 12px; font-size: 12.5px; font-weight: 600;
  border-radius: 11px; gap: 7px;
  background: transparent; border: 1px solid var(--line-strong); color: var(--ink-dim);
}
.komfort-toggle .kf-a { font-size: 13px; }
.komfort-toggle.on { background: var(--copper-soft); color: var(--copper-2); border-color: var(--copper-line); box-shadow: none; }
.komfort-toggle:hover { background: var(--surface-2); color: var(--ink); }
.komfort-toggle.on:hover { background: var(--copper-soft); color: var(--copper-2); filter: none; }
.mode-switch { padding: 4px; border-radius: 12px; }
.mode-switch button { padding: 7px 10px; font-size: 12.5px; }
.mode-hint { font-size: 11px; line-height: 1.4; }
.logout-btn { margin: 6px 0 2px; padding: 8px 12px; font-size: 12.5px; }
.logout-btn svg { width: 14px; height: 14px; }
.conn-ind { font-size: 11px; }
.side-foot { margin-top: 8px; padding-top: 10px; }

/* 3) Untere Leiste (Tabbar) feiner & konsistent */
@media (max-width: 900px) {
  .mtab { padding: 6px 6px env(safe-area-inset-bottom); }
  .mtab a { font-size: 10.5px; gap: 4px; padding: 6px 10px; font-weight: 500; }
  .mtab a svg { width: 22px; height: 22px; }
  .mtab a.active { font-weight: 600; }
}

/* 4) UMBRUECHE korrigiert: normale Woerter bleiben ganz; hartes Brechen
   nur fuer URLs / Code / E-Mails. (Hebt v105/v108 gezielt auf.) */
.auth-sub, .auth-hint, .head p, .hint, .hint div, .meta-list,
.row, .row .k, .row .v, .panel p, .card p, .field label, .field .help, .auth-foot {
  overflow-wrap: break-word; word-break: normal; hyphens: manual;
}
code, pre, .mono, .ref-code, a[href], #web_snippet, [style*="monospace"] {
  overflow-wrap: anywhere; word-break: break-word;
}

/* ============================================================
   v111 — Nur EIN Header am Handy: gebrandete Markenleiste bleibt,
   zweite Leiste (Suche/Zurück/+) wird ausgeblendet; Zurueck-Pfeil
   wandert in die Markenleiste.
   ============================================================ */
@media (max-width: 900px) {
  .topbar { display: none; }
  .mh-back {
    display: inline-flex; align-items: center; justify-content: center;
    width: 38px; height: 38px; flex: none; margin-right: 2px;
    border: 1px solid var(--line); background: transparent; border-radius: 10px; color: var(--ink);
  }
  .mh-back:active { background: var(--copper-soft); transform: scale(.95); }
}
@media (min-width: 901px) { .mh-back { display: none; } }

/* ============================================================
   v112 — Handy-Suche (Lupe in der Markenleiste -> Such-Modal,
   nutzt dieselbe globalSearch-Logik).
   ============================================================ */
.mh-search { display: none; }
@media (max-width: 900px) {
  .mh-search {
    display: inline-flex; align-items: center; justify-content: center;
    width: 38px; height: 38px; flex: none;
    border: 1px solid var(--line); background: transparent; border-radius: 10px; color: var(--ink); cursor: pointer;
  }
  .mh-search svg { width: 19px; height: 19px; }
  .mh-search:active { background: var(--copper-soft); transform: scale(.95); }
}
.msearch-wrap { padding: 0 18px 4px; }
.msearch-field { width: 100%; }
.msearch-res { margin-top: 12px; display: flex; flex-direction: column; gap: 6px; max-height: 52vh; overflow-y: auto; }
.msearch-res .sr-item { width: 100%; text-align: left; }

/* ============================================================
   v113 — Entfernen: archivieren + endgueltig loeschen.
   ============================================================ */
.btn.danger { color: var(--rust); border-color: var(--rust-soft); }
.btn.danger:hover { background: var(--rust-soft); border-color: var(--rust); color: var(--rust); }
.m-foot .foot-grow { flex: 1 1 auto; }
@media (max-width: 900px) {
  .modal .m-foot { flex-wrap: wrap; }
  .m-foot .foot-grow { flex-basis: 100%; height: 0; }   /* erzwingt Umbruch: Loeschen/Archiv oben, Abbrechen/Speichern unten */
}
.arch-block { margin-top: 18px; border: 1px dashed var(--line-strong); border-radius: 14px; padding: 2px 14px; }
.arch-block > summary { cursor: pointer; padding: 11px 2px; font-size: 13px; color: var(--ink-dim); font-weight: 600;
  list-style: none; display: flex; align-items: center; gap: 8px; }
.arch-block > summary::-webkit-details-marker { display: none; }
.arch-block > summary svg { width: 16px; height: 16px; }
.arch-block[open] > summary { border-bottom: 1px solid var(--line); margin-bottom: 10px; }
.obj-card.is-arch { opacity: .72; }
.obj-card.is-arch .badge { background: var(--surface-3); color: var(--ink-faint); }

/* ============================================================
   v114 — Mahnwesen: kuendigungsreifer Rueckstand (§543) Warnbanner.
   ============================================================ */
.kr-banner { display: flex; gap: 12px; align-items: flex-start; margin: 0 0 18px;
  padding: 14px 16px; border-radius: 14px;
  background: var(--rust-soft); border: 1px solid var(--rust); color: var(--ink); line-height: 1.5; font-size: 13.5px; }
.kr-banner svg { width: 20px; height: 20px; flex: none; margin-top: 1px; }
.kr-banner b { color: var(--rust); }

/* ============================================================
   v116 — Eingabefelder bulletproof gegen horizontalen Overflow:
   min-width:0 erlaubt Schrumpfen in Flex/Grid (war die Ursache,
   dass Felder „zu breit" aus dem Bildschirm ragten).
   ============================================================ */
input, select, textarea { max-width: 100%; box-sizing: border-box; min-width: 0; }
.field, .section, .panel { min-width: 0; }
.detail-grid > *, .grid-2 > *, .obj-masonry > * { min-width: 0; }
@media (max-width: 900px) {
  .brand-hero { flex-wrap: wrap; }
  .ref-box { flex-wrap: wrap; }
}

/* Dashboard-Status-Ringe (v125) */
.glance-row{ display:grid; grid-template-columns:repeat(2,1fr); gap:14px; margin-bottom:22px; }
.app.edition-verwaltung .glance-row{ grid-template-columns:repeat(3,1fr); }
.glance{ display:flex; align-items:center; gap:14px; background:linear-gradient(180deg,var(--surface),var(--canvas-2));
  border:1px solid var(--line); border-radius:var(--r-l); padding:15px 18px; cursor:pointer; transition:border-color .15s ease,transform .15s ease; }
.glance:hover{ border-color:var(--copper-line); transform:translateY(-1px); }
.glance-ring{ --p:0; --c:var(--sage); width:60px; height:60px; flex:none; border-radius:50%;
  background:conic-gradient(var(--c) calc(var(--p)*1%), var(--line-strong) 0); display:grid; place-items:center; position:relative; }
.glance-ring::before{ content:''; position:absolute; inset:7px; border-radius:50%; background:var(--surface); }
.glance-ring span{ position:relative; font-weight:800; font-size:15px; font-family:var(--serif); letter-spacing:-.02em; }
.glance-tx{ min-width:0; } .glance-tx b{ display:block; font-size:14px; letter-spacing:-.01em; }
.glance-tx span{ font-size:12px; color:var(--ink-dim); }
@media(max-width:760px){ .app.edition-verwaltung .glance-row{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:470px){ .glance-row,.app.edition-verwaltung .glance-row{ grid-template-columns:1fr; } }

/* Objektkarte: Belegungs-Ring + Chips (v126) */
.obj-card .oc-flex{ display:flex; align-items:center; gap:14px; }
.oc-ring{ --p:0; --c:var(--sage); width:52px; height:52px; flex:none; border-radius:50%;
  background:conic-gradient(var(--c) calc(var(--p)*1%), var(--line-strong) 0); display:grid; place-items:center; position:relative; }
.oc-ring::before{ content:''; position:absolute; inset:6px; border-radius:50%; background:var(--surface); }
.oc-ring span{ position:relative; font-weight:800; font-size:13px; font-family:var(--serif); letter-spacing:-.02em; }
.obj-card .oc-side{ display:flex; flex-direction:column; gap:7px; align-items:flex-start; }
.obj-card .oc-rent{ font-family:var(--serif); font-size:20px; font-weight:600; letter-spacing:-.01em; }
.obj-card .oc-rent small{ font-size:12px; color:var(--ink-faint); font-weight:600; margin-left:2px; }
.obj-card .oc-stats{ flex:1; margin-top:0; }
.obj-card .oc-chips{ display:flex; flex-wrap:wrap; gap:6px; margin-top:13px; }
.oc-chip{ font-size:11px; padding:3px 9px; border-radius:20px; background:var(--surface-2); border:1px solid var(--line); color:var(--ink-dim); }
.oc-chip.bad{ background:var(--rust-soft); color:var(--rust); border-color:transparent; }
.oc-chip.warn{ background:var(--gold-soft); color:var(--gold); border-color:transparent; }

/* Schnellaktion FAB + Sheet (v127) */
.fab{ position:fixed; right:20px; bottom:calc(86px + env(safe-area-inset-bottom,0px)); z-index:80; width:56px; height:56px; border-radius:50%; border:none; cursor:pointer;
  background:linear-gradient(135deg,var(--copper),var(--copper-2)); color:#fff; display:grid; place-items:center;
  box-shadow:0 12px 32px rgba(0,0,0,.42), inset 0 2px 0 rgba(255,255,255,.18); transition:transform .15s ease, box-shadow .2s ease; }
.fab:hover{ transform:translateY(-2px) scale(1.04); box-shadow:0 16px 40px rgba(0,0,0,.5), inset 0 2px 0 rgba(255,255,255,.18); }
.fab:active{ transform:scale(.95); }
.fab svg{ width:26px; height:26px; }
@media(max-width:900px){ .fab{ bottom:calc(140px + env(safe-area-inset-bottom,0px)); right:14px; width:54px; height:54px; } }
.fab-sheet{ display:flex; flex-direction:column; gap:10px; }
.fab-act{ display:flex; align-items:center; gap:14px; text-align:left; width:100%; background:var(--surface-2); border:1px solid var(--line);
  border-radius:16px; padding:14px 16px; cursor:pointer; color:var(--ink); transition:border-color .15s ease,transform .12s ease,background .15s ease; }
.fab-act:hover{ border-color:var(--copper-line); transform:translateY(-1px); background:var(--surface-3); }
.fab-act .fa-ic{ width:42px; height:42px; flex:none; border-radius:12px; display:grid; place-items:center; background:var(--copper-soft); color:var(--copper); font-size:20px; }
.fab-act .fa-ic svg{ width:20px; height:20px; }
.fab-act .fa-tx{ display:flex; flex-direction:column; gap:2px; min-width:0; }
.fab-act .fa-tx b{ font-size:14.5px; letter-spacing:-.01em; } .fab-act .fa-tx span{ font-size:12px; color:var(--ink-dim); }
.fab-pick{ display:block; width:100%; text-align:left; background:var(--surface-2); border:1px solid var(--line); border-radius:12px;
  padding:12px 15px; margin-bottom:8px; cursor:pointer; color:var(--ink); font-size:14px; font-weight:600; transition:border-color .15s ease; }
.fab-pick:hover{ border-color:var(--copper-line); }
.fab-pick span{ display:block; font-size:12px; color:var(--ink-dim); margin-top:3px; font-weight:400; }


/* ============================ ProfiSuite Assistent — Premium-Redesign (v129) ============================ */
.bot-wrap{ position:relative; display:flex; flex-direction:column; min-height:0; }
.bot-aurora{ position:absolute; inset:-40px -10px auto -10px; height:340px; z-index:0; pointer-events:none; filter:blur(60px); opacity:.55;
  background:
    radial-gradient(38% 60% at 18% 18%, var(--copper) 0%, transparent 70%),
    radial-gradient(34% 56% at 82% 8%, var(--sage) 0%, transparent 72%),
    radial-gradient(40% 60% at 60% 40%, var(--gold) 0%, transparent 75%);
  animation:botAurora 14s ease-in-out infinite alternate; }
@keyframes botAurora{ 0%{ transform:translate3d(0,0,0) scale(1); opacity:.5; } 50%{ opacity:.62; } 100%{ transform:translate3d(0,-14px,0) scale(1.06); opacity:.5; } }
.bot-wrap>*:not(.bot-aurora){ position:relative; z-index:1; }

/* Hero mit glühendem KI-Orb */
.bot-hero{ display:flex; align-items:center; gap:18px; padding:6px 4px 18px; }
.bot-orb{ width:66px; height:66px; flex:none; border-radius:50%; position:relative; display:grid; place-items:center;
  background:conic-gradient(from 0deg, var(--copper), var(--gold), var(--sage), var(--copper)); animation:botSpin 7s linear infinite;
  box-shadow:0 0 0 1px rgba(255,255,255,.08), 0 14px 40px -10px var(--glow-copper,rgba(224,106,56,.7)); }
.bot-orb::after{ content:''; position:absolute; inset:3px; border-radius:50%; background:radial-gradient(circle at 35% 30%, rgba(255,255,255,.18), var(--surface) 70%); }
.bot-orb-core{ position:relative; z-index:2; color:#fff; display:grid; place-items:center; animation:botFloat 3.4s ease-in-out infinite; }
.bot-orb-core svg{ width:26px; height:26px; filter:drop-shadow(0 1px 4px rgba(0,0,0,.4)); }
@keyframes botSpin{ to{ transform:rotate(360deg); } }
@keyframes botFloat{ 0%,100%{ transform:translateY(-1px) scale(1);} 50%{ transform:translateY(1px) scale(1.06);} }
.bot-hero-tx h1{ font-family:var(--serif); font-weight:600; font-size:26px; letter-spacing:-.02em; margin:2px 0 6px;
  background:linear-gradient(90deg,var(--ink),var(--copper) 60%,var(--gold)); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; }
.bot-hero-tx .eyebrow{ font-size:10.5px; letter-spacing:.18em; text-transform:uppercase; color:var(--copper); font-weight:700; }
.bot-hero-tx p{ color:var(--ink-dim); font-size:13px; margin:0; max-width:48ch; line-height:1.5; }

/* Log + Nachrichten */
.bot-log{ display:flex; flex-direction:column; gap:14px; padding:14px 2px 8px; min-height:200px; }
.bot-welcome{ text-align:center; color:var(--ink-dim); padding:30px 12px; }
.bot-welcome .bw-ic{ width:58px; height:58px; margin:0 auto 14px; border-radius:18px; display:grid; place-items:center; color:#fff;
  background:conic-gradient(from 0deg,var(--copper),var(--gold),var(--sage),var(--copper)); box-shadow:0 14px 40px -12px var(--glow-copper,rgba(224,106,56,.7)); }
.bot-welcome .bw-ic svg{ width:27px; height:27px; } .bot-welcome b{ display:block; font-family:var(--serif); font-size:18px; color:var(--ink); margin-bottom:2px; }
.bot-welcome span{ font-size:13px; }
.bot-msg{ display:flex; gap:10px; align-items:flex-end; animation:botMsgIn .34s cubic-bezier(.2,.7,.3,1) both; }
.bot-msg.user{ justify-content:flex-end; }
@keyframes botMsgIn{ from{ opacity:0; transform:translateY(10px); } to{ opacity:1; transform:none; } }
.bot-ava{ width:32px; height:32px; flex:none; border-radius:50%; display:grid; place-items:center; color:#fff;
  background:conic-gradient(from 0deg,var(--copper),var(--gold),var(--sage),var(--copper)); box-shadow:0 6px 16px -6px var(--glow-copper,rgba(224,106,56,.7)); }
.bot-ava svg{ width:16px; height:16px; }
.bot-bub{ max-width:80%; padding:13px 16px; border-radius:18px; font-size:14px; line-height:1.6; position:relative; }
.bot-msg.bot .bot-bub{ background:linear-gradient(180deg, color-mix(in oklab,var(--surface) 86%, transparent), color-mix(in oklab,var(--canvas-2) 90%, transparent));
  border:1px solid var(--line); border-bottom-left-radius:6px; color:var(--ink); backdrop-filter:blur(8px);
  box-shadow:0 1px 0 rgba(255,255,255,.04) inset, 0 10px 30px -18px rgba(0,0,0,.6); }
.bot-msg.user .bot-bub{ background:linear-gradient(135deg,var(--copper),var(--copper-2)); color:#fff; border-bottom-right-radius:6px;
  box-shadow:0 12px 30px -12px var(--glow-copper,rgba(224,106,56,.6)); }
.bot-bub h4{ margin:9px 0 4px; font-size:14px; } .bot-bub ul{ margin:6px 0; padding-left:18px; } .bot-bub li{ margin:3px 0; }
.bot-bub b{ font-weight:700; } .bot-bub .ai-hint{ margin-top:9px; font-size:12px; color:var(--ink-dim); padding-top:8px; border-top:1px solid var(--line); }
.bot-bub.typing{ padding:14px 16px; }
.bot-dots{ display:inline-flex; gap:5px; align-items:center; } .bot-dots i{ width:7px; height:7px; border-radius:50%; background:var(--copper); animation:botpulse 1.1s infinite; }
.bot-dots i:nth-child(2){ animation-delay:.16s; background:var(--gold); } .bot-dots i:nth-child(3){ animation-delay:.32s; background:var(--sage); }
@keyframes botpulse{ 0%,100%{ opacity:.3; transform:translateY(0);} 50%{ opacity:1; transform:translateY(-4px);} }

/* Aktions-Ergebnis als „Tool-Run"-Karte */
.bot-act{ display:flex; align-items:center; gap:10px; align-self:center; max-width:92%; font-size:12.5px; font-weight:600; padding:9px 14px 9px 12px; border-radius:14px;
  background:color-mix(in oklab,var(--sage-soft) 80%, var(--surface)); color:var(--sage); border:1px solid color-mix(in oklab,var(--sage) 30%, transparent);
  box-shadow:0 10px 28px -16px color-mix(in oklab,var(--sage) 60%, transparent); animation:botMsgIn .34s cubic-bezier(.2,.7,.3,1) both; }
.bot-act .ba-ic{ width:22px; height:22px; flex:none; border-radius:50%; display:grid; place-items:center; background:var(--sage); color:var(--canvas); }
.bot-act .ba-ic svg{ width:13px; height:13px; } .bot-act .ba-tx{ min-width:0; }
.bot-act.err{ background:color-mix(in oklab,var(--rust-soft) 80%, var(--surface)); color:var(--rust); border-color:color-mix(in oklab,var(--rust) 30%, transparent); box-shadow:none; }
.bot-act.err .ba-ic{ background:var(--rust); }

/* Vorschlags-Chips mit Gradient-Rand */
.bot-suggest{ display:flex; flex-wrap:wrap; gap:9px; padding:10px 2px 2px; }
.bot-chip{ font-size:12.5px; font-weight:600; padding:9px 15px; border-radius:22px; cursor:pointer; color:var(--ink-dim); border:1px solid transparent;
  background:linear-gradient(var(--surface),var(--surface)) padding-box, linear-gradient(120deg,var(--copper-line),transparent 50%,var(--sage)) border-box;
  transition:transform .14s ease, color .14s ease, box-shadow .2s ease; }
.bot-chip:hover{ transform:translateY(-2px); color:var(--ink); box-shadow:0 10px 26px -14px var(--glow-copper,rgba(224,106,56,.6)); }

/* Eingabe als schwebende Glas-Kapsel + glühender Senden-Button */
.bot-input{ display:flex; gap:10px; align-items:flex-end; margin-top:12px; padding:8px 8px 8px 8px; border-radius:24px;
  background:color-mix(in oklab,var(--surface) 80%, transparent); border:1px solid var(--line-strong); backdrop-filter:blur(10px);
  box-shadow:0 18px 50px -28px rgba(0,0,0,.7); }
.bot-input textarea{ flex:1; resize:none; border:0; background:transparent; color:var(--ink); font-family:inherit; font-size:14.5px; line-height:1.5; padding:9px 8px; max-height:120px; }
.bot-input textarea:focus{ outline:none; }
.bot-go{ flex:none; width:46px; height:46px; border-radius:50%; border:none; cursor:pointer; display:grid; place-items:center; color:#fff;
  background:conic-gradient(from 0deg,var(--copper),var(--gold),var(--copper-2),var(--copper)); box-shadow:0 10px 26px -8px var(--glow-copper,rgba(224,106,56,.75));
  transition:transform .14s ease, box-shadow .2s ease; }
.bot-go:hover{ transform:scale(1.07) rotate(3deg); } .bot-go:active{ transform:scale(.94); } .bot-go svg{ width:20px; height:20px; }
.bot-disc{ display:flex; align-items:flex-start; gap:7px; font-size:11px; color:var(--ink-faint); padding:9px 6px 0; } .bot-disc svg{ width:13px; height:13px; flex:none; margin-top:1px; }

@media(max-width:560px){
  .bot-hero{ gap:14px; } .bot-orb{ width:54px; height:54px; } .bot-orb-core svg{ width:22px; height:22px; }
  .bot-hero-tx h1{ font-size:22px; } .bot-bub{ max-width:84%; }
}
@media(prefers-reduced-motion:reduce){ .bot-aurora,.bot-orb,.bot-orb-core,.bot-msg,.bot-act,.bot-dots i{ animation:none !important; } }

/* Layout-Sicherheit: Platz am Seitenende, damit schwebende Buttons (Hilfe + Aktion) nie über Inhalten/Texten liegen (v129) */
.content{ padding-bottom:120px; }
@media(max-width:900px){ .content{ padding-bottom:190px; } }
/* Assistent-Seite: kein zusätzlicher Bodenabstand nötig (eigene Eingabe), Hilfe-Button bleibt frei */

/* ============================ v130 — Gesten, Mikro-Animationen, Leerzustände, Tabellen-Akzente ============================ */
/* Häkchen-Burst beim Bezahlen */
.flash-check{ position:fixed; inset:0; z-index:120; display:grid; place-items:center; pointer-events:none; }
.flash-check svg{ width:96px; height:96px; color:var(--sage); background:color-mix(in oklab,var(--canvas) 70%, transparent);
  border-radius:50%; padding:20px; box-shadow:0 20px 60px -20px color-mix(in oklab,var(--sage) 70%, transparent);
  animation:flashCk .78s cubic-bezier(.2,.8,.3,1) forwards; }
@keyframes flashCk{ 0%{ transform:scale(.4); opacity:0; } 25%{ transform:scale(1.06); opacity:1; } 70%{ transform:scale(1); opacity:1; } 100%{ transform:scale(1.1); opacity:0; } }

/* Swipe-to-pay auf Zahlungszeilen (nur Touch) */
.pay-row{ position:relative; }
.pay-row.swiping{ user-select:none; }
.pay-swipe-hint{ position:absolute; left:0; top:0; bottom:0; width:150px; display:flex; align-items:center; gap:8px; padding-left:18px;
  color:#fff; font-weight:700; font-size:14px; border-radius:14px; opacity:0; pointer-events:none;
  background:linear-gradient(90deg,var(--sage),color-mix(in oklab,var(--sage) 60%, var(--canvas))); }
.pay-swipe-hint svg{ width:20px; height:20px; }
.pay-row.swiping .pay-swipe-hint{ opacity:1; }
.pay-row.swipe-armed .pay-swipe-hint{ box-shadow:0 0 0 2px var(--sage) inset; }

/* Mini Ist/Soll-Balken in der Zahlungszeile (Tabellen-Akzent) */
.pay-amt .pay-bar{ height:4px; border-radius:20px; background:var(--surface-3,rgba(255,255,255,.08)); overflow:hidden; margin-top:6px; min-width:70px; }
.pay-amt .pay-bar i{ display:block; height:100%; border-radius:20px; transition:width .5s cubic-bezier(.2,.8,.3,1); }
.pay-amt .pay-bar i.ok{ background:linear-gradient(90deg,var(--sage),#b6c79b); }
.pay-amt .pay-bar i.warn{ background:linear-gradient(90deg,var(--gold),#f0d28a); }
.pay-amt .pay-bar i.bad{ background:var(--rust); }

/* Einladende Leerzustände */
.empty{ animation:emptyIn .4s ease both; }
@keyframes emptyIn{ from{ opacity:0; transform:translateY(8px); } to{ opacity:1; transform:none; } }
.empty .e-ic{ position:relative; background:var(--surface-2); border:1px solid var(--line);
  box-shadow:0 14px 40px -22px var(--glow-copper,rgba(224,106,56,.6)); animation:emptyFloat 4s ease-in-out infinite; }
.empty .e-ic::before{ content:''; position:absolute; inset:-3px; border-radius:inherit; padding:3px;
  background:conic-gradient(from 0deg,var(--copper),var(--gold),var(--sage),var(--copper));
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude; opacity:.55; }
@keyframes emptyFloat{ 0%,100%{ transform:translateY(-2px); } 50%{ transform:translateY(2px); } }
.empty .btn{ animation:none; }
@media(prefers-reduced-motion:reduce){ .flash-check svg,.empty,.empty .e-ic,.pay-amt .pay-bar i{ animation:none !important; transition:none !important; } }

/* ===== v146 ===== */
/* In-App-Logo = App-Icon (1:1) */
.mark{ overflow:hidden; }
.mark .ps-logo-img{ width:100%; height:100%; object-fit:cover; border-radius:inherit; display:block; }
.brand .mark, .mh-brand .mark, .auth-brand .mark{ background:transparent; border:none; padding:0; }
/* Insight-Karten: Buttons auf eigene Zeile (Fix: Wort-für-Wort-Umbruch + Überlappung) */
@media(max-width:560px){
  .insight{ flex-wrap:wrap; row-gap:10px; }
  .ins-act{ width:100%; justify-content:flex-start; }
}

/* ===== v147: Portfolio-Gesundheits-Score ===== */
.health-hero{ display:flex; align-items:center; gap:18px; background:linear-gradient(180deg,var(--surface),var(--canvas-2)); border:1px solid var(--line); border-radius:var(--r-l,18px); padding:16px 18px; margin-bottom:16px; }
.hh-ring{ width:104px; height:104px; }
.hh-ring::before{ inset:11px; }
.hh-ring span{ font-size:23px; }
.hh-body{ flex:1; min-width:0; }
.hh-top{ display:flex; align-items:baseline; gap:10px; margin-bottom:10px; }
.hh-top b{ font-size:16px; font-family:var(--serif); }
.hh-grade{ font-size:12px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; }
.hh-parts{ display:flex; flex-direction:column; gap:7px; }
.hh-part{ display:grid; grid-template-columns:96px 1fr 30px; align-items:center; gap:10px; }
.hhp-l{ font-size:12px; color:var(--ink-dim); }
.hhp-bar{ height:7px; border-radius:4px; background:var(--line-strong); overflow:hidden; }
.hhp-bar i{ display:block; height:100%; border-radius:4px; transition:width .6s ease; }
.hhp-v{ font-size:12.5px; font-weight:700; text-align:right; color:var(--ink-dim); }
@media(max-width:470px){ .health-hero{ gap:14px; padding:14px; } .hh-ring{ width:88px; height:88px; } .hh-ring span{ font-size:20px; } .hh-part{ grid-template-columns:84px 1fr 26px; gap:8px; } }

/* ===== v148: moderner & kompakter ===== */
/* Schnell-Analysen kompakter */
.ai-quick{ grid-template-columns:repeat(auto-fit,minmax(152px,1fr)); gap:8px; }
.ai-chip{ padding:10px 12px; font-size:13px; gap:9px; border-radius:13px; }
.ai-chip svg{ width:26px !important; height:26px !important; padding:5px !important; border-radius:9px !important; }
@media(max-width:470px){ .ai-quick{ grid-template-columns:1fr 1fr; } }
/* Intelligence-Texte kürzen: Kernaussage groß, Details auf 2 Zeilen gekappt */
.ins-tx b{ font-size:14.5px !important; }
.ins-tx span,.aif-tx span,.aih-main p{ display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
/* Portfolio-Score-Hero moderner */
.health-hero{ position:relative; overflow:hidden; box-shadow:0 20px 44px -30px rgba(160,100,60,.55); }
.health-hero::before{ content:''; position:absolute; inset:0; background:radial-gradient(120% 80% at 82% -12%, rgba(163,230,53,.08), transparent 60%); pointer-events:none; }
.hh-ring{ filter:drop-shadow(0 8px 18px rgba(0,0,0,.35)); }
.hh-top b{ font-size:17px; letter-spacing:-.01em; }

/* ===== v149: Login/Register-Tabs + Schnell-Login ===== */
.auth-tabs{ display:flex; gap:6px; background:var(--surface-2,rgba(255,255,255,.04)); border:1px solid var(--line); border-radius:14px; padding:5px; margin-bottom:18px; }
.auth-tab{ flex:1; padding:10px 12px; border:0; background:transparent; color:var(--ink-faint); font-size:14px; font-weight:700; border-radius:10px; cursor:pointer; transition:background .15s,color .15s; }
.auth-tab.on{ background:linear-gradient(180deg,var(--copper),var(--copper-2)); color:#fff; box-shadow:0 8px 20px -10px rgba(200,120,60,.6); }
.quick-relogin{ border:1px solid var(--copper-line,rgba(221,149,89,.3)); border-radius:16px; padding:18px; margin-bottom:16px; text-align:center; background:linear-gradient(180deg,var(--surface),var(--canvas-2)); }
.quick-relogin .qr-eyebrow{ font-size:11px; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-faint); display:inline-flex; align-items:center; gap:6px; }
.quick-relogin .qr-eyebrow svg{ width:14px; height:14px; color:var(--lime); }
.quick-relogin .qr-mail{ font-size:17px; font-weight:700; margin:6px 0 14px; word-break:break-all; }

/* ===== v150: Formular-Entwurf + Wizard-Fortschritt ===== */
.draft-bar{ display:flex; align-items:center; justify-content:space-between; gap:10px; flex-wrap:wrap; background:linear-gradient(180deg,rgba(163,230,53,.10),transparent); border:1px solid var(--copper-line,rgba(221,149,89,.3)); border-radius:12px; padding:9px 12px; margin-bottom:14px; font-size:13px; }
.draft-bar .draft-act{ display:flex; gap:6px; flex:none; }
.wz-prog{ height:6px; border-radius:4px; background:var(--line-strong); overflow:hidden; margin-bottom:12px; }
.wz-prog i{ display:block; height:100%; border-radius:4px; background:linear-gradient(90deg,var(--copper),var(--lime)); transition:width .35s ease; }

/* ===== v151: A11y · Suche/Filter · Einrichtung · Skeleton · Undo ===== */
/* Touch-Ziele (WCAG 2.2): kleine interaktive Elemente vergrößern, sichtbarer Fokus */
.btn.sm{ min-height:32px; }
.foto-del,.foto-cover,.u-imgbtn,.notif-chip,.fokus-cfg,.lf-chip,.komfort-toggle{ min-height:32px; min-width:32px; }
:focus-visible{ outline:2px solid var(--copper); outline-offset:2px; }

/* Listen-Suche & Filter */
.list-filter{ display:flex; align-items:center; gap:10px; flex-wrap:wrap; margin:0 0 14px; }
.lf-search{ display:flex; align-items:center; gap:7px; flex:1 1 220px; min-width:170px; background:var(--surface); border:1px solid var(--line-strong); border-radius:11px; padding:0 12px; }
.lf-search svg{ width:16px; height:16px; opacity:.55; flex:none; }
.lf-input{ flex:1; border:0; background:transparent; color:var(--ink); padding:10px 0; font-size:14px; outline:none; min-height:40px; }
.lf-chips{ display:flex; gap:6px; flex-wrap:wrap; }
.lf-chip{ border:1px solid var(--line-strong); background:var(--surface); color:var(--muted); border-radius:999px; padding:6px 12px; font-size:12.5px; cursor:pointer; }
.lf-chip.on{ background:linear-gradient(180deg,rgba(221,149,89,.20),rgba(221,149,89,.07)); border-color:var(--copper); color:var(--ink); }
.lf-none{ width:100%; color:var(--muted); font-size:13px; padding:12px 2px; }

/* Einrichtungs-Checkliste */
.setup-card{ background:linear-gradient(180deg,rgba(163,230,53,.08),var(--surface)); border:1px solid var(--line-strong); border-radius:16px; padding:15px 18px; margin-bottom:16px; }
.setup-head{ display:flex; align-items:baseline; gap:10px; flex-wrap:wrap; }
.setup-head b{ font-size:15px; } .setup-head span{ color:var(--muted); font-size:12.5px; }
.setup-prog{ height:6px; border-radius:4px; background:var(--line-strong); overflow:hidden; margin:10px 0 12px; }
.setup-prog i{ display:block; height:100%; border-radius:4px; background:linear-gradient(90deg,var(--copper),var(--lime)); transition:width .4s ease; }
.setup-steps{ display:flex; flex-direction:column; gap:8px; }
.setup-step{ display:flex; align-items:center; gap:9px; font-size:13.5px; color:var(--ink); }
.setup-step svg{ width:16px; height:16px; color:var(--sage); flex:none; }
.setup-step.done{ color:var(--muted); }
.setup-step .su-dot{ width:14px; height:14px; border:2px solid var(--line-strong); border-radius:50%; flex:none; }
.setup-step span{ flex:1; }

/* Skeleton-Shimmer hinter lazy-geladenen Galerie-Bildern (nur Tiles mit Bild) */
.foto-tile:has(img){ background:linear-gradient(100deg,var(--surface-2) 30%,rgba(255,255,255,.07) 50%,var(--surface-2) 70%); background-size:200% 100%; animation:imgSkel 1.3s ease-in-out infinite; }
@keyframes imgSkel{ 0%{background-position:200% 0} 100%{background-position:-200% 0} }
@media (prefers-reduced-motion: reduce){ .foto-tile:has(img){ animation:none; } }

/* Undo-Button im Toast */
.toast-undo{ margin-left:10px; background:transparent; border:1px solid rgba(255,255,255,.35); color:#fff; border-radius:8px; padding:5px 11px; font-size:12.5px; cursor:pointer; min-height:30px; pointer-events:auto; }
.toast-undo:hover{ background:rgba(255,255,255,.14); }

/* ===== v167: eigene Icons, Farb-Akzente, animierte Erfolgsmeldung ===== */
.obj-card .cover .glyph svg{ width:42px; height:42px; color:rgba(255,255,255,.94); }
.block-screen .b-ic svg{ width:40px; height:40px; }
.unit-row .u-ic svg{ width:20px; height:20px; }
.komfort-toggle .kf-a svg{ width:15px; height:15px; vertical-align:-2px; }
.perm-chip svg{ width:13px; height:13px; vertical-align:-2px; }
.tag-ic svg, .zr-main span svg{ width:12px; height:12px; vertical-align:-2px; opacity:.78; }
.inline-heart svg{ width:13px; height:13px; vertical-align:-2px; color:var(--copper); }
/* Farb-Akzente: FAB-Aktionen je eigene Tönung */
.fab-act[data-fab-act="assistent"] .fa-ic{ background:linear-gradient(135deg,rgba(190,140,255,.22),rgba(190,140,255,.07)); color:#7c4dd6; }
.fab-act[data-fab-act="objekt"] .fa-ic{ background:linear-gradient(135deg,rgba(86,150,255,.20),rgba(86,150,255,.06)); color:#2f6fdb; }
.fab-act[data-fab-act="mieter"] .fa-ic{ background:linear-gradient(135deg,rgba(31,158,116,.22),rgba(31,158,116,.06)); color:#178a63; }
.fab-act[data-fab-act="dokument"] .fa-ic{ background:linear-gradient(135deg,var(--copper-soft),transparent); color:var(--copper-2); }
.fab-act[data-fab-act="auftrag"] .fa-ic{ background:linear-gradient(135deg,rgba(224,140,60,.22),rgba(224,140,60,.06)); color:#c97a1e; }
.fab-act[data-fab-act="beleg"] .fa-ic{ background:linear-gradient(135deg,rgba(216,160,60,.22),rgba(216,160,60,.06)); color:#b8881f; }
/* Animierte Erfolgsmeldung im Toast (app-weit) */
.toast .toast-ok{ display:inline-grid; place-items:center; width:22px; height:22px; border-radius:50%; flex:none; background:linear-gradient(135deg,#27c08a,#159e74); color:#fff; box-shadow:0 4px 12px -3px rgba(21,158,116,.6); }
.toast .toast-ok svg{ width:14px; height:14px; }
.toast.pop .toast-ok{ animation:okPop .5s cubic-bezier(.2,.9,.3,1.4); }
.toast.pop .toast-ok svg path{ stroke-dasharray:24; stroke-dashoffset:24; animation:okDraw .42s .12s forwards ease; }
@keyframes okPop{ 0%{ transform:scale(.3); } 55%{ transform:scale(1.18); } 100%{ transform:scale(1); } }
@keyframes okDraw{ to{ stroke-dashoffset:0; } }
/* flash-check: Haken zeichnen */
.flash-check svg path{ stroke-dasharray:30; stroke-dashoffset:30; animation:flashDraw .5s .14s forwards ease; }
@keyframes flashDraw{ to{ stroke-dashoffset:0; } }
@media(prefers-reduced-motion:reduce){ .toast.pop .toast-ok,.toast.pop .toast-ok svg path,.flash-check svg path{ animation:none !important; stroke-dashoffset:0 !important; } }

/* ===== v170: einheitliche Dropdowns + App-Kalender ===== */
select{ -webkit-appearance:none; -moz-appearance:none; appearance:none;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='14' viewBox='0 0 24 24' fill='none' stroke='%23b5703a' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat; background-position:right 12px center; background-size:13px; padding-right:34px !important; cursor:pointer; }
select::-ms-expand{ display:none; }
/* App-Kalender: gestyltes Feld statt nativem Datepicker */
.dp-wrap{ position:relative; display:block; }
.dp-native{ position:absolute !important; width:1px; height:1px; opacity:0; pointer-events:none; left:0; top:0; margin:0; padding:0; border:0; }
.dp-field{ display:flex; align-items:center; justify-content:space-between; gap:10px; width:100%; box-sizing:border-box; text-align:left; font:inherit; font-size:14px;
  padding:11px 13px; border:1px solid var(--line-strong); border-radius:11px; background:var(--canvas); color:var(--ink); cursor:pointer; line-height:1.3; }
.dp-field:hover{ border-color:var(--copper-line); }
.dp-field:focus, .dp-wrap:focus-within .dp-field{ outline:none; border-color:var(--copper); box-shadow:0 0 0 3px var(--copper-soft); }
.dp-wrap.dp-empty .dp-tx{ color:var(--ink-faint); }
.dp-field .dp-ic{ display:inline-flex; color:var(--copper); flex:none; }
.dp-field .dp-ic svg{ width:17px; height:17px; }
.dp-pop{ position:absolute; z-index:240; width:288px; max-width:calc(100vw - 16px); background:var(--surface); border:1px solid var(--line);
  border-radius:16px; box-shadow:0 26px 64px -22px rgba(40,30,18,.45); padding:12px; }
.dp-head{ display:flex; align-items:center; gap:8px; margin-bottom:8px; }
.dp-title{ flex:1; text-align:center; font-weight:700; font-size:14px; background:none; border:0; cursor:pointer; color:var(--ink); padding:6px; border-radius:9px; }
.dp-title:hover{ background:var(--surface-2); }
.dp-nav{ width:32px; height:32px; border-radius:9px; border:1px solid var(--line); background:var(--surface-2); cursor:pointer; display:grid; place-items:center; color:var(--ink-dim); flex:none; }
.dp-nav svg{ width:16px; height:16px; }
.dp-nav:hover{ border-color:var(--copper); color:var(--copper); }
.dp-wd{ display:grid; grid-template-columns:repeat(7,1fr); gap:2px; margin-bottom:4px; }
.dp-wd span{ text-align:center; font-size:11px; color:var(--ink-faint); font-weight:600; }
.dp-grid{ display:grid; grid-template-columns:repeat(7,1fr); gap:3px; }
.dp-grid.dp-ygrid{ grid-template-columns:repeat(3,1fr); }
.dp-cell{ height:34px; }
.dp-day,.dp-yr{ width:100%; height:100%; border:0; background:none; border-radius:9px; cursor:pointer; font:inherit; font-size:13px; color:var(--ink); display:grid; place-items:center; }
.dp-yr{ height:42px; font-size:13.5px; }
.dp-day:hover,.dp-yr:hover{ background:var(--copper-soft); }
.dp-day.today{ box-shadow:inset 0 0 0 1.5px var(--copper-line); font-weight:700; }
.dp-day.on,.dp-yr.on{ background:linear-gradient(135deg,#ef7a45,#cf5020); color:#fff; font-weight:700; }
.dp-pad{ visibility:hidden; pointer-events:none; }
.dp-foot{ display:flex; justify-content:space-between; align-items:center; margin-top:8px; padding-top:8px; border-top:1px solid var(--line); }
.dp-today,.dp-clear{ background:none; border:0; cursor:pointer; font:inherit; font-size:12.5px; font-weight:600; color:var(--copper-2); padding:6px 8px; border-radius:8px; }
.dp-today:hover,.dp-clear:hover{ background:var(--surface-2); }
.dp-clear{ color:var(--rust); }

/* ===== v171: Detail-Spalte als nutzerwählbare Tabs ===== */
.obj-tabbar{ display:flex; gap:6px; overflow-x:auto; -webkit-overflow-scrolling:touch; margin:18px 0 12px; padding-bottom:3px; }
.obj-tabbar::-webkit-scrollbar{ height:5px; } .obj-tabbar::-webkit-scrollbar-thumb{ background:var(--line-strong); border-radius:5px; }
.obj-tab{ flex:0 0 auto; padding:9px 14px; border:1px solid var(--line); border-radius:11px; background:var(--surface-2); color:var(--ink-dim);
  font-size:13px; font-weight:600; cursor:pointer; white-space:nowrap; transition:background .14s,color .14s,border-color .14s; }
.obj-tab:hover{ border-color:var(--copper-line); color:var(--ink); }
.obj-tab.on{ background:linear-gradient(135deg,#ef7a45,#cf5020); border-color:transparent; color:#fff; box-shadow:0 6px 16px -8px rgba(207,80,32,.6); }
.obj-masonry.tabbed{ display:block; columns:auto; column-count:1; }
.obj-masonry.tabbed > .panel{ display:none; }
.obj-masonry.tabbed > .panel.on{ display:block; animation:objpane .22s ease; }
@keyframes objpane{ from{opacity:0; transform:translateY(4px);} to{opacity:1; transform:none;} }
@media (prefers-reduced-motion:reduce){ .obj-masonry.tabbed > .panel.on{ animation:none; } }

/* ===== v172: Mieter-Schnellauswahl ===== */
.mieter-jump{ max-width:460px; margin:2px 0 14px; }

/* ===== v173: Einstellungen als Akkordeon ===== */
.view-settings .panel.set-collapsible > h3{ cursor:pointer; display:flex; align-items:center; gap:8px; user-select:none; }
.view-settings .panel.set-collapsible > h3 .set-chev{ margin-left:auto; color:var(--ink-faint); display:inline-flex; transition:transform .2s ease; }
.view-settings .panel.set-collapsible.collapsed > h3 .set-chev{ transform:rotate(-90deg); }
.view-settings .panel.set-collapsible.collapsed > h3{ margin-bottom:0; }
.view-settings .panel.set-collapsible.collapsed > :not(h3){ display:none !important; }
.view-settings .panel.set-collapsible:hover{ border-color:var(--copper-line); }

/* ===== v176/v182: "Heute zu erledigen" (warm, zur App passend) ===== */
.today-panel .panel-head{ display:flex; align-items:center; gap:9px; }
.today-panel .panel-head .count{ margin-left:auto; font-size:12px; font-weight:700; color:var(--copper-2); background:var(--copper-soft); border-radius:999px; padding:2px 11px; line-height:1.6; }
.today-list{ display:flex; flex-direction:column; gap:8px; margin-top:10px; }
.today-row{ display:flex; align-items:center; gap:13px; width:100%; text-align:left; cursor:pointer; position:relative;
  padding:12px 14px 12px 15px; border:1px solid var(--line); border-radius:13px; background:var(--surface-2);
  transition:transform .14s ease, border-color .14s ease, box-shadow .14s ease; }
.today-row:hover{ border-color:var(--copper-line); transform:translateX(2px); box-shadow:0 3px 12px rgba(120,70,30,.07); }
.today-row.urg{ background:var(--surface); border-color:var(--copper-line); }
.today-row.urg::before{ content:''; position:absolute; left:0; top:11px; bottom:11px; width:3px; border-radius:0 3px 3px 0; background:var(--copper); }
.today-row .ti{ width:36px; height:36px; flex:none; border-radius:10px; display:grid; place-items:center; background:var(--copper-soft); color:var(--copper); }
.today-row.urg .ti{ background:var(--copper); color:#fff; }
.today-row .ti svg{ width:18px; height:18px; }
.today-row .tt{ flex:1; min-width:0; display:flex; flex-direction:column; gap:1px; }
.today-row .tt b{ font-size:13.5px; font-weight:650; color:var(--ink); letter-spacing:-.01em; }
.today-row .tt span{ font-size:12px; color:var(--ink-dim); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.today-row .tgo{ color:var(--ink-faint); display:inline-flex; flex:none; opacity:.55; transform:scaleX(-1); transition:color .14s, opacity .14s; }
.today-row:hover .tgo{ color:var(--copper); opacity:1; }
.today-row .tgo svg{ width:18px; height:18px; }
.today-clear .td-clear{ display:flex; align-items:center; gap:13px; }
.today-clear .td-clear svg{ width:26px; height:26px; color:var(--sage); flex:none; }
.today-clear .td-clear b{ display:block; font-size:14px; color:var(--ink); }
.today-clear .td-clear span{ font-size:12.5px; color:var(--ink-dim); }

/* ===== v178: Glossar / Inline-Hilfe ===== */
.gloss-q{ display:inline-grid; place-items:center; width:18px; height:18px; border-radius:50%; border:1px solid var(--copper-line);
  background:var(--copper-soft); color:var(--copper-2); font-size:11px; font-weight:700; cursor:pointer; vertical-align:middle; margin-left:6px; line-height:1; padding:0; flex:none; }
.gloss-q:hover{ background:var(--copper); color:#fff; border-color:transparent; }
.gloss-list{ display:flex; flex-direction:column; gap:10px; max-height:60vh; overflow:auto; }
.gloss-item{ padding:12px 14px; border:1px solid var(--line); border-radius:12px; background:var(--surface-2); }
.gloss-item b{ display:block; font-size:14px; margin-bottom:3px; color:var(--copper-2); }
.gloss-item span{ font-size:13px; color:var(--ink-dim); line-height:1.55; }

/* ===== v180: Sync-Status-Chip ===== */
.sync-chip{ display:inline-flex; align-items:center; gap:6px; margin-top:6px; font-size:11px; color:var(--ink-faint); white-space:nowrap; }
.sync-chip .sc-dot{ width:7px; height:7px; border-radius:50%; background:var(--ink-faint); flex:none; }
.sync-chip .sc-dot.on{ background:var(--sage,#6f8f6a); box-shadow:0 0 0 3px rgba(111,143,106,.18); }

/* ===== v181: Befehls-Palette ===== */
.cmdpal-bg{ position:fixed; inset:0; z-index:1200; background:rgba(20,16,12,.42); -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px); display:flex; align-items:flex-start; justify-content:center; padding:12vh 16px 16px; }
.cmdpal{ width:min(620px,100%); background:var(--surface,#fff); border:1px solid var(--line); border-radius:16px; box-shadow:0 24px 70px rgba(0,0,0,.32); overflow:hidden; display:flex; flex-direction:column; max-height:70vh; }
.cmdpal-in{ display:flex; align-items:center; gap:10px; padding:14px 16px; border-bottom:1px solid var(--line); }
.cmdpal-in svg{ width:18px; height:18px; color:var(--ink-faint); flex:none; }
.cmdpal-in input{ flex:1; border:none; outline:none; background:transparent; font-size:15px; color:var(--ink); }
.cmdpal-list{ overflow:auto; padding:6px; }
.cmd-row{ display:flex; align-items:center; gap:12px; width:100%; text-align:left; padding:10px 12px; border:none; background:transparent; border-radius:10px; cursor:pointer; }
.cmd-row.sel, .cmd-row:hover{ background:var(--copper-soft,rgba(192,100,31,.08)); }
.cmd-type{ font-size:10px; text-transform:uppercase; letter-spacing:.04em; color:var(--copper-2,#b5703a); flex:none; width:60px; line-height:1.25; }
.cmd-main{ display:flex; flex-direction:column; min-width:0; }
.cmd-main b{ font-size:14px; }
.cmd-main small{ font-size:11.5px; color:var(--ink-dim); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.cmd-empty{ padding:22px; text-align:center; color:var(--ink-faint); font-size:13px; }
.cmdpal-foot{ display:flex; gap:16px; padding:9px 16px; border-top:1px solid var(--line); font-size:11px; color:var(--ink-faint); }
.cmdpal-foot b{ font-family:var(--mono,monospace); color:var(--ink-dim); }
@media(max-width:560px){ .cmdpal-bg{ padding:8vh 10px 10px; } }

/* ===== v183: Dunkelmodus (umschaltbar) – dunkle Variablen + Override der Privat-Hell-Hardcodes ===== */
.app.theme-dark{
  --canvas:#15120e; --canvas-2:#1b1712; --surface:#221d17; --surface-2:#2a241d; --surface-3:#342d24;
  --line:rgba(245,238,228,.10); --line-strong:rgba(245,238,228,.20);
  --ink:#f6f1e9; --ink-dim:#cdc3b4; --ink-faint:#938878;
  --copper:#ec8351; --copper-2:#d56c37; --copper-soft:rgba(236,131,81,.14); --copper-line:rgba(236,131,81,.30);
  --sage:#34b3a0; --sage-soft:rgba(52,179,160,.15); --rust:#d46b52; --rust-soft:rgba(212,107,82,.14);
  --gold:#d2b079; --gold-soft:rgba(210,176,121,.16);
  --glow-copper:rgba(236,131,81,.28); --glow-1:rgba(236,131,81,.10); --glow-2:rgba(67,197,152,.08);
  --shadow:0 1px 0 rgba(255,255,255,.04) inset, 0 18px 44px -28px rgba(0,0,0,.7);
  --shadow-soft:0 10px 26px -18px rgba(0,0,0,.6);
}
.app.theme-dark .kpi, .app.theme-dark .panel, .app.theme-dark .obj-card{
  background:linear-gradient(180deg,var(--surface),var(--canvas-2)) !important;
  border-color:var(--line) !important; box-shadow:var(--shadow-soft) !important; }
.app.theme-dark .insight, .app.theme-dark .ai-chip{
  background:linear-gradient(180deg,var(--surface-2),var(--surface)) !important; box-shadow:var(--shadow-soft) !important; }
.app.theme-dark .head{
  background:radial-gradient(140% 180% at 100% -40%, var(--copper-soft), transparent 55%), linear-gradient(180deg,var(--surface),var(--canvas-2)) !important;
  box-shadow:0 22px 50px -34px rgba(0,0,0,.6), inset 0 1px 0 rgba(255,255,255,.05) !important; }
.app.theme-dark .head{
  background:radial-gradient(120% 150% at 100% -30%, var(--copper-soft), transparent 52%), linear-gradient(180deg,var(--surface),var(--canvas-2)) !important;
  box-shadow:0 22px 50px -36px rgba(0,0,0,.7), inset 0 1px 0 rgba(255,255,255,.04) !important; }
.app.theme-dark .sidebar{ background:linear-gradient(180deg,#1b1712,#141009) !important; border-right:1px solid var(--line) !important; }
.app.theme-dark .topbar, .app.theme-dark .mheader{ background:color-mix(in oklab,#15120e 86%,transparent) !important; }
.app.theme-dark .mtab{ background:color-mix(in oklab,#1b1712 92%,transparent) !important; }
.app.theme-dark .brand .mark, .app.theme-dark .mh-brand .mark, .app.theme-dark .auth-brand .mark{ background:linear-gradient(135deg,#342d24,#221d17) !important; }
.app.theme-dark .main::before{ display:none !important; }
.app.theme-dark .kpi .k-ic, .app.theme-dark .insight .ins-ic, .app.theme-dark .ai-stat .ais-ic{ box-shadow:0 12px 24px -10px rgba(0,0,0,.55) !important; }

/* ============================================================
   v184 — Aktivitäts-Center · Pull-to-refresh · Wisch-Gesten
   ============================================================ */

/* ---------- Glocke (Header & Topbar) ---------- */
.mh-act, .tb-act{ position:relative; display:inline-grid; place-items:center; background:none; border:none; cursor:pointer; color:var(--ink-dim); padding:2px; }
.mh-act svg, .tb-act svg{ width:22px; height:22px; }
.tb-act{ width:38px; height:38px; border-radius:11px; border:1px solid var(--line-strong); color:var(--ink-dim); transition:.18s; }
.tb-act:hover{ color:var(--copper); border-color:var(--copper-line); transform:translateY(-1px); }
.tb-act svg{ width:18px; height:18px; }
.act-bell-badge{ position:absolute; top:-5px; right:-6px; background:var(--copper); color:#fff; font-size:9px; font-weight:700; line-height:1; border-radius:20px; padding:2px 5px; box-shadow:0 2px 6px -1px rgba(0,0,0,.4); }
.act-bell-badge[hidden]{ display:none; }
@media(max-width:900px){ .tb-act{ display:none; } }

/* ---------- Pull-to-refresh ---------- */
.ptr-ind{ position:absolute; top:-46px; left:50%; transform:translate(-50%,0); z-index:50; width:40px; height:40px; border-radius:50%;
  display:grid; place-items:center; background:var(--surface-2); border:1px solid var(--line-strong); box-shadow:var(--shadow-soft);
  opacity:0; pointer-events:none; transition:opacity .16s ease; color:var(--ink-faint); }
.ptr-ind.show{ opacity:1; }
.ptr-ind.armed{ color:var(--copper); border-color:var(--copper-line); }
.ptr-spin{ display:grid; place-items:center; transition:transform .2s ease; }
.ptr-spin svg{ width:20px; height:20px; }
.ptr-ind.armed .ptr-spin{ transform:rotate(180deg); }
.ptr-ind.loading .ptr-spin{ animation:ptrSpin .8s linear infinite; transform:none; }
@keyframes ptrSpin{ to{ transform:rotate(360deg); } }
@media(prefers-reduced-motion:reduce){ .ptr-ind.loading .ptr-spin{ animation:none; } .ptr-spin{ transition:none; } }

/* ---------- Wisch-Geste: Zurück ---------- */
.edge-back-aff{ position:fixed; top:50%; left:0; transform:translateY(-50%) translateX(-44px); z-index:70;
  width:42px; height:42px; border-radius:0 22px 22px 0; display:grid; place-items:center;
  background:var(--surface-2); border:1px solid var(--line-strong); border-left:none; box-shadow:var(--shadow-soft);
  color:var(--ink-faint); opacity:0; pointer-events:none; transition:opacity .14s ease; }
.edge-back-aff.show{ opacity:1; }
.edge-back-aff.armed{ color:var(--copper); border-color:var(--copper-line); background:var(--copper-soft); }
.edge-back-aff svg{ width:20px; height:20px; }

/* ---------- Aktivitäts-Center (Drawer) ---------- */
.act-center{ position:fixed; inset:0; z-index:120; pointer-events:none; }
.act-scrim{ position:absolute; inset:0; background:rgba(10,8,6,.5); backdrop-filter:blur(3px); opacity:0; transition:opacity .25s ease; pointer-events:auto; }
.act-center.open .act-scrim{ opacity:1; }
.act-drawer{ position:absolute; top:0; right:0; height:100%; width:min(420px,92vw); display:flex; flex-direction:column;
  background:linear-gradient(180deg,var(--surface),var(--canvas-2)); border-left:1px solid var(--line-strong);
  box-shadow:-24px 0 60px -28px rgba(0,0,0,.7); transform:translateX(100%); transition:transform .28s cubic-bezier(.22,.61,.36,1); pointer-events:auto; }
.act-center.open .act-drawer{ transform:translateX(0); }
@media(prefers-reduced-motion:reduce){ .act-scrim,.act-drawer{ transition:none; } }
.act-head{ display:flex; align-items:center; gap:10px; padding:18px 20px 14px; border-bottom:1px solid var(--line); }
.act-head h3{ display:flex; align-items:center; gap:9px; margin:0; font-family:var(--serif); font-size:19px; font-weight:600; }
.act-head h3 svg{ width:20px; height:20px; color:var(--copper); }
.act-x{ margin-left:auto; background:none; border:none; color:var(--ink-faint); font-size:18px; cursor:pointer; width:32px; height:32px; border-radius:9px; transition:.15s; }
.act-x:hover{ background:var(--surface-3); color:var(--ink); }
.act-body{ flex:1; overflow-y:auto; -webkit-overflow-scrolling:touch; padding:14px 14px calc(20px + env(safe-area-inset-bottom)); }
.act-grp{ margin-bottom:18px; }
.act-grp-h{ font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--ink-faint); font-weight:700; padding:2px 6px 8px; display:flex; align-items:center; gap:6px; }
.act-grp-h.hot{ color:var(--copper); }
.act-grp-h svg{ width:14px; height:14px; }
.act-row, .act-task{ width:100%; display:flex; align-items:center; gap:11px; text-align:left; background:var(--surface-2); border:1px solid var(--line); border-radius:var(--r-m);
  padding:11px 12px; margin-bottom:7px; cursor:default; color:var(--ink); transition:.15s; }
.act-row.clk, .act-task{ cursor:pointer; }
.act-row.clk:hover, .act-task:hover{ border-color:var(--copper-line); transform:translateY(-1px); box-shadow:var(--shadow-soft); }
.act-ic{ flex:none; width:34px; height:34px; border-radius:11px; display:grid; place-items:center; background:var(--copper-soft); color:var(--copper); }
.act-ic svg{ width:17px; height:17px; }
.act-row.act-pay .act-ic{ background:var(--sage-soft); color:var(--sage); }
.act-row.act-msg .act-ic, .act-row.act-portal .act-ic{ background:var(--gold-soft); color:var(--gold); }
.act-row.act-frist .act-ic{ background:var(--rust-soft); color:var(--rust); }
.act-tx{ flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
.act-tx b{ font-weight:600; font-size:13.5px; line-height:1.3; }
.act-tx span{ font-size:12px; color:var(--ink-faint); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.act-row time{ flex:none; font-size:11px; color:var(--ink-faint); white-space:nowrap; }
.act-go{ flex:none; color:var(--ink-faint); } .act-go svg{ width:16px; height:16px; }
.act-task.urg{ border-color:var(--copper-line); background:var(--copper-soft); }
.act-task.urg .act-ic{ background:var(--copper); color:#fff; }
.act-todo{ margin-bottom:20px; }
.act-todo-clear{ display:flex; align-items:center; gap:11px; padding:14px; border-radius:var(--r-m); background:var(--sage-soft); border:1px solid rgba(159,176,131,.25); color:var(--ink-dim); font-size:13px; }
.act-todo-clear svg{ width:22px; height:22px; color:var(--sage); flex:none; }
.act-empty{ text-align:center; padding:40px 20px; color:var(--ink-faint); }
.act-empty svg{ width:34px; height:34px; opacity:.5; margin-bottom:10px; }
.act-empty p{ font-size:13px; line-height:1.5; margin:0; }

/* ============================================================
   v185 — Heller Modus für JEDE Edition (auch Verwaltung)
   Light-Palette = bisherige Privat-Optik, entkoppelt von der Edition.
   Aktiv über .app.theme-light (Standard: Privat hell, Verwaltung dunkel;
   per Schalter explizit überschreibbar).
   ============================================================ */
.app.theme-light{
  --canvas:#f3ebdf; --canvas-2:#fdf8f1; --surface:#fffdfa; --surface-2:#f7efe3; --surface-3:#ecddca;
  --line:rgba(60,38,20,.14); --line-strong:rgba(60,38,20,.26);
  --ink:#241a10; --ink-dim:#4a3c2c; --ink-faint:#7a6c58;
  --copper:#cf5f2c; --copper-2:#a8431a; --copper-soft:rgba(207,95,44,.12); --copper-line:rgba(207,95,44,.32);
  --sage:#1f8c7c; --sage-soft:rgba(31,140,124,.14); --rust:#c2503a; --rust-soft:rgba(194,80,58,.12);
  --gold:#9c7a37; --gold-soft:rgba(156,122,55,.16);
  --glow-copper:rgba(207,95,44,.28); --glow-1:rgba(207,95,44,.12); --glow-2:rgba(31,143,105,.10);
  --shadow:0 1px 0 rgba(255,255,255,.8) inset, 0 20px 46px -26px rgba(70,52,30,.45);
  --shadow-soft:0 14px 30px -20px rgba(70,52,30,.32);
}
/* Helle Flächen unabhängig von der Edition (greift v.a. für Verwaltung hell) */
.app.theme-light .sidebar{ background:linear-gradient(180deg,#fffdf9,#f3ebdd); border-right:1px solid var(--line); }
.app.theme-light .topbar, .app.theme-light .mheader{ background:color-mix(in oklab,#f6f1e9 88%,transparent); }
.app.theme-light .mtab{ background:color-mix(in oklab,#fffdf9 92%,transparent); }
.app.theme-light .brand .mark, .app.theme-light .mh-brand .mark{ background:linear-gradient(135deg,#f3d9bf,#fff); }
.app.theme-light .nav a.active{ background:var(--copper-soft); }
.app.theme-light .head h1{
  background:linear-gradient(120deg,#2a1f14, var(--copper) 95%);
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; color:transparent; }
/* dezenter heller Hintergrund-Glow statt der dunklen Aurora */
.app.theme-light .main::before{
  background:
    radial-gradient(60% 50% at 12% 0%, rgba(207,95,44,.10), transparent 60%),
    radial-gradient(55% 45% at 100% 8%, rgba(31,143,105,.08), transparent 62%) !important;
  opacity:1 !important; display:block !important; }

/* ============================================================
   v185 — Einheitlicher Tool-Kopf (Topbar-Titel + Mobile-Titel)
   ============================================================ */
.tb-head{ display:flex; flex-direction:column; gap:1px; min-width:0; }
.tb-sub{ font-size:11.5px; color:var(--ink-faint); letter-spacing:.04em; cursor:pointer; line-height:1.2; }
.tb-sub:hover{ color:var(--copper); }
.tb-title{
  font-family:var(--display); font-weight:700; font-size:clamp(19px,2.2vw,25px); line-height:1.06; margin:0; letter-spacing:-.02em;
  white-space:nowrap; overflow:hidden; text-overflow:ellipsis; max-width:42vw;
  background:linear-gradient(118deg,var(--ink) 12%,var(--copper-2) 92%);
  -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; color:transparent;
}
.topbar{ min-height:64px; }
@media(max-width:1180px){ .search{ min-width:150px; } .tb-title{ max-width:34vw; } }
@media(max-width:1000px){ .search{ min-width:120px; } }
/* Mobile-Header-Titel: Serif/Display, kürzt sauber ab */
.mh-title{ display:inline-block; max-width:54vw; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; vertical-align:bottom; font-size:16.5px; line-height:1.15; }
@media(max-width:380px){ .mh-title{ max-width:44vw; font-size:15px; } }

/* ============================================================
   v185 — Durchsuchbares Dropdown (.ssel) + Popover
   ============================================================ */
.ssel{ width:100%; display:flex; align-items:center; gap:10px; background:var(--surface); border:1px solid var(--line-strong);
  border-radius:12px; padding:11px 13px; cursor:pointer; color:var(--ink); font-family:inherit; font-size:14px; font-weight:600; text-align:left; transition:.15s; }
.ssel:hover{ border-color:var(--copper-line); }
.ssel.open{ border-color:var(--copper-line); box-shadow:0 0 0 3px var(--copper-soft); }
.ssel-val{ flex:1; min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.ssel-val.ph{ color:var(--ink-faint); font-weight:500; }
.ssel-chev{ width:18px; height:18px; flex:none; color:var(--ink-faint); transition:transform .2s; }
.ssel.open .ssel-chev{ transform:rotate(180deg); }
.ssel-cap{ font-size:12.5px; color:var(--ink-faint); margin:0 0 9px; line-height:1.45; }
.ssel-pop{ position:fixed; z-index:130; min-width:240px; max-width:calc(100vw - 16px); max-height:min(60vh,420px); display:flex; flex-direction:column;
  background:linear-gradient(180deg,var(--surface),var(--canvas-2)); border:1px solid var(--line-strong); border-radius:14px;
  box-shadow:0 26px 60px -24px rgba(0,0,0,.55); overflow:hidden; animation:sselIn .14s ease; }
@keyframes sselIn{ from{ opacity:0; transform:translateY(-4px); } to{ opacity:1; transform:none; } }
.ssel-search{ display:flex; align-items:center; gap:9px; padding:11px 13px; border-bottom:1px solid var(--line); color:var(--ink-faint); flex:none; }
.ssel-search svg{ width:16px; height:16px; flex:none; }
.ssel-search input{ flex:1; border:0; background:transparent; outline:none; color:var(--ink); font-family:inherit; font-size:14px; }
.ssel-list{ overflow-y:auto; -webkit-overflow-scrolling:touch; padding:6px; }
.ssel-opt{ width:100%; display:flex; align-items:center; gap:10px; background:none; border:0; border-radius:10px; padding:10px 11px; cursor:pointer; text-align:left; color:var(--ink); transition:.12s; }
.ssel-opt:hover{ background:var(--surface-2); }
.so-main{ flex:1; min-width:0; display:flex; flex-direction:column; gap:1px; }
.so-main b{ font-weight:600; font-size:13.5px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.so-main span{ font-size:12px; color:var(--ink-faint); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.so-badge{ flex:none; font-size:10px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--sage); background:var(--sage-soft); border-radius:20px; padding:2px 8px; }
.ssel-empty{ padding:22px 14px; text-align:center; color:var(--ink-faint); font-size:13px; }

/* ============================================================
   v185 — Objekt-Detail-Kopf entschlackt + Landscape-Feinschliff
   ============================================================ */
.od-head{ margin-top:2px; }
.od-head .eyebrow{ margin-bottom:8px; }
.od-head p{ font-size:14px; }
/* Querformat auf flachen Screens: Köpfe & Topbar kompakter */
@media (orientation:landscape) and (max-height:540px){
  .topbar{ min-height:52px; padding-top:10px; padding-bottom:10px; }
  .head{ margin-bottom:16px; }
  .mheader{ padding-top:8px; padding-bottom:8px; }
  .ssel-pop{ max-height:78vh; }
  .content{ padding-top:14px; }
}

/* ============================================================
   v186 — Einstellungen: Darstellungs-Schalter (Hell/Dunkel, Schrift, Sprache)
   ============================================================ */
.set-appear .set-toggles{ display:flex; flex-direction:column; gap:10px; }
.set-toggle{ display:flex; align-items:center; gap:14px; width:100%; text-align:left; cursor:pointer;
  background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:13px 15px; color:var(--ink); font-family:inherit; transition:background .15s,border-color .15s; }
.set-toggle:hover{ border-color:var(--copper-line); background:var(--surface-2); }
.set-toggle .st-main{ flex:1; min-width:0; display:flex; flex-direction:column; gap:2px; }
.set-toggle .st-main b{ font-size:14.5px; font-weight:600; }
.set-toggle .st-main span{ font-size:12.5px; color:var(--ink-faint); line-height:1.4; }
.st-switch{ flex:none; width:46px; height:27px; border-radius:20px; background:var(--surface-3); border:1px solid var(--line-strong); position:relative; transition:background .2s,border-color .2s; }
.st-switch i{ position:absolute; top:2px; left:2px; width:21px; height:21px; border-radius:50%; background:#fff; box-shadow:0 2px 6px rgba(0,0,0,.3); transition:left .2s cubic-bezier(.3,1.3,.5,1); }
.set-toggle.on .st-switch{ background:linear-gradient(180deg,var(--copper),var(--copper-2)); border-color:transparent; }
.set-toggle.on .st-switch i{ left:21px; }
@media(max-width:900px){ .set-toggle{ min-height:56px; } }

/* ============================================================
   v187 — Überschriften ohne "Kasten": solide Farbe, kein
   background-clip:text + filter (das brach den Clip und füllte
   den Textkasten, v.a. im Dunkelmodus). Marke (.brand b) bleibt.
   ============================================================ */
.head h1, .auth-h, .block-screen h1{
  background:none !important; background-image:none !important; background-size:auto !important;
  -webkit-background-clip:border-box !important; background-clip:border-box !important;
  -webkit-text-fill-color:currentColor !important; color:var(--ink) !important;
  filter:none !important; animation:none !important; text-shadow:none !important;
}

/* ============================================================
   v187 — Mieter-Portal: Eingänge als übersichtliche Karten
   mit direktem Sprung in die Mieterakte
   ============================================================ */
.pinbox{ display:flex; flex-direction:column; gap:10px; }
.pin{ display:flex; gap:13px; padding:14px; border:1px solid var(--line); border-radius:16px;
  background:linear-gradient(180deg,var(--surface),var(--canvas-2)); box-shadow:var(--shadow-soft); transition:border-color .15s,transform .15s; }
.pin:hover{ border-color:var(--copper-line); }
.pin.urgent{ border-color:var(--rust); box-shadow:0 0 0 1px var(--rust-soft), var(--shadow-soft); }
.pin.done{ opacity:.72; }
.pin-ic{ width:42px; height:42px; flex:none; border-radius:12px; display:grid; place-items:center; background:var(--surface-2); border:1px solid var(--line); color:var(--copper); }
.pin-ic.warn{ color:var(--rust); background:var(--rust-soft); border-color:transparent; }
.pin-ic.info{ color:var(--copper); background:var(--copper-soft); border-color:transparent; }
.pin-ic svg{ width:20px; height:20px; }
.pin-body{ flex:1; min-width:0; display:flex; flex-direction:column; gap:6px; }
.pin-head{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.pin-head b{ font-size:14.5px; font-weight:600; }
.pin-topic{ font-size:12px; color:var(--ink-faint); }
.pin-when{ margin-left:auto; font-size:11.5px; color:var(--ink-faint); white-space:nowrap; }
.pin-akte{ display:inline-flex; align-items:center; gap:7px; align-self:flex-start; max-width:100%; cursor:pointer;
  background:var(--copper-soft); border:1px solid var(--copper-line); color:var(--copper-2); border-radius:10px; padding:5px 10px; font-family:inherit; font-size:12.5px; font-weight:600; transition:.15s; }
.pin-akte:hover{ background:linear-gradient(180deg,var(--copper),var(--copper-2)); color:#241405; border-color:transparent; }
.pin-akte svg{ width:14px; height:14px; flex:none; }
.pin-akte span{ overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.pin-akte em{ display:inline-flex; font-style:normal; opacity:.7; }
.pin-akte em svg{ width:13px; height:13px; }
.pin-akte.none{ background:var(--surface-2); border-color:var(--line); color:var(--ink-faint); cursor:default; }
.pin-desc{ margin:0; font-size:13px; color:var(--ink-dim); line-height:1.45; overflow-wrap:anywhere; }
.pin-tags{ display:flex; gap:8px; flex-wrap:wrap; }
.pin-tag{ display:inline-flex; align-items:center; gap:5px; font-size:11px; color:var(--ink-faint); background:var(--surface-2); border:1px solid var(--line); border-radius:20px; padding:2px 9px; }
.pin-tag.ok{ color:var(--sage); background:var(--sage-soft); border-color:transparent; }
.pin-tag svg{ width:12px; height:12px; }
.pin-side{ flex:none; display:flex; flex-direction:column; align-items:flex-end; gap:9px; }
.pin-act{ display:flex; flex-direction:column; gap:6px; align-items:stretch; }
.pin-act .btn.sm{ justify-content:flex-start; white-space:nowrap; }
.pill.sm{ font-size:10px; padding:2px 8px; }
@media(max-width:760px){
  .pin{ flex-wrap:wrap; }
  .pin-side{ flex-direction:row; align-items:center; width:100%; flex-wrap:wrap; gap:8px; margin-top:2px; }
  .pin-act{ flex-direction:row; flex-wrap:wrap; flex:1; justify-content:flex-end; }
}

/* ============================================================
   v188 — Support: Consent-Banner + Kontakt-Zeilen
   ============================================================ */
.sup-banner{ position:fixed; left:50%; transform:translateX(-50%); bottom:calc(16px + env(safe-area-inset-bottom,0px)); z-index:120;
  display:flex; align-items:center; gap:12px; max-width:calc(100vw - 24px);
  background:linear-gradient(180deg,var(--surface),var(--canvas-2)); border:1px solid var(--copper-line); border-radius:16px;
  padding:11px 14px; box-shadow:0 18px 50px -18px rgba(0,0,0,.55); }
.sup-banner .sb-dot{ width:10px; height:10px; border-radius:50%; background:var(--rust); box-shadow:0 0 0 4px var(--rust-soft); animation:supPulse 1.6s ease-in-out infinite; flex:none; }
@keyframes supPulse{ 0%,100%{opacity:1} 50%{opacity:.4} }
.sup-banner .sb-tx{ display:flex; flex-direction:column; min-width:0; }
.sup-banner .sb-tx b{ font-size:13px; }
.sup-banner .sb-tx span{ font-size:11.5px; color:var(--ink-faint); }
.sup-banner .sb-end{ flex:none; border:1px solid var(--line-strong); background:var(--surface-2); color:var(--ink); border-radius:10px; padding:7px 12px; font-size:12.5px; font-weight:600; cursor:pointer; }
.sup-banner .sb-end:hover{ border-color:var(--copper-line); color:var(--copper); }
.set-toggle .st-go{ flex:none; color:var(--ink-faint); display:inline-flex; align-items:center; }
.set-toggle .st-go svg{ width:18px; height:18px; }
@media(max-width:900px){ .sup-banner{ bottom:calc(86px + env(safe-area-inset-bottom,0px)); } }

/* ============================================================
   v192 — Intelligence im Assistenten-Look · Floating-Bot · Quick-Action oben
   ============================================================ */
.intel{ padding-top:4px; }
.intel .bot-hero{ padding:6px 4px 14px; }
.intel-stats{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin:2px 0 16px; }
.intel-stats .ai-stat{ background:linear-gradient(180deg,var(--surface),var(--surface-2)); border:1px solid var(--line); border-radius:16px; padding:14px 15px; display:flex; align-items:center; gap:12px; box-shadow:0 16px 40px -28px rgba(0,0,0,.6); }
.intel-stats .ai-stat .ais-ic{ width:40px; height:40px; flex:none; border-radius:12px; display:grid; place-items:center; background:var(--copper-soft); color:var(--copper); }
.intel-stats .ai-stat .ais-ic svg{ width:20px; height:20px; }
.intel-stats .ais-main{ min-width:0; }
.intel-stats .ais-v{ font-size:21px; font-weight:800; letter-spacing:-.02em; color:var(--ink); font-family:var(--serif); }
.intel-stats .ais-l{ font-size:11.5px; color:var(--ink-dim); }
.intel-stats .ais-sub{ margin-left:auto; font-size:10px; font-weight:700; color:var(--ink-faint); text-transform:uppercase; letter-spacing:.05em; text-align:right; }
.intel-stats .st-high .ais-ic{ background:var(--rust-soft); color:var(--rust); }
.intel-stats .st-pot .ais-ic{ background:var(--sage-soft); color:var(--sage); }
.intel-stats .st-risk .ais-ic{ background:var(--gold-soft); color:var(--gold); }
.intel-focus{ display:flex; align-items:center; gap:14px; padding:16px 18px; border-radius:18px; margin-bottom:18px;
  background:radial-gradient(120% 160% at 0% 0%, var(--copper-soft), transparent 60%), linear-gradient(180deg,var(--surface),var(--surface-2));
  border:1px solid var(--copper-line); box-shadow:0 22px 60px -30px var(--glow-copper,rgba(224,106,56,.5)); }
.intel-focus .if-orb{ width:46px; height:46px; flex:none; border-radius:14px; display:grid; place-items:center; color:#fff;
  background:linear-gradient(150deg,var(--copper-2),var(--copper)); box-shadow:0 8px 22px -8px var(--glow-copper,rgba(224,106,56,.7)); }
.intel-focus .if-orb svg{ width:22px; height:22px; }
.intel-focus .if-tx{ flex:1; min-width:0; }
.intel-focus .if-h{ font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; color:var(--copper); font-weight:700; }
.intel-focus .if-tx b{ display:block; font-size:15px; color:var(--ink); margin:2px 0; }
.intel-focus .if-tx span{ font-size:12.5px; color:var(--ink-dim); line-height:1.5; }
.intel-focus .if-act{ display:flex; gap:8px; flex:none; }
.intel-sec-h{ display:flex; align-items:center; gap:9px; font-size:12.5px; font-weight:700; color:var(--ink); letter-spacing:.02em; margin:20px 2px 12px; }
.intel-sec-h svg{ width:16px; height:16px; color:var(--copper); }
.intel-sec-h em{ font-style:normal; font-size:11px; font-weight:700; color:var(--copper); background:var(--copper-soft); border-radius:20px; padding:1px 9px; }
.intel-sec-h .intel-live{ margin-left:auto; font-style:normal; font-size:11px; font-weight:700; color:var(--sage); display:inline-flex; align-items:center; gap:4px; }
.intel-sec-h .intel-live svg{ width:13px; height:13px; color:var(--sage); }
.intel-quick{ padding:0 2px 2px; }
.intel-chat{ border:1px solid var(--line); border-radius:20px; padding:14px; background:linear-gradient(180deg,var(--surface),var(--surface-2)); box-shadow:0 20px 50px -30px rgba(0,0,0,.55); }
.intel-chat .ai-log{ min-height:120px; max-height:46vh; overflow:auto; display:flex; flex-direction:column; gap:12px; }
.intel-chat .ai-empty{ display:flex; flex-direction:column; align-items:center; text-align:center; gap:10px; color:var(--ink-faint); padding:22px 10px; }
.intel-chat .ai-empty svg{ width:30px; height:30px; color:var(--copper); opacity:.85; }
.intel-chat .ai-empty p{ font-size:12.5px; max-width:46ch; line-height:1.55; margin:0; }
.intel-chat .bot-input{ margin-top:12px; }
@media(max-width:900px){ .intel-stats{ grid-template-columns:1fr; } .intel-focus{ flex-wrap:wrap; } .intel-focus .if-act{ width:100%; } }

/* Floating Bot-Launcher — animiertes Highlight (unten rechts) */
.botfab{ position:fixed; right:20px; bottom:calc(96px + env(safe-area-inset-bottom,0px)); z-index:38; width:62px; height:62px; border-radius:50%; border:none; cursor:pointer; display:grid; place-items:center; isolation:isolate;
  background:radial-gradient(120% 120% at 30% 25%, #ffce9e, var(--copper) 45%, var(--copper-2) 100%); color:#fff;
  box-shadow:0 16px 40px -10px var(--glow-copper,rgba(224,106,56,.75)), inset 0 2px 0 rgba(255,255,255,.25), inset 0 -6px 14px rgba(120,50,10,.35);
  animation:botfabHalo 2.8s ease-out infinite, botfabBob 4.6s ease-in-out infinite; transition:transform .18s ease; }
.botfab:hover{ transform:scale(1.08); } .botfab:active{ transform:scale(.94); }
.botfab .botfab-ring{ position:absolute; inset:-4px; border-radius:50%; padding:3px; pointer-events:none;
  background:conic-gradient(from 0deg, transparent, var(--copper-2), #ffe0bd, var(--copper), transparent 75%);
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude;
  animation:botfabSpin 6s linear infinite; }
.botfab .botfab-orb{ display:grid; place-items:center; z-index:1; animation:botFloat 3.2s ease-in-out infinite, botfabWiggle 7s ease-in-out infinite; }
.botfab .botfab-orb svg{ width:27px; height:27px; filter:drop-shadow(0 1px 5px rgba(0,0,0,.4)); }
.botfab .botfab-dot{ position:absolute; right:8px; bottom:8px; width:11px; height:11px; border-radius:50%; background:var(--sage); border:2px solid var(--canvas); z-index:2; animation:botfabDot 2.2s ease-out infinite; }
.botfab::after{ content:"Wie kann ich helfen?"; position:absolute; right:74px; top:50%; transform:translateY(-50%) translateX(6px); white-space:nowrap;
  background:var(--surface); color:var(--ink); border:1px solid var(--copper-line); padding:8px 13px; border-radius:13px; font-size:12.5px; font-weight:600;
  box-shadow:0 12px 32px -12px rgba(0,0,0,.6); opacity:0; pointer-events:none; transition:opacity .2s ease, transform .2s ease; }
.botfab:hover::after{ opacity:1; transform:translateY(-50%) translateX(0); }
@keyframes botfabSpin{ to{ transform:rotate(360deg); } }
@keyframes botfabBob{ 0%,100%{ margin-bottom:0; } 50%{ margin-bottom:7px; } }
@keyframes botfabHalo{
  0%{ box-shadow:0 16px 40px -10px var(--glow-copper,rgba(224,106,56,.75)), inset 0 2px 0 rgba(255,255,255,.25), 0 0 0 0 rgba(236,131,81,.5); }
  70%{ box-shadow:0 16px 40px -10px var(--glow-copper,rgba(224,106,56,.75)), inset 0 2px 0 rgba(255,255,255,.25), 0 0 0 18px rgba(236,131,81,0); }
  100%{ box-shadow:0 16px 40px -10px var(--glow-copper,rgba(224,106,56,.75)), inset 0 2px 0 rgba(255,255,255,.25), 0 0 0 0 rgba(236,131,81,0); } }
@keyframes botfabWiggle{ 0%,86%,100%{ transform:rotate(0); } 90%{ transform:rotate(-11deg); } 94%{ transform:rotate(9deg); } 98%{ transform:rotate(-4deg); } }
@keyframes botfabDot{ 0%{ box-shadow:0 0 0 0 rgba(52,179,160,.55); } 70%,100%{ box-shadow:0 0 0 7px rgba(52,179,160,0); } }
.botdock-orb{ animation:botFloat 3.2s ease-in-out infinite; }
@media(max-width:900px){ .botfab{ right:14px; width:52px; height:52px; bottom:calc(132px + env(safe-area-inset-bottom,0px)); } .botfab::after{ display:none; } }
@media(prefers-reduced-motion:reduce){ .botfab,.botfab .botfab-ring,.botfab .botfab-orb,.botfab .botfab-dot,.botdock-orb{ animation:none !important; } }

/* Bot-Dock (Chat-Popup) */
.botdock{ position:fixed; right:20px; bottom:calc(86px + env(safe-area-inset-bottom,0px)); z-index:130; width:min(400px, calc(100vw - 32px)); height:min(620px, calc(100vh - 130px));
  display:flex; flex-direction:column; border-radius:20px; overflow:hidden; background:var(--canvas); border:1px solid var(--copper-line);
  box-shadow:0 30px 80px -20px rgba(0,0,0,.7); transform:translateY(16px) scale(.98); opacity:0; transition:transform .18s ease, opacity .18s ease; transform-origin:bottom right; }
.botdock.open{ transform:translateY(0) scale(1); opacity:1; }
.botdock-bar{ display:flex; align-items:center; gap:10px; padding:11px 14px; border-bottom:1px solid var(--line); background:linear-gradient(180deg,var(--surface),var(--surface-2)); }
.botdock-bar b{ font-size:13.5px; } .botdock-bar .bd-sp{ flex:1; }
.botdock-orb{ width:30px; height:30px; flex:none; border-radius:50%; display:grid; place-items:center; color:#fff; background:linear-gradient(150deg,var(--copper-2),var(--copper)); }
.botdock-orb svg{ width:16px; height:16px; }
.botdock-expand,.botdock-x{ flex:none; cursor:pointer; border:0; background:transparent; color:var(--ink-dim); border-radius:9px; width:32px; height:32px; display:grid; place-items:center; }
.botdock-expand svg{ width:16px; height:16px; } .botdock-x{ font-size:22px; line-height:1; }
.botdock-expand:hover,.botdock-x:hover{ background:var(--surface-3); color:var(--ink); }
.botdock-body{ flex:1; min-height:0; overflow:auto; padding:12px 14px 14px; display:flex; flex-direction:column; }
.botdock-body .bot-wrap{ flex:1; min-height:100%; }
.botdock-body .bot-hero{ display:none; }
.botdock-body .bot-aurora{ height:170px; }
@media(max-width:900px){ .botdock{ right:8px; left:8px; width:auto; bottom:calc(78px + env(safe-area-inset-bottom,0px)); height:min(72vh, calc(100vh - 110px)); } }

/* ============================================================
   v195 — Chatbot: Eingabe fixiert, Antworten edler, Logo ohne grünen Ring
   ============================================================ */
/* Dock: Verlauf scrollt, Eingabefeld bleibt unten fixiert (scrollt nicht mehr weg) */
.botdock-body{ overflow:hidden; }
.botdock-body .bot-wrap{ flex:1; min-height:0; display:flex; flex-direction:column; }
.botdock-body .bot-log{ flex:1; min-height:0; overflow-y:auto; padding-right:4px; }
.botdock-body .bot-suggest, .botdock-body .bot-input, .botdock-body .bot-disc{ flex:none; }

/* Bot-Logo im Dock-Kopf = wie der geschlossene Launcher (Kupfer, KEIN grüner Ring) */
.botdock-orb{ position:relative; width:34px; height:34px; border-radius:50%; display:grid; place-items:center; color:#fff;
  background:radial-gradient(120% 120% at 30% 25%, #ffce9e, var(--copper) 45%, var(--copper-2) 100%);
  box-shadow:0 6px 16px -6px var(--glow-copper,rgba(224,106,56,.7)), inset 0 1px 0 rgba(255,255,255,.25); animation:botFloat 3.2s ease-in-out infinite; }
.botdock-orb::before{ content:''; position:absolute; inset:-3px; border-radius:50%; padding:2px; pointer-events:none;
  background:conic-gradient(from 0deg, transparent, var(--copper-2), #ffe0bd, var(--copper), transparent 75%);
  -webkit-mask:linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0); -webkit-mask-composite:xor; mask-composite:exclude; animation:botfabSpin 6s linear infinite; }
.botdock-orb svg{ position:relative; z-index:1; width:17px; height:17px; }

/* Nachrichten-Avatar ebenfalls Kupfer (grünen Ring entfernt) */
.bot-ava{ background:radial-gradient(120% 120% at 30% 25%, #ffce9e, var(--copper) 48%, var(--copper-2) 100%) !important; }

/* Antworten deutlich edler */
.bot-log{ gap:16px; }
.bot-bub{ max-width:82%; padding:14px 17px; border-radius:20px; font-size:14px; line-height:1.62; }
.bot-msg.bot .bot-bub{ background:linear-gradient(180deg, color-mix(in oklab,var(--surface) 94%, transparent), color-mix(in oklab,var(--canvas-2) 96%, transparent));
  border:1px solid color-mix(in oklab,var(--copper) 16%, var(--line)); border-bottom-left-radius:7px; color:var(--ink);
  box-shadow:0 1px 0 rgba(255,255,255,.05) inset, 0 18px 44px -26px rgba(0,0,0,.7); }
.bot-msg.user .bot-bub{ background:linear-gradient(135deg, color-mix(in oklab,var(--copper) 92%, #fff), var(--copper-2)); color:#fff; border-bottom-right-radius:7px;
  box-shadow:0 1px 0 rgba(255,255,255,.25) inset, 0 16px 38px -16px var(--glow-copper,rgba(224,106,56,.7)); }
.bot-bub h4{ margin:11px 0 5px; font-size:13.5px; font-weight:700; color:var(--copper); }
.bot-bub h4:first-child{ margin-top:0; }
.bot-bub p{ margin:7px 0; } .bot-bub p:first-child{ margin-top:0; } .bot-bub p:last-child{ margin-bottom:0; }
.bot-bub ul{ margin:8px 0; padding-left:2px; list-style:none; display:flex; flex-direction:column; gap:6px; }
.bot-bub li{ position:relative; padding-left:18px; }
.bot-bub li::before{ content:''; position:absolute; left:3px; top:8px; width:6px; height:6px; border-radius:50%; background:var(--copper); }
.bot-msg.user .bot-bub li::before{ background:rgba(255,255,255,.85); }
/* Typing-Punkte im Kupferton (kein Grün) */
.bot-dots i{ background:var(--copper) !important; } .bot-dots i:nth-child(2){ background:var(--copper-2) !important; } .bot-dots i:nth-child(3){ background:#ffce9e !important; }

/* v197 — Tabellen in KI-Antworten sauber rendern */
.bot-tblwrap{ overflow-x:auto; margin:9px 0; border-radius:13px; border:1px solid color-mix(in oklab,var(--copper) 16%, var(--line)); -webkit-overflow-scrolling:touch; }
.bot-tbl{ width:100%; border-collapse:collapse; font-size:13px; line-height:1.4; }
.bot-tbl th{ text-align:left; font-weight:700; color:var(--copper); padding:9px 11px; border-bottom:1px solid var(--copper-line,color-mix(in oklab,var(--copper) 30%, transparent)); white-space:nowrap; background:color-mix(in oklab,var(--copper) 8%, transparent); }
.bot-tbl td{ padding:8px 11px; border-bottom:1px solid color-mix(in oklab,var(--line) 65%, transparent); vertical-align:top; }
.bot-tbl tbody tr:last-child td{ border-bottom:none; }
.bot-tbl tbody tr:nth-child(even){ background:color-mix(in oklab,var(--copper) 4%, transparent); }
.bot-msg.user .bot-bub .bot-tbl th{ color:#fff; background:rgba(255,255,255,.14); }
.bot-msg.user .bot-bub .bot-tblwrap{ border-color:rgba(255,255,255,.25); }
/* Verlauf beginnt oben (kein Bottom-Drift bei kurzem Inhalt) */
.botdock-body .bot-log{ justify-content:flex-start; }

/* ---- v207: Accordion-Listenzeile (kompakt, aufklappbar) ---- */
.acc-list{ display:flex; flex-direction:column; gap:8px; }
.acc{ border:1px solid var(--line); border-radius:14px; background:var(--surface); overflow:hidden; }
.acc-head{ display:flex; align-items:center; gap:10px; width:100%; text-align:left; background:none; border:0; padding:13px 14px; cursor:pointer; color:inherit; font:inherit; min-height:54px; }
.acc-head:hover{ background:color-mix(in oklab,var(--copper) 6%,transparent); }
.acc-tt{ flex:1; min-width:0; }
.acc-tt b{ display:block; font-size:14.5px; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.acc-tt span{ display:block; font-size:12px; color:var(--ink-dim); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; margin-top:1px; }
.acc-badges{ display:flex; align-items:center; gap:6px; flex:none; max-width:44%; }
.acc-badges .pill{ white-space:nowrap; }
.acc-chev{ flex:none; color:var(--ink-faint); transition:transform .22s ease; }
.acc.open .acc-chev{ transform:rotate(90deg); color:var(--copper-2); }
.acc.open > .acc-head{ background:color-mix(in oklab,var(--copper) 5%,transparent); }
.acc-body{ display:none; padding:2px 14px 14px; }
.acc.open .acc-body{ display:block; animation:accIn .2s ease both; }
@keyframes accIn{ from{ opacity:0; transform:translateY(-4px); } to{ opacity:1; transform:none; } }
.acc-meta{ display:flex; flex-direction:column; gap:4px; font-size:12.5px; color:var(--ink-dim); margin-bottom:4px; }
.acc-meta .pill{ align-self:flex-start; }
.acc-actions{ display:flex; flex-wrap:wrap; gap:8px; margin-top:10px; }
.acc-actions .btn{ flex:1 1 auto; justify-content:center; }
.acc-body .pkg-row{ display:flex; flex-wrap:wrap; gap:8px; }

/* ---- v209: Objekte Karten/Liste-Umschalter ---- */
.seg-toggle{ display:inline-flex; border:1px solid var(--line); border-radius:10px; overflow:hidden; }
.seg-toggle button{ display:inline-flex; align-items:center; gap:6px; background:none; border:0; padding:7px 12px; font-size:12.5px; color:var(--ink-dim); cursor:pointer; }
.seg-toggle button svg{ width:16px; height:16px; }
.seg-toggle button.on{ background:var(--copper-soft); color:var(--copper-2); font-weight:600; }
.seg-toggle button + button{ border-left:1px solid var(--line); }
.obj-list{ display:flex; flex-direction:column; gap:8px; }
.obj-row{ display:flex; align-items:stretch; background:var(--surface); border:1px solid var(--line); border-radius:14px; overflow:hidden; min-height:58px; }
.obj-row:hover{ border-color:var(--copper-line); }
.or-open{ display:flex; align-items:center; gap:12px; flex:1; min-width:0; text-align:left; background:none; border:0; padding:11px 12px 11px 14px; cursor:pointer; color:inherit; font:inherit; }
.or-open:hover{ background:color-mix(in oklab,var(--copper) 6%,transparent); }
.or-quick{ flex:none; width:48px; border:0; border-left:1px solid var(--line); background:none; color:var(--copper-2); cursor:pointer; display:grid; place-items:center; }
.or-quick svg{ width:20px; height:20px; }
.or-quick:hover{ background:var(--copper-soft); }
.obj-row.is-arch{ opacity:.6; }
.or-ic{ flex:none; width:34px; height:34px; border-radius:9px; display:grid; place-items:center; background:var(--copper-soft); color:var(--copper-2); }
.or-ic svg{ width:18px; height:18px; }
.or-main{ flex:1; min-width:0; }
.or-main b{ display:block; font-size:14.5px; font-weight:600; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.or-main > span{ display:flex; align-items:center; gap:4px; font-size:12px; color:var(--ink-dim); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.or-main > span svg{ width:13px; height:13px; flex:none; }
.or-stats{ display:flex; align-items:center; gap:10px; flex:none; }
.or-units{ font-size:12px; color:var(--ink-dim); white-space:nowrap; }
.or-rent{ font-size:14px; white-space:nowrap; }
.obj-row .acc-chev{ flex:none; color:var(--ink-faint); }
@media(max-width:560px){ .or-units{ display:none; } .or-stats{ gap:7px; } .seg-toggle button span{ display:none; } .seg-toggle button{ padding:7px 11px; } }

/* ---- v210: KPI-Label darf umbrechen statt überlaufen ---- */
.kpi .k-lbl{ overflow-wrap:anywhere; word-break:break-word; white-space:normal; }
@media(max-width:560px){ .kpi .k-lbl{ letter-spacing:.03em; font-size:11.5px; } }

/* ---- v211: E-Rechnung-Beleg ohne Bild (Platzhalter) ---- */
.beleg-prev-doc{ display:flex; align-items:center; gap:10px; justify-content:center; padding:18px; border:1px dashed var(--line); border-radius:12px; color:var(--ink-dim); background:var(--canvas-2); }
.beleg-prev-doc svg{ width:22px; height:22px; }

/* ---- v211: Rechtliche Zustimmung (Consent-Gate) ---- */
.consent-wrap{ min-height:100vh; min-height:100dvh; display:flex; align-items:center; justify-content:center; padding:18px; background:var(--canvas); }
.consent-card{ width:100%; max-width:620px; background:var(--surface); border:1px solid var(--line); border-radius:18px; padding:22px; box-shadow:var(--shadow-soft); display:flex; flex-direction:column; gap:14px; }
.consent-head h1{ font-family:var(--serif); font-size:24px; line-height:1.12; margin:4px 0 6px; }
.consent-head p{ color:var(--ink-dim); font-size:13.5px; margin:0; }
.consent-body{ max-height:46vh; overflow:auto; -webkit-overflow-scrolling:touch; border:1px solid var(--line); border-radius:12px; padding:14px 16px; background:var(--canvas-2); font-size:13.5px; line-height:1.5; }
.consent-body p{ margin:0 0 10px; } .consent-body p:last-child{ margin-bottom:0; }
.consent-check{ display:flex; gap:10px; align-items:flex-start; font-size:14px; cursor:pointer; }
.consent-check input{ width:20px; height:20px; margin-top:1px; flex:none; }
.consent-sign label{ display:block; font-size:12px; color:var(--ink-dim); margin-bottom:4px; }
.consent-sign input{ width:100%; }
.btn.block{ width:100%; justify-content:center; }
.consent-foot{ text-align:center; color:var(--ink-faint); font-size:11.5px; margin:0; }
@media(max-width:560px){ .consent-card{ padding:18px 15px; border-radius:14px; } .consent-body{ max-height:40vh; } .consent-head h1{ font-size:21px; } }

/* ---- v212: Score-Ringe prominenter (größer, dickerer Bogen, statusfarbener Glow) ---- */
.glance-ring{ width:72px; height:72px; filter:drop-shadow(0 3px 12px color-mix(in oklab, var(--c) 36%, transparent)); }
.glance-ring::before{ inset:9px; }
.glance-ring span{ font-size:17px; }
.score-ring{ width:86px; height:86px; filter:drop-shadow(0 4px 14px color-mix(in oklab, var(--c) 38%, transparent)); }
.score-ring::before{ inset:10px; }
.score-ring span{ font-size:19px; }
.hh-ring{ width:120px; height:120px; filter:drop-shadow(0 8px 18px rgba(0,0,0,.35)) drop-shadow(0 0 18px color-mix(in oklab, var(--c) 42%, transparent)); }
.hh-ring::before{ inset:14px; }
.hh-ring span{ font-size:27px; }
.hhp-bar{ height:9px; } .hhp-bar i{ box-shadow:0 0 10px -2px color-mix(in oklab, currentColor 50%, transparent); }
@media(max-width:470px){
  .glance-ring{ width:66px; height:66px; } .glance-ring::before{ inset:8px; } .glance-ring span{ font-size:16px; }
  .hh-ring{ width:104px; height:104px; } .hh-ring::before{ inset:12px; } .hh-ring span{ font-size:23px; }
}

/* ---- v213: Übergabeprotokoll ---- */
.ueb-rooms{ display:flex; flex-direction:column; gap:8px; }
.ueb-room{ display:grid; grid-template-columns:1fr 130px; gap:8px 10px; align-items:center; }
.ueb-room b{ grid-column:1; font-size:13.5px; font-weight:600; }
.ueb-room select{ grid-column:2; }
.ueb-room input{ grid-column:1 / -1; }
.ueb-fotos{ display:flex; flex-wrap:wrap; gap:8px; align-items:center; }
.ueb-foto{ position:relative; }
.ueb-foto img{ width:64px; height:64px; object-fit:cover; border-radius:9px; border:1px solid var(--line); }
.ueb-foto-x{ position:absolute; top:-7px; right:-7px; width:22px; height:22px; border-radius:50%; border:0; background:var(--rust); color:#fff; font-size:15px; line-height:20px; cursor:pointer; padding:0; }
.ueb-foto-add{ width:auto; }
.ueb-sigs{ display:flex; gap:14px; margin-top:10px; flex-wrap:wrap; }
.ueb-sig{ text-align:center; }
.ueb-sig img{ max-height:54px; border:1px solid var(--line); border-radius:8px; background:#fff; padding:4px; }
.ueb-sig small{ display:block; color:var(--ink-dim); font-size:11.5px; margin-top:3px; }
@media(max-width:560px){ .ueb-room{ grid-template-columns:1fr 104px; } }

/* ---- v214: Mobile-Kopfzeile aufgeräumt + Sidebar-Schließen (X) ---- */
.mheader{ gap:8px; }
.mh-brand{ flex:1 1 auto; min-width:0; overflow:hidden; }
.mh-back.nope{ visibility:hidden; pointer-events:none; }   /* Platz reservieren -> kein Verrutschen */
.mh-right{ flex:none; gap:8px; }
.mh-360{ display:none; }                 /* dekoratives Logo raus -> Lupe passt */
.mh-act[data-fab]{ display:none; }       /* redundant: Bottom-Nav „Neu" öffnet die Auswahl */
.mh-conn{ width:8px; height:8px; opacity:.85; }
.side-close{ display:none; }
.sidebar{ position:relative; }
.nav-open .side-close{ display:inline-flex; align-items:center; justify-content:center; position:absolute; top:12px; right:12px; z-index:3; width:40px; height:40px; border-radius:12px; border:1px solid var(--line); background:var(--surface); color:var(--ink); cursor:pointer; box-shadow:0 6px 18px -8px rgba(0,0,0,.45); }
.nav-open .side-close:active{ background:var(--copper-soft); transform:scale(.95); }
.nav-open .sidebar .brand{ padding-right:48px; }   /* X überlappt nicht den Markennamen */

/* ---- v214: Score-Ringe modern (SVG, runde Enden, weicher Track) ---- */
.glance-ring,.score-ring,.hh-ring,.oc-ring{ background:none !important; display:grid; place-items:center; position:relative; }
.glance-ring::before,.score-ring::before,.hh-ring::before,.oc-ring::before{ content:none !important; display:none !important; }
.ring-svg{ position:absolute; inset:0; width:100%; height:100%; overflow:visible; }
.ring-track{ stroke:var(--line-strong); opacity:.4; }
.ring-prog{ transition:stroke-dashoffset .8s cubic-bezier(.2,.8,.2,1); }
.glance-ring span,.score-ring span,.hh-ring span,.oc-ring span{ position:relative; z-index:1; }
.oc-ring{ filter:drop-shadow(0 2px 7px color-mix(in oklab, var(--c) 26%, transparent)); }

/* ---- v215: Schnellauswahl sauber (2-Spalten-Karten, einheitliche Kupfer-Icons) ---- */
.fab-sheet{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.fab-sheet .fab-act{ flex-direction:column; align-items:flex-start; gap:10px; min-height:112px; padding:14px; border-radius:16px; background:var(--surface-2); }
.fab-sheet .fab-act:hover{ transform:translateY(-2px); border-color:var(--copper-line); background:var(--surface-3); }
.fab-sheet .fab-act .fa-ic{ width:42px; height:42px; border-radius:13px; background:var(--copper-soft) !important; color:var(--copper-2) !important; }
.fab-sheet .fab-act .fa-tx b{ font-size:14px; }
.fab-sheet .fab-act .fa-tx span{ font-size:11.5px; line-height:1.3; }
@media(max-width:380px){ .fab-sheet{ grid-template-columns:1fr; } .fab-sheet .fab-act{ flex-direction:row; align-items:center; min-height:0; } }

/* ---- v215: Übergabeprotokoll — Mängel-Erfassung & beidseitige Unterschriften ---- */
.ueb-rooms{ display:flex; flex-direction:column; gap:8px; }
.ueb-room{ display:grid; grid-template-columns:96px 132px 1fr; gap:8px; align-items:center; }
.ueb-room b{ font-size:13px; }
.ueb-maengel{ display:flex; flex-direction:column; gap:10px; }
.ueb-mangel{ background:var(--surface-2); border:1px solid var(--line); border-radius:13px; padding:10px; display:flex; flex-direction:column; gap:8px; }
.ueb-mangel > input{ width:100%; }
.ueb-mangel-row{ display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.ueb-mangel-row select{ flex:1 1 120px; min-width:0; }
.ueb-mg-auf{ display:inline-flex; align-items:center; gap:6px; font-size:12.5px; color:var(--ink-dim); white-space:nowrap; cursor:pointer; }
.ueb-mg-auf input{ width:16px; height:16px; }
.ueb-mg-x{ width:34px; height:34px; flex:none; border:1px solid var(--line); background:var(--surface); border-radius:9px; color:var(--rust); font-size:20px; line-height:1; cursor:pointer; }
.ueb-mg-x:active{ background:var(--copper-soft); }
.ueb-mg-add{ align-self:flex-start; }
.ueb-fotos{ display:flex; flex-wrap:wrap; gap:8px; }
.ueb-foto{ position:relative; width:72px; height:72px; border-radius:11px; overflow:hidden; border:1px solid var(--line); }
.ueb-foto img{ width:100%; height:100%; object-fit:cover; }
.ueb-foto-x{ position:absolute; top:3px; right:3px; width:22px; height:22px; border-radius:50%; border:none; background:rgba(0,0,0,.6); color:#fff; font-size:15px; line-height:1; cursor:pointer; }
.ueb-signrow{ display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.ueb-signbtn{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; min-height:84px; padding:12px; border:1.5px dashed var(--line-strong); background:var(--surface-2); border-radius:14px; cursor:pointer; color:var(--ink-dim); transition:.18s; }
.ueb-signbtn:hover{ border-color:var(--copper-line); color:var(--copper-2); }
.ueb-signbtn .ueb-sig-ic{ display:grid; place-items:center; width:34px; height:34px; border-radius:50%; background:var(--copper-soft); color:var(--copper-2); }
.ueb-signbtn .ueb-sig-ic svg{ width:18px; height:18px; }
.ueb-signbtn .ueb-sig-lbl{ font-size:12.5px; font-weight:600; text-align:center; }
.ueb-signbtn img{ max-height:48px; max-width:90%; object-fit:contain; background:#fff; border-radius:6px; padding:3px; }
.ueb-signbtn.done{ border-style:solid; border-color:var(--copper-line); background:var(--copper-soft); color:var(--copper-2); }
@media(max-width:420px){ .ueb-room{ grid-template-columns:1fr; } .ueb-signrow{ grid-template-columns:1fr; } }

/* ---- v215: Rechnungen-Hub + Smart-Zuordnung ---- */
.rech-hero .eyebrow{ display:flex; align-items:center; gap:7px; color:var(--copper-2); }
.rech-hero .eyebrow svg{ width:16px; height:16px; }
.rech-h{ margin:6px 0 4px; }
.rech-sub{ color:var(--ink-dim); font-size:13px; line-height:1.45; max-width:64ch; }
.rech-cta{ display:flex; gap:10px; flex-wrap:wrap; margin-top:12px; }
.rech-kpis{ display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin:12px 0; }
.rech-kpi{ background:var(--surface); border:1px solid var(--line); border-radius:14px; padding:13px; text-align:center; }
.rech-kpi b{ display:block; font-family:var(--display); font-size:19px; letter-spacing:-.02em; }
.rech-kpi span{ font-size:11px; color:var(--ink-dim); text-transform:uppercase; letter-spacing:.04em; }
.rech-links{ display:flex; gap:10px; flex-wrap:wrap; margin-bottom:14px; }
.rech-link{ flex:1 1 180px; display:flex; align-items:center; gap:10px; background:var(--surface); border:1px solid var(--line); border-radius:13px; padding:12px 14px; cursor:pointer; color:var(--ink); font-weight:600; font-size:13px; transition:.16s; }
.rech-link:hover{ border-color:var(--copper-line); background:var(--copper-soft); color:var(--copper-2); }
.rech-link svg{ width:18px; height:18px; flex:none; color:var(--copper-2); }
.rech-listhead{ font-size:12px; text-transform:uppercase; letter-spacing:.05em; color:var(--ink-dim); margin:4px 2px 8px; font-weight:700; }
.rech-list{ padding:6px; }
.rech-row{ display:flex; align-items:center; gap:12px; padding:11px 10px; border-radius:12px; }
.rech-row + .rech-row{ border-top:1px solid var(--line); }
.rech-row:hover{ background:var(--surface-2); }
.rech-ic{ width:38px; height:38px; flex:none; border-radius:11px; display:grid; place-items:center; background:var(--copper-soft); color:var(--copper-2); }
.rech-ic svg{ width:18px; height:18px; }
.rech-ic.auf{ background:color-mix(in oklab,var(--gold,#d6a23a) 18%,transparent); color:var(--gold,#bf8c2c); }
.rech-main{ flex:1; min-width:0; }
.rech-main b{ display:block; font-size:13.5px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.rech-main span{ font-size:11.5px; color:var(--ink-dim); }
.rech-meta{ text-align:right; flex:none; }
.rech-meta b{ display:block; font-size:13.5px; font-variant-numeric:tabular-nums; }
.rech-meta span{ font-size:11px; color:var(--ink-faint); }
.rech-tag{ flex:none; font-size:10.5px; font-weight:700; padding:3px 8px; border-radius:999px; background:var(--copper-soft); color:var(--copper-2); }
.rech-tag.auf{ background:color-mix(in oklab,var(--gold,#d6a23a) 16%,transparent); color:var(--gold,#bf8c2c); }
.rech-empty{ text-align:center; padding:30px 16px; color:var(--ink-dim); }
.rech-empty svg{ width:34px; height:34px; opacity:.5; margin-bottom:8px; }
.rech-empty p{ font-size:13px; line-height:1.5; }
@media(max-width:520px){ .rech-kpis{ grid-template-columns:1fr; } .rech-link{ flex-basis:100%; } }
.beleg-sug{ display:flex; align-items:center; gap:11px; background:linear-gradient(135deg,var(--copper-soft),transparent); border:1px solid var(--copper-line); border-radius:13px; padding:11px 13px; margin:10px 0; }
.beleg-sug svg{ width:20px; height:20px; flex:none; color:var(--copper-2); }
.beleg-sug > div{ flex:1; font-size:12.5px; line-height:1.4; }
.beleg-sug b{ color:var(--copper-2); }
.beleg-sug > div span{ color:var(--ink-dim); }
.beleg-sug button{ flex:none; padding:7px 13px; font-size:12px; font-weight:700; border:1px solid var(--copper-line); background:var(--copper); color:#fff; border-radius:10px; cursor:pointer; }
.beleg-sug button:disabled{ opacity:.7; cursor:default; background:var(--surface-2); color:var(--copper-2); }
.beleg-sug.applied{ opacity:.85; }

/* ---- v216: Consent — Vollbild (PC & mobil) + digitale Unterschrift ---- */
.consent-wrap{ position:fixed; inset:0; z-index:50; display:grid; place-items:center; overflow:auto; padding:18px; background:var(--canvas); }
.consent-signlbl{ font-size:12px; color:var(--ink-dim); margin:2px 0 4px; }
.consent-sigrow{ display:flex; gap:10px; align-items:stretch; }
.consent-sigbox{ flex:1; min-height:66px; display:grid; place-items:center; border:1.5px dashed var(--line-strong); border-radius:12px; background:var(--canvas-2); overflow:hidden; }
.consent-sigbox.done{ border-style:solid; border-color:var(--copper-line); background:#fff; }
.consent-sigbox img{ max-height:60px; max-width:100%; object-fit:contain; }
.consent-sig-ph{ display:flex; align-items:center; gap:7px; font-size:12px; color:var(--ink-faint); }
.consent-sig-ph svg{ width:16px; height:16px; }
.consent-sigrow .btn{ flex:none; white-space:nowrap; align-self:center; }
@media(max-width:520px){ .consent-sigrow{ flex-direction:column; } .consent-sigrow .btn{ width:100%; justify-content:center; } }

/* ---- v216: Mobile-Kopf — Section-Icon statt verrutschendem Titel (Web nutzt Topbar, unverändert) ---- */
.mh-title{ display:none; }
.mh-secic{ display:grid; place-items:center; }
.mh-secic svg{ width:20px; height:20px; }

/* ---- v218: Betriebskosten-Positionen (BetrKV) — App-Optik, klare Spalten, mobiler Stack ---- */
.nkpos{ display:grid; grid-template-columns:minmax(0,1.7fr) 104px 152px 134px 54px 38px; gap:10px; align-items:center; padding:9px 4px; border-bottom:1px solid var(--line); }
.nkpos-head{ font-size:10.5px; text-transform:uppercase; letter-spacing:.05em; color:var(--ink-faint); font-weight:700; border-bottom:1px solid var(--line-strong); padding-bottom:8px; }
.nkpos:last-child{ border-bottom:none; }
.nkpos.nk-off{ opacity:.6; }
.nkpos-name{ display:flex; align-items:center; gap:7px; min-width:0; flex-wrap:wrap; }
.nkpos-name .nk-name{ font-weight:600; min-width:0; flex:1 1 120px; }
.nkpos-i{ display:inline-grid; place-items:center; color:var(--ink-faint); cursor:help; flex:none; }
.nkpos-i svg{ width:15px; height:15px; }
.nkpos-na{ color:var(--ink-faint); padding-left:10px; }
.nkpos-del{ width:32px; height:32px; border:1px solid var(--line); background:var(--surface); border-radius:9px; color:var(--ink-faint); cursor:pointer; font-size:15px; line-height:1; }
.nkpos-del:hover{ color:var(--rust); border-color:var(--rust); }
.ta-c{ text-align:center; } .ta-r{ text-align:right; }
.nkpick-list{ display:flex; flex-direction:column; gap:8px; max-height:54vh; overflow:auto; }
.nkpick{ text-align:left; width:100%; background:var(--surface-2); border:1px solid var(--line); border-radius:12px; padding:11px 13px; cursor:pointer; display:flex; flex-direction:column; gap:3px; transition:.15s; }
.nkpick:hover{ border-color:var(--copper-line); background:var(--surface-3); }
.nkpick.off{ opacity:.72; }
.nkpick-h{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.nkpick-h b{ font-size:14px; }
.nkpick-key{ font-size:11px; color:var(--copper-2); background:var(--copper-soft); border-radius:999px; padding:2px 8px; }
.nkpick-sub{ font-size:11.5px; color:var(--ink-dim); line-height:1.35; }
@media(max-width:760px){
  .nkpos-head{ display:none; }
  .nkpos{ display:flex; flex-wrap:wrap; gap:8px 10px; padding:12px; border:1px solid var(--line); border-radius:13px; margin-bottom:8px; background:var(--surface); }
  .nkpos-name{ flex-basis:100%; }
  .nkpos [data-col]{ flex:1 1 30%; min-width:92px; }
  .nkpos [data-col]::before{ content:attr(data-col); display:block; font-size:10px; text-transform:uppercase; letter-spacing:.04em; color:var(--ink-faint); margin-bottom:3px; }
  .nkpos .ta-c,.nkpos .ta-r{ flex:0 0 auto; }
}

/* ---- v219: „Kein Windows 2000 mehr" — Number-Spinner global aus ---- */
input[type=number]::-webkit-outer-spin-button, input[type=number]::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }
input[type=number]{ -moz-appearance:textfield; appearance:textfield; }

/* ---- v219: Dropdown-Menü-Komponente (App-Design) ---- */
.dd{ position:relative; display:inline-block; }
.dd-trigger{ display:inline-flex; align-items:center; gap:6px; }
.dd-caret{ opacity:.7; transition:transform .18s ease; }
.dd.open .dd-caret{ transform:rotate(180deg); }
.dd-panel{ position:absolute; top:calc(100% + 6px); right:0; min-width:212px; background:var(--surface); border:1px solid var(--line-strong); border-radius:13px; box-shadow:0 16px 44px -14px rgba(0,0,0,.55); padding:6px; z-index:80; display:none; flex-direction:column; gap:2px; }
.dd.dd-left .dd-panel{ right:auto; left:0; }
.dd.open .dd-panel{ display:flex; animation:ddIn .14s ease; }
@keyframes ddIn{ from{ opacity:0; transform:translateY(-5px); } to{ opacity:1; transform:none; } }
.dd-item{ display:flex; align-items:center; gap:9px; width:100%; text-align:left; background:none; border:none; padding:9px 11px; border-radius:9px; cursor:pointer; color:var(--ink); font-size:13px; font-weight:500; }
.dd-item:hover{ background:var(--copper-soft); color:var(--copper-2); }
.dd-item svg{ width:16px; height:16px; flex:none; opacity:.85; }
.dd-item.danger{ color:var(--rust); }
.dd-item.danger:hover{ background:var(--rust-soft,rgba(207,107,77,.12)); }
.dd-sep{ height:1px; background:var(--line); margin:4px 2px; }

/* ---- v219: Nebenkosten — editierbare Vorauszahlung pro Mieter ---- */
.nkr-amt{ display:flex; flex-direction:column; align-items:flex-end; gap:3px; }
.nkr-vzfield{ position:relative; display:flex; align-items:center; }
.nkr-vzfield .nkr-eur{ position:absolute; left:11px; color:var(--ink-faint); font-size:13px; pointer-events:none; }
.nkr-vzin{ width:124px; text-align:right; padding-left:24px !important; font-weight:700; }
.nkr-vzlbl{ font-size:10.5px; color:var(--ink-faint); }
.nkr-reset{ color:var(--copper-2); cursor:pointer; text-decoration:none; border-bottom:1px dotted var(--copper-line); }
.nkr-reset:hover{ color:var(--copper); }

/* ---- v219: Intelligence — Schnell-Analysen als Icon-Karten (kein langweiliges Pill-Feld) ---- */
.intel-anal{ display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin:2px 0 18px; }
.anal-card{ display:flex; align-items:center; gap:11px; text-align:left; background:linear-gradient(180deg,var(--surface),var(--surface-2)); border:1px solid var(--line); border-radius:14px; padding:13px 14px; cursor:pointer; color:var(--ink); transition:.16s; }
.anal-card:hover{ transform:translateY(-2px); border-color:var(--copper-line); box-shadow:0 14px 34px -18px var(--glow-copper,rgba(224,106,56,.55)); }
.anal-ic{ width:38px; height:38px; flex:none; border-radius:11px; display:grid; place-items:center; background:var(--copper-soft); color:var(--copper-2); }
.anal-ic svg{ width:19px; height:19px; }
.anal-tx{ flex:1; min-width:0; font-size:13px; font-weight:600; line-height:1.25; }
.anal-go{ flex:none; color:var(--ink-faint); display:grid; place-items:center; transition:.16s; }
.anal-go svg{ width:16px; height:16px; }
.anal-card:hover .anal-go{ color:var(--copper-2); transform:translateX(3px); }
@media(max-width:900px){ .intel-anal{ grid-template-columns:repeat(2,1fr); } }
@media(max-width:520px){ .intel-anal{ grid-template-columns:1fr; } }

/* ---- v220: Bewegliche FABs (KI-Assistent & Hilfe per Drag verschiebbar) ---- */
.botfab, .help-fab{ touch-action:none; }
.fab-dragging{ transition:none !important; cursor:grabbing !important; opacity:.96; z-index:200 !important; }
.fab-dragging *{ animation:none !important; }
.botfab.fab-dragging::after{ display:none !important; }

/* ---- v221: Drag & Drop — Datei-Drop-Zone, Auftrags-Board, Beleg-Ziel ---- */
.drop-overlay{ position:fixed; inset:0; z-index:240; display:none; place-items:center; background:rgba(10,8,6,.62); backdrop-filter:blur(3px); pointer-events:none; }
.drop-overlay.on{ display:grid; }
.drop-box{ display:flex; flex-direction:column; align-items:center; gap:8px; padding:34px 44px; border:2px dashed var(--copper-line); border-radius:22px; background:var(--surface); color:var(--ink); box-shadow:0 30px 80px -30px rgba(0,0,0,.7); }
.drop-box svg{ width:34px; height:34px; color:var(--copper-2); }
.drop-box b{ font-size:17px; font-family:var(--serif); }
.drop-box span{ font-size:12.5px; color:var(--ink-dim); max-width:42ch; text-align:center; line-height:1.4; }
.auf-board{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px; align-items:start; }
.auf-col{ background:var(--canvas-2); border:1px solid var(--line); border-radius:14px; padding:10px; min-height:120px; display:flex; flex-direction:column; gap:8px; transition:border-color .15s, background .15s; }
.auf-col.over{ border-color:var(--copper-line); background:var(--copper-soft); }
.auf-col-h{ display:flex; align-items:center; gap:8px; padding:2px 2px 4px; }
.auf-col-h em{ font-style:normal; font-size:11px; color:var(--ink-faint); font-weight:700; margin-left:auto; }
.auf-card{ background:var(--surface); border:1px solid var(--line); border-radius:12px; padding:10px 11px; cursor:grab; display:flex; flex-direction:column; gap:4px; }
.auf-card:active{ cursor:grabbing; }
.auf-card.dragging{ opacity:.55; transform:rotate(1.5deg); }
.auf-card b{ font-size:13px; line-height:1.3; }
.auf-card > span{ font-size:11.5px; color:var(--ink-dim); }
.auf-card-foot{ display:flex; align-items:center; justify-content:space-between; margin-top:2px; }
.auf-card-foot i{ font-style:normal; font-size:11.5px; color:var(--ink-faint); font-variant-numeric:tabular-nums; }
.auf-empty{ text-align:center; color:var(--ink-faint); font-size:12px; padding:14px 0; border:1px dashed var(--line); border-radius:10px; }
@media(max-width:760px){ .auf-board{ grid-template-columns:1fr; } }
.rech-row[draggable="true"]{ cursor:grab; }
.rech-row.dragging{ opacity:.55; }
.rech-link.over{ border-color:var(--copper-line); background:var(--copper-soft); color:var(--copper-2); box-shadow:0 0 0 2px var(--copper-soft); }

/* ---- v222: Portal-Link Registrierungs-Status ---- */
.hint.warn{ background:rgba(193,84,38,.10); border-color:var(--rust,#c15426); color:var(--rust,#c15426); }
.hint.warn svg{ color:var(--rust,#c15426); flex:0 0 auto; }
.hint.warn b{ color:inherit; }
.hint.warn .btn{ margin-top:6px; }
