/* inOri Projekttool – Frontend-Cockpit im inOri.ch-Design
 * Navy #1C3F5E, Teal-Akzent #367099, Blau-Familie, Poppins + Open Sans.
 */

.ipt, .ipt-shell {
	--ink:      #1C3F5E;   /* Navy – Titel, Marke */
	--text:     #33434f;   /* Fliesstext */
	--accent:   #367099;   /* Teal-Blau – interaktiv */
	--accent-d: #2b5a7c;
	--indigo:   #455DA2;
	--bg:       #ffffff;
	--soft:     #f5f7fa;   /* Alt-Flächen */
	--line:     #e3e9ef;
	--muted:    #5c6b7a;
	--faint:    #98a6b3;
	--ok:       #2E8B67;   /* erledigt (grün) */
	--warn:     #C8892B;   /* in Arbeit / überfällig */
	--red:      #C53030;
	/* Prozessgruppen-Farben: Management blau, Geschäft grün, Ressourcen rot */
	--grp-mgmt:     #6b8fca; --grp-mgmt-bg: #eef3fb; --grp-mgmt-ink: #2f4d7a;
	--grp-gesch:    #5eb587; --grp-gesch-bg: #eef8f1; --grp-gesch-ink: #24704a;
	--grp-ress:     #d18e8e; --grp-ress-bg: #fceeee; --grp-ress-ink: #97403f;
	font-family: 'Open Sans', system-ui, sans-serif;
	color: var(--text);
	font-size: 14px;
	line-height: 1.55;
}

/* Box-Sizing-Reset – verhindert überlaufende/überlappende Eingabefelder (width:100% + Padding). */
.ipt, .ipt-shell, .ipt *, .ipt-shell *, .ipt *::before, .ipt *::after, .ipt-shell *::before, .ipt-shell *::after { box-sizing: border-box; }

/* Standalone-Shell */
.ipt-shell { background: var(--soft); min-height: 100vh; }
.ipt-header { background: #fff; border-bottom: 1px solid var(--line); height: 64px; padding: 0 30px; display: flex; align-items: center; justify-content: space-between; }
.ipt-header-left { display: flex; align-items: center; }
.ipt-logo { display: inline-flex; align-items: center; line-height: 0; }
.ipt-logo-img { height: 30px; width: auto; display: block; }
.ipt-header-divider { display: inline-block; width: 1px; height: 30px; background: var(--line); margin: 0 18px; }
.ipt-header-meta { display: inline-flex; flex-direction: column; gap: 2px; }
.ipt-header-type { font-size: 10px; font-weight: 600; letter-spacing: .12em; color: var(--accent); text-transform: uppercase; }
.ipt-header-name { font-family: 'Poppins', sans-serif; font-size: 15px; font-weight: 600; color: var(--ink); line-height: 1.1; }
.ipt-header-right { color: var(--muted); font-size: 13px; display: flex; align-items: center; gap: 4px; }
.ipt-firmenlogo { display: block; object-fit: contain; }
.ipt-firmenlogo-header { max-height: 34px; max-width: 130px; margin-right: 10px; }
.ipt-firmenlogo-hero { max-height: 46px; max-width: 180px; margin-bottom: 10px; }
.ipt-firmenlogo-card { max-height: 22px; max-width: 80px; display: inline-block; vertical-align: middle; margin-right: 8px; }
.ipt-logo-field { display: flex; gap: 16px; align-items: center; flex-wrap: wrap; padding: 12px 0; border-top: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.ipt-logo-preview { width: 120px; height: 64px; border: 1px dashed var(--line); border-radius: 10px; display: flex; align-items: center; justify-content: center; background: #fff; overflow: hidden; flex: none; }
.ipt-logo-preview img { max-width: 100%; max-height: 100%; object-fit: contain; }
.ipt-logo-controls { display: flex; flex-direction: column; gap: 8px; font-size: 12px; }
.ipt-logo-remove { display: flex; align-items: center; gap: 6px; font-weight: 400 !important; color: var(--muted); }

/* Container */
.ipt { max-width: 1440px; margin: 0 auto; padding: 4px 4px 48px; }
.ipt-shell .ipt { padding: 22px 34px 56px; }
@media (max-width: 640px) { .ipt-shell .ipt { padding: 16px 14px 48px; } }

/* Sub-Navigation */
.ipt-subnav { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 24px; }
.ipt-pill { display: inline-flex; align-items: center; gap: 6px; padding: 8px 15px; border-radius: 8px; font-size: 13px; font-weight: 600; color: var(--muted); text-decoration: none; background: #fff; border: 1px solid var(--line); transition: all .14s; }
.ipt-pill:hover { color: var(--ink); border-color: #cbd6e0; }
.ipt-pill.active { background: var(--ink); border-color: var(--ink); color: #fff; }

/* Eyebrows / Titel */
.ipt-eyebrow, .ipt-card-eyebrow { font-size: 10.5px; font-weight: 700; letter-spacing: .1em; color: var(--accent); text-transform: uppercase; margin-bottom: 8px; }
.ipt-h2 { font-family: 'Poppins', sans-serif; font-size: 23px; font-weight: 600; color: var(--ink); margin: 0 0 4px; letter-spacing: -.01em; }
.ipt-hint { color: var(--faint); font-weight: 400; letter-spacing: 0; text-transform: none; font-size: 11px; }
.ipt-muted { color: var(--muted); }
.ipt-lead { font-size: 15px; color: var(--text); margin: 6px 0 18px; max-width: 72ch; }

/* Cards */
.ipt-card { background: var(--bg); border: 1px solid var(--line); border-radius: 14px; padding: 22px 24px; margin-bottom: 18px; box-shadow: 0 1px 2px rgba(28,63,94,.03); }
.ipt-card h2 { margin-top: 0; }
.ipt-grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
@media (max-width: 820px) { .ipt-grid2 { grid-template-columns: 1fr; } }

/* Hero */
.ipt-hero { display: flex; justify-content: space-between; align-items: center; gap: 24px; background: linear-gradient(120deg,#1C3F5E,#2b5a7c); color: #fff; border-radius: 18px; padding: 30px 32px; margin-bottom: 20px; }
.ipt-hero .ipt-eyebrow { color: #9fc4dd; }
.ipt-title { font-family: 'Poppins', sans-serif; font-size: 30px; font-weight: 600; margin: 6px 0 10px; line-height: 1.1; color: #fff; letter-spacing: -.02em; }
.ipt-hero-meta { display: flex; gap: 8px; flex-wrap: wrap; }
.ipt-hero-meta span { font-size: 12px; color: #dbe7f0; background: rgba(255,255,255,.12); border-radius: 999px; padding: 4px 12px; }
.ipt-hero-right { text-align: center; flex-shrink: 0; }
.ipt-ring { --pct: 0; width: 100px; height: 100px; border-radius: 50%; background: conic-gradient(#6fb0d6 calc(var(--pct)*1%), rgba(255,255,255,.18) 0); display: flex; align-items: center; justify-content: center; margin: 0 auto; }
.ipt-ring span { width: 76px; height: 76px; background: var(--ink); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-family: 'Poppins',sans-serif; font-weight: 600; font-size: 21px; color: #fff; }
.ipt-ring-label { font-size: 11px; color: #cfe0ec; margin-top: 8px; }

.ipt-note { background: #eef5fb; border: 1px solid #cfe1f0; border-radius: 12px; padding: 13px 18px; margin-bottom: 20px; font-size: 13.5px; color: var(--ink); }
.ipt-note a { color: var(--accent); font-weight: 600; }

/* Phasenleiste */
.ipt-phaseline { display: grid; grid-template-columns: repeat(4,1fr); gap: 14px; margin-bottom: 18px; }
@media (max-width: 820px) { .ipt-phaseline { grid-template-columns: 1fr 1fr; } }
.ipt-phase { background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 16px 18px; text-decoration: none; color: inherit; display: block; transition: all .14s; }
.ipt-phase:hover { border-color: #bcccd9; box-shadow: 0 6px 18px rgba(28,63,94,.08); transform: translateY(-2px); }
.ipt-phase-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: 10px; }
.ipt-phase-dot { width: 10px; height: 10px; border-radius: 50%; background: var(--faint); }
.ipt-phase.ipt-laufend .ipt-phase-dot { background: var(--warn); }
.ipt-phase.ipt-abgeschlossen .ipt-phase-dot { background: var(--ok); }
.ipt-phase.ipt-laufend { border-color: var(--accent); }
.ipt-phase-label { font-family: 'Poppins',sans-serif; font-weight: 600; font-size: 14px; color: var(--ink); margin-bottom: 12px; }

/* Fokus-Karte */
.ipt-focus { background: linear-gradient(135deg,#eef5fb,#fff); border-color: #cfe1f0; }
.ipt-focus h3 { font-family: 'Poppins',sans-serif; font-size: 18px; color: var(--ink); margin: 2px 0 6px; }
.ipt-focus-phase { font-size: 11px; color: var(--accent); font-weight: 600; margin-bottom: 12px; }

/* Tabellen */
.ipt-table { width: 100%; border-collapse: collapse; }
.ipt-table td, .ipt-table th { padding: 7px 8px; text-align: left; vertical-align: top; font-size: 13px; }
.ipt-table th { font-size: 10.5px; text-transform: uppercase; letter-spacing: .06em; color: var(--faint); font-weight: 700; }
.ipt-table-lines td, .ipt-table-lines th { border-bottom: 1px solid #eef2f6; }
.ipt-table td:first-child { color: var(--muted); }
.ipt-cell-label { font-weight: 600; color: var(--ink) !important; }
.ipt-overdue td { color: var(--red); font-weight: 600; }

/* Aktivität */
.ipt-activity { list-style: none; margin: 0; padding: 0; }
.ipt-activity li { padding: 7px 0; border-bottom: 1px solid #eef2f6; font-size: 13px; }
.ipt-act-date { color: var(--faint); font-size: 11.5px; margin-right: 8px; }

/* Badges */
.ipt-badge { display: inline-block; padding: 2px 10px; border-radius: 999px; font-size: 11px; font-weight: 600; white-space: nowrap; }
.ipt-badge.ipt-offen { background: #eef2f6; color: #6b7885; }
.ipt-badge.ipt-laufend { background: #fbf0dd; color: var(--warn); }
.ipt-badge.ipt-abgeschlossen { background: #dcf0e7; color: var(--ok); }
.ipt-badge.ipt-uebersprungen { background: #edf0f2; color: #9aa5b0; }

/* Fortschrittsbalken */
.ipt-bar { position: relative; background: #e7edf2; border-radius: 999px; height: 8px; overflow: hidden; margin-top: 6px; }
.ipt-bar-big { height: 20px; }
.ipt-bar-fill { background: var(--accent); height: 100%; border-radius: 999px; transition: width .3s; }
.ipt-bar-label { position: absolute; inset: 0; text-align: center; font-size: 11px; line-height: 20px; color: #fff; display: none; }
.ipt-bar-big .ipt-bar-label { display: block; }

/* Roadmap – Strasse zum Ziel */
.ipt-roadcard { background: linear-gradient(135deg,#f7fafc,#eef4f8); }
.ipt-road-headline { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.ipt-road-goaltext { font-size: 12.5px; font-weight: 600; color: var(--ink); }
.ipt-roadwrap { position: relative; width: 100%; height: 210px; }
.ipt-roadsvg { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible; }
.ipt-road-path { fill: none; stroke: #34495e; stroke-width: 26; stroke-linecap: round; stroke-linejoin: round; filter: drop-shadow(0 3px 5px rgba(28,63,94,.18)); vector-effect: non-scaling-stroke; }
.ipt-road-mid { fill: none; stroke: #f4e6c4; stroke-width: 2.5; stroke-linecap: round; stroke-dasharray: 10 16; opacity: .9; vector-effect: non-scaling-stroke; }
.ipt-road-markers { position: absolute; inset: 0; }
.ipt-road-marker, .ipt-road-flag { position: absolute; transform: translate(-50%,-50%); z-index: 2; }
.ipt-road-marker { width: 26px; height: 26px; border-radius: 50%; background: #dbe4ec; color: #6b7885; font-size: 12px; font-weight: 700; display: flex; align-items: center; justify-content: center; border: 3px solid #fff; box-shadow: 0 1px 3px rgba(28,63,94,.25); }
.ipt-road-marker.ipt-laufend { background: var(--warn); color: #fff; }
.ipt-road-marker.ipt-abgeschlossen { background: var(--ok); color: #fff; }
.ipt-road-flag { font-size: 26px; filter: drop-shadow(0 2px 2px rgba(0,0,0,.25)); }
.ipt-bird { position: absolute; left: 4%; top: 72%; transform: translate(-50%,-50%); transition: left .6s ease, top .6s ease; display: flex; flex-direction: column; align-items: center; z-index: 3; }
.ipt-bird-emoji { font-size: 28px; line-height: 1; filter: drop-shadow(0 3px 3px rgba(0,0,0,.3)); animation: ipt-fly 1.6s ease-in-out infinite; }
.ipt-bird-pct { font-size: 10px; font-weight: 700; color: #fff; background: var(--ink); padding: 1px 7px; border-radius: 8px; margin-top: 2px; box-shadow: 0 1px 2px rgba(0,0,0,.2); }
@keyframes ipt-fly { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
.ipt-road-labels { display: flex; margin-top: 12px; }
.ipt-road-label { flex: 1; display: flex; flex-direction: column; gap: 3px; padding: 8px 10px; margin-right: 8px; border-radius: 10px; text-decoration: none; color: inherit; border: 1px solid transparent; transition: all .14s; }
.ipt-road-label:last-child { margin-right: 0; }
.ipt-road-label:hover { background: #fff; border-color: var(--line); }
.ipt-road-num { width: 22px; height: 22px; border-radius: 50%; background: #dbe4ec; color: #6b7885; font-size: 11px; font-weight: 700; display: flex; align-items: center; justify-content: center; }
.ipt-road-label.ipt-abgeschlossen .ipt-road-num { background: var(--ok); color: #fff; }
.ipt-road-label.ipt-laufend .ipt-road-num { background: var(--warn); color: #fff; }
.ipt-road-name { font-family: 'Poppins',sans-serif; font-weight: 600; font-size: 13px; color: var(--ink); }
.ipt-road-ziel { font-size: 11.5px; color: var(--muted); }
.ipt-road-mini { font-size: 10.5px; color: var(--faint); }
@media (max-width: 640px) { .ipt-road-ziel { display: none; } .ipt-road-name { font-size: 11px; } }

/* Systematik + Inventar */
.ipt-syslist { display: flex; flex-direction: column; gap: 8px; }
.ipt-sysrow { display: flex; align-items: flex-start; gap: 12px; padding: 8px 0; border-bottom: 1px solid var(--line); }
.ipt-sysrow:last-child { border-bottom: 0; }
.ipt-systag { flex: none; min-width: 42px; text-align: center; font-family: 'Poppins',sans-serif; font-weight: 700; font-size: 11px; letter-spacing: .04em; color: var(--accent); background: rgba(54,112,153,.1); border-radius: 7px; padding: 4px 8px; }
.ipt-sysdesc { font-size: 13px; color: var(--ink); line-height: 1.5; }
.ipt-sysnr { font-size: 10.5px; font-weight: 700; color: var(--faint); margin-left: 4px; }
.ipt-inventar { margin-top: 18px; padding-top: 16px; border-top: 1px dashed var(--line); }
.ipt-invlist { display: grid; grid-template-columns: repeat(auto-fill,minmax(280px,1fr)); gap: 8px; }
.ipt-invitem { display: flex; align-items: center; gap: 10px; padding: 8px 10px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.ipt-inv-body { display: flex; flex-direction: column; flex: 1; min-width: 0; }
.ipt-inv-titel { font-family: 'Poppins',sans-serif; font-weight: 600; font-size: 12.5px; color: var(--ink); }
.ipt-inv-desc { font-size: 11px; color: var(--muted); line-height: 1.4; }

/* Mandatsübersicht */
.ipt-header-switch { font-size: 12px; color: var(--accent); text-decoration: none; margin-right: 14px; }
.ipt-header-switch:hover { text-decoration: underline; }
.ipt-hero-overview { align-items: center; }
.ipt-mandate { display: grid; grid-template-columns: repeat(auto-fill,minmax(320px,1fr)); gap: 16px; }
.ipt-mandat { background: var(--bg); border: 1px solid var(--line); border-radius: 14px; overflow: hidden; box-shadow: 0 1px 2px rgba(28,63,94,.03); transition: box-shadow .15s, border-color .15s; }
.ipt-mandat:hover { box-shadow: 0 6px 20px rgba(28,63,94,.10); border-color: var(--accent); }
.ipt-mandat-main { display: flex; gap: 14px; padding: 18px 20px; text-decoration: none; color: inherit; align-items: flex-start; }
.ipt-mandat-ring { --pct: 0; flex: none; width: 54px; height: 54px; border-radius: 50%; display: flex; align-items: center; justify-content: center; background: conic-gradient(var(--accent) calc(var(--pct)*1%), #e6edf3 0); position: relative; }
.ipt-mandat-ring::after { content: ''; position: absolute; inset: 6px; background: var(--bg); border-radius: 50%; }
.ipt-mandat-ring span { position: relative; z-index: 1; font-size: 12px; font-weight: 700; color: var(--ink); }
.ipt-mandat-body { flex: 1; min-width: 0; }
.ipt-mandat-name { font-family: 'Poppins',sans-serif; font-weight: 600; font-size: 16px; color: var(--ink); }
.ipt-mandat-meta { display: flex; flex-wrap: wrap; gap: 6px 12px; font-size: 11.5px; color: var(--muted); margin: 3px 0 6px; }
.ipt-mandat-next { font-size: 12px; color: var(--accent); margin-bottom: 8px; }
.ipt-mandat-next.ipt-mandat-done { color: var(--ok); }
.ipt-mandat-foot { display: flex; align-items: center; justify-content: space-between; padding: 10px 20px; border-top: 1px solid var(--line); background: #fafcfd; }
.ipt-mine-toggle { display: flex; gap: 6px; margin: 4px 0 16px; }
.ipt-mandate-toolbar { display: flex; gap: 6px; margin-bottom: 14px; }
.ipt-viewtoggle { font-family: 'Poppins',sans-serif; font-weight: 600; font-size: 12.5px; padding: 6px 14px; border-radius: 8px; border: 1px solid var(--line); background: #fff; color: var(--muted); text-decoration: none; }
.ipt-viewtoggle.active { background: var(--ink); border-color: var(--ink); color: #fff; }
.ipt-mandatlist td { vertical-align: middle; }
.ipt-mandatlist-name { font-family: 'Poppins',sans-serif; font-weight: 600; color: var(--ink); text-decoration: none; }
.ipt-mandatlist-name:hover { color: var(--accent); }
.ipt-filterchip { font-size: 12px; color: var(--muted); align-self: center; margin-left: 6px; }
.ipt-filterchip strong { color: var(--ink); }

/* Termine + Filter + Prozessverwaltung */
.ipt-filterbar form { align-items: flex-end; flex-wrap: wrap; }
.ipt-filterlbl { display: flex; flex-direction: column; font-size: 11px; font-weight: 600; color: var(--muted); gap: 4px; }
.ipt-proclist { display: flex; flex-direction: column; gap: 8px; }
.ipt-procrow { display: flex; gap: 8px; align-items: center; flex-wrap: wrap; }
.ipt-procdel { margin-left: -4px; }
@media (max-width: 640px) { .ipt-mandate { grid-template-columns: 1fr; } }

/* Prozesslandkarte (Systematik-Zeichnung) */
.ipt-mapcard { background: linear-gradient(135deg,#f7fafc,#eef4f8); }
.ipt-map-head { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 8px; margin-bottom: 14px; }
.ipt-map-legendmini { display: flex; align-items: center; gap: 6px; font-size: 11px; color: var(--muted); }
.ipt-map-legendmini .ipt-dot { margin-left: 8px; }
.ipt-dot { display: inline-block; width: 10px; height: 10px; border-radius: 50%; background: #cfd8e0; }
.ipt-dot.ipt-abgeschlossen { background: var(--ok); }
.ipt-dot.ipt-laufend { background: var(--warn); }
.ipt-dot.ipt-offen { background: #cfd8e0; }
.ipt-map { display: flex; flex-direction: column; gap: 12px; }
.ipt-map-band { border-radius: 14px; padding: 14px 16px; border: 1px solid var(--line); }
.ipt-map-bandlabel { font-family: 'Poppins',sans-serif; font-weight: 600; font-size: 13px; color: var(--ink); margin-bottom: 10px; display: flex; align-items: baseline; gap: 10px; }
.ipt-map-bandlabel span { font-family: 'Open Sans',sans-serif; font-weight: 400; font-size: 11px; color: var(--muted); text-transform: none; }
.ipt-map-mgmt, .ipt-map-kern, .ipt-map-res { border-color: var(--line); border-left: 4px solid var(--ink); }
.ipt-map-mgmt { background: var(--grp-mgmt-bg); border-left-color: var(--grp-mgmt); }
.ipt-map-kern { flex: 1; background: var(--grp-gesch-bg); border-left-color: var(--grp-gesch); }
.ipt-map-res { background: var(--grp-ress-bg); border-left-color: var(--grp-ress); }
.ipt-map-core { display: flex; align-items: stretch; gap: 12px; }
.ipt-map-side { flex: none; width: 118px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; text-align: center; font-size: 11px; font-weight: 600; color: var(--ink); background: #fff; border: 1px dashed var(--line); border-radius: 14px; padding: 10px 8px; }
.ipt-map-arrow { color: var(--accent); font-style: normal; font-size: 18px; line-height: 1; }
.ipt-map-chips { display: flex; flex-wrap: wrap; gap: 8px; }
.ipt-mapchip { display: inline-flex; flex-direction: column; gap: 2px; background: #fff; border: 1px solid var(--line); border-left: 4px solid #cfd8e0; border-radius: 10px; padding: 8px 12px; text-decoration: none; color: var(--ink); font-size: 12.5px; font-weight: 600; transition: transform .12s, box-shadow .12s; min-width: 120px; }
.ipt-mapchip:hover { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(28,63,94,.12); }
.ipt-mapchip.ipt-abgeschlossen { border-left-color: var(--ok); background: #f6fbf8; }
.ipt-mapchip.ipt-laufend { border-left-color: var(--warn); }
.ipt-mapchip.ipt-uebersprungen { border-left-color: #cfd8e0; opacity: .6; }
.ipt-mapchip-name { font-family: 'Poppins',sans-serif; }
.ipt-mapchip-prog { font-size: 10.5px; font-weight: 700; color: var(--muted); }
.ipt-map-empty { font-size: 12px; color: var(--faint); font-style: italic; }
.ipt-map-foot { margin-top: 14px; font-size: 12px; color: var(--muted); line-height: 1.6; border-top: 1px dashed var(--line); padding-top: 12px; }
@media (max-width: 720px) { .ipt-map-core { flex-direction: column; } .ipt-map-side { width: auto; flex-direction: row; } }
.ipt-map-bandico { font-size: 16px; }
.ipt-step-typico { font-size: 13px; }

/* Timeline (Dashboard) */
.ipt-timeline { position: relative; display: flex; flex-direction: column; gap: 2px; }
.ipt-timeline::before { content: ''; position: absolute; left: 17px; top: 6px; bottom: 6px; width: 2px; background: var(--line); }
.ipt-tl-item { position: relative; display: flex; align-items: center; gap: 14px; padding: 9px 8px 9px 0; text-decoration: none; color: inherit; border-radius: 10px; }
a.ipt-tl-item:hover { background: #f6f9fb; }
.ipt-tl-dot { position: relative; z-index: 1; flex: none; width: 14px; height: 14px; margin: 0 11px; border-radius: 50%; background: #cfd8e0; display: flex; align-items: center; justify-content: center; font-size: 9px; color: #fff; }
.ipt-tl-upcoming .ipt-tl-dot { background: var(--accent); }
.ipt-tl-overdue .ipt-tl-dot { background: var(--warn); }
.ipt-tl-done .ipt-tl-dot { background: var(--ok); }
.ipt-tl-ms .ipt-tl-dot { background: var(--ink); border-radius: 3px; transform: rotate(45deg); }
.ipt-tl-body { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.ipt-tl-title { font-family: 'Poppins',sans-serif; font-weight: 600; font-size: 13.5px; color: var(--ink); }
.ipt-tl-sub { font-size: 11.5px; color: var(--muted); }
.ipt-tl-date { flex: none; text-align: right; font-size: 12px; font-weight: 600; color: var(--ink); white-space: nowrap; }
.ipt-tl-date small { font-weight: 400; color: var(--muted); }
.ipt-tl-overdue .ipt-tl-title { color: var(--warn); }
.ipt-tl-done { opacity: .62; }
.ipt-tl-now { display: flex; align-items: center; gap: 10px; margin: 6px 0 6px 44px; font-size: 11px; font-weight: 700; letter-spacing: .05em; text-transform: uppercase; color: var(--accent); }
.ipt-tl-now::after { content: ''; flex: 1; height: 1px; background: var(--accent); opacity: .3; }

/* Jahresplan (Gantt) */
.ipt-jahr-nav { display: flex; align-items: center; gap: 10px; }
.ipt-jahr-cur { font-family: 'Poppins',sans-serif; font-weight: 700; font-size: 20px; color: var(--ink); min-width: 60px; text-align: center; }
.ipt-ganttscroll { overflow-x: auto; }
.ipt-gantt { min-width: 780px; }
.ipt-gantt-row { display: flex; align-items: stretch; border-bottom: 1px solid var(--line); }
.ipt-gantt-headrow { border-bottom: 2px solid var(--line); }
.ipt-gantt-name { flex: none; width: 232px; padding: 8px 14px; box-sizing: border-box; border-right: 1px solid var(--line); display: flex; flex-direction: column; justify-content: center; gap: 6px; }
.ipt-gantt-headrow .ipt-gantt-name { font-family: 'Poppins',sans-serif; font-weight: 600; font-size: 12px; color: var(--muted); }
.ipt-gantt-name a { color: var(--ink); text-decoration: none; font-weight: 600; font-family: 'Poppins',sans-serif; font-size: 13px; }
.ipt-gantt-name a:hover { color: var(--accent); }
.ipt-gantt-track { position: relative; flex: 1; min-height: 40px; }
.ipt-gantt-monthhead { display: flex; }
.ipt-gantt-mth { flex: 1; text-align: center; padding: 9px 0; font-size: 11.5px; font-weight: 600; color: var(--muted); border-right: 1px solid var(--line); box-sizing: border-box; }
.ipt-gantt-mth:last-child { border-right: 0; }
.ipt-gantt-mth.now { color: var(--accent); }
.ipt-gantt-grid { position: absolute; inset: 0; display: flex; }
.ipt-gantt-grid span { flex: 1; border-right: 1px solid var(--line); box-sizing: border-box; }
.ipt-gantt-grid span:last-child { border-right: 0; }
.ipt-gantt-grid span.now { background: rgba(54,112,153,.05); }
.ipt-gantt-today { position: absolute; top: 0; bottom: 0; width: 2px; background: var(--accent); opacity: .55; z-index: 3; pointer-events: none; }
.ipt-gantt-group { background: var(--ink); color: #fff; font-family: 'Poppins',sans-serif; font-weight: 600; font-size: 11px; letter-spacing: .04em; text-transform: uppercase; padding: 6px 14px; }
.ipt-gantt-group.ipt-grp-mgmt { background: var(--grp-mgmt-bg); color: var(--grp-mgmt-ink); border-left: 4px solid var(--grp-mgmt); }
.ipt-gantt-group.ipt-grp-gesch { background: var(--grp-gesch-bg); color: var(--grp-gesch-ink); border-left: 4px solid var(--grp-gesch); }
.ipt-gantt-group.ipt-grp-ress { background: var(--grp-ress-bg); color: var(--grp-ress-ink); border-left: 4px solid var(--grp-ress); }
.ipt-gantt-bar { position: absolute; top: 50%; transform: translateY(-50%); height: 26px; min-width: 6px; background: var(--accent); border-radius: 6px; z-index: 2; text-decoration: none; box-shadow: 0 1px 3px rgba(28,63,94,.18); transition: filter .12s; }
/* Farbe nach Prozessgruppe; Status über Deckkraft. */
.ipt-gantt-bar.ipt-grp-mgmt { background: #8aa8d8; }
.ipt-gantt-bar.ipt-grp-gesch { background: #7cc39d; }
.ipt-gantt-bar.ipt-grp-ress { background: #dba0a0; }
.ipt-gantt-bar.ipt-offen { opacity: .58; }
.ipt-gantt-bar.ipt-laufend { opacity: .82; }
.ipt-gantt-bar.ipt-abgeschlossen { opacity: 1; box-shadow: 0 1px 3px rgba(28,63,94,.28), inset 0 0 0 2px rgba(255,255,255,.55); }
.ipt-gantt-bar.ipt-uebersprungen { opacity: .4; }
.ipt-gantt-bar:hover { filter: brightness(1.04); }
.ipt-gantt-ms { position: absolute; top: 50%; transform: translate(-50%,-50%); color: var(--ink); font-size: 15px; z-index: 2; }
.ipt-jahr-edit { display: flex; gap: 4px; flex-wrap: wrap; align-items: center; margin-top: 4px; }
.ipt-jahr-edit .ipt-input { padding: 3px 5px; font-size: 11px; width: 104px; }
.ipt-gantt-name { padding-top: 6px; padding-bottom: 6px; }

/* Kerndokumente-Kacheln */
.ipt-kerngrid { display: grid; grid-template-columns: repeat(auto-fill,minmax(260px,1fr)); gap: 8px; }
.ipt-kerntile { display: flex; align-items: center; gap: 11px; border: 1px solid var(--line); border-left: 4px solid #cfd8e0; border-radius: 10px; padding: 11px 14px; text-decoration: none; color: inherit; background: #fff; transition: all .13s; }
.ipt-kerntile:hover { box-shadow: 0 4px 12px rgba(28,63,94,.08); }
.ipt-kerntile.ipt-abgeschlossen { background: #f2faf6; border-left-color: var(--ok); }
.ipt-kerntile-check { flex: none; width: 22px; height: 22px; border-radius: 50%; border: 2px solid #cfd8e0; display: flex; align-items: center; justify-content: center; font-size: 12px; color: #fff; }
.ipt-kerntile.ipt-abgeschlossen .ipt-kerntile-check { background: var(--ok); border-color: var(--ok); }
.ipt-kerntile-body { flex: 1; display: flex; flex-direction: column; min-width: 0; }
.ipt-kerntile-title { font-family: 'Poppins',sans-serif; font-weight: 600; font-size: 13px; color: var(--ink); }
.ipt-kerntile-step { font-size: 11px; color: var(--faint); }
.ipt-kerntile-open { font-size: 11px; color: var(--accent); white-space: nowrap; }

/* Kerndokumente – Fundament (Konzeptphase) */
.ipt-fundamentcard { background: linear-gradient(180deg,#f7fafc,#eef4f8); }
.ipt-fundament { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; padding: 8px 0 4px; }
.ipt-brick { flex: 1 1 200px; max-width: 260px; min-height: 62px; display: flex; align-items: center; gap: 10px; padding: 10px 14px; background: #fff; border: 1px solid var(--line); border-bottom: 4px solid #cfd8e0; border-radius: 8px; text-decoration: none; color: inherit; box-shadow: 0 1px 2px rgba(28,63,94,.05); transition: all .14s; }
.ipt-brick:hover { transform: translateY(-2px); box-shadow: 0 6px 16px rgba(28,63,94,.12); }
.ipt-brick.done { background: #f2faf6; border-bottom-color: var(--ok); }
.ipt-brick-check { flex: none; width: 24px; height: 24px; border-radius: 50%; border: 2px solid #cfd8e0; display: flex; align-items: center; justify-content: center; font-size: 12px; color: var(--faint); }
.ipt-brick.done .ipt-brick-check { background: var(--ok); border-color: var(--ok); color: #fff; }
.ipt-brick-title { font-family: 'Poppins',sans-serif; font-weight: 600; font-size: 12.5px; color: var(--ink); line-height: 1.3; }
.ipt-fundament-base { text-align: center; font-size: 10.5px; letter-spacing: .12em; color: var(--faint); margin-top: 12px; padding-top: 10px; border-top: 2px solid #dfe6ec; }
.ipt-weitere summary { cursor: pointer; font-family: 'Poppins',sans-serif; font-weight: 600; font-size: 13px; color: var(--ink); }
.ipt-statushint { font-size: 12px; color: var(--muted); margin-right: 10px; }

/* Termin-Reminder (Dashboard) */
.ipt-remindercard { background: linear-gradient(135deg,#fff8ec,#fff); border-color: #f0dcb6; }
.ipt-reminder-list { display: flex; flex-direction: column; gap: 6px; margin-top: 4px; }
.ipt-reminder { display: flex; align-items: center; gap: 10px; padding: 9px 12px; background: #fff; border: 1px solid var(--line); border-radius: 9px; text-decoration: none; color: inherit; }
.ipt-reminder:hover { border-color: var(--warn); }
.ipt-reminder.overdue { border-left: 4px solid var(--red); }
.ipt-reminder-when { flex: none; font-size: 11.5px; font-weight: 700; color: var(--warn); min-width: 96px; }
.ipt-reminder.overdue .ipt-reminder-when { color: var(--red); }
.ipt-reminder-name { font-family: 'Poppins',sans-serif; font-weight: 600; font-size: 13px; color: var(--ink); flex: 1; }
.ipt-reminder-cta { font-size: 11.5px; color: var(--accent); white-space: nowrap; }

/* Projektmitglieder */
.ipt-memberlist { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 12px; }
.ipt-member { display: inline-flex; align-items: center; gap: 8px; background: #fff; border: 1px solid var(--line); border-radius: 999px; padding: 5px 6px 5px 12px; font-size: 12.5px; }
.ipt-member .ipt-linkbtn { text-decoration: none; font-size: 14px; }

/* Fremd-Benachrichtigungen (Hostinger-Toasts) im Cockpit ausblenden.
   Diese Datei lädt nur auf der Cockpit-Seite – andere Seiten bleiben unberührt. */
.Toastify, .Toastify__toast-container { display: none !important; }

/* Notizen */
.ipt-noteslist { display: flex; flex-direction: column; gap: 12px; }
.ipt-note-item { margin: 0; }
.ipt-note-meta { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 8px; flex-wrap: wrap; }
.ipt-note-date { font-size: 12px; color: var(--muted); font-weight: 600; }
.ipt-note-actions { display: inline-flex; align-items: center; gap: 10px; }
.ipt-note-text { font-size: 14px; color: var(--text); line-height: 1.6; white-space: pre-wrap; word-break: break-word; }

/* Verantwortliche (inOri) & Zugeteilte */
.ipt-mandat-verant { font-size: 12px; color: var(--accent-d); font-weight: 600; margin: 2px 0 2px; }
.ipt-mandat-zugeteilt { font-size: 12px; color: var(--muted); margin: 0 0 6px; }
.ipt-member-verant { border-color: #cfe0f2; background: #f2f8fc; }

/* Warn-Note */
.ipt-note-warn { background: #fff6e8; border: 1px solid #f0dcb6; color: #8a5a12; border-radius: 12px; padding: 12px 16px; margin-bottom: 18px; font-size: 13.5px; }
.ipt-note-warn a { color: var(--accent); }

/* Pendenzen-Aktionen */
.ipt-pendenz-actions { white-space: nowrap; }
.ipt-pendenz-actions .ipt-linkbtn { margin-left: 8px; }
.ipt-pendenz-edit td { background: #f6f9fb; }

/* Budget */
.ipt-budgrid { display: grid; grid-template-columns: repeat(3,1fr); gap: 14px; margin-bottom: 14px; }
@media (max-width: 640px) { .ipt-budgrid { grid-template-columns: 1fr; } }
.ipt-budtile { background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 18px 20px; display: flex; flex-direction: column; gap: 3px; }
.ipt-budtile-lbl { font-size: 10.5px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--accent); }
.ipt-budtile-val { font-family: 'Poppins',sans-serif; font-weight: 700; font-size: 24px; color: var(--ink); }
.ipt-budtile-sub { font-size: 13px; color: var(--muted); }
.ipt-budtile-rem { background: linear-gradient(135deg,#eef5fb,#fff); border-color: #cfe1f0; }
.ipt-budbar { position: relative; height: 24px; background: #eef2f6; border-radius: 999px; overflow: hidden; margin-bottom: 20px; }
.ipt-budbar-fill { position: absolute; left: 0; top: 0; bottom: 0; border-radius: 999px; transition: width .5s ease; }
.ipt-budbar-fill.ipt-bud-ok { background: linear-gradient(90deg,#367099,#2E8B67); }
.ipt-budbar-fill.ipt-bud-warn { background: linear-gradient(90deg,#367099,#C8892B); }
.ipt-budbar-fill.ipt-bud-red { background: linear-gradient(90deg,#C8892B,#C53030); }
.ipt-budbar-label { position: absolute; right: 12px; top: 50%; transform: translateY(-50%); font-size: 11.5px; font-weight: 700; color: var(--ink); }
.ipt-zweck.done { background: #f2faf6; border-color: #cceadd; }
.ipt-zweck.done .ipt-zweck-num { background: var(--ok); }

/* Konzept-Zweck */
.ipt-zwecklist { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; }
@media (max-width: 720px) { .ipt-zwecklist { grid-template-columns: 1fr; } }
.ipt-zweck { display: flex; gap: 12px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.ipt-zweck-num { flex: none; width: 26px; height: 26px; border-radius: 50%; background: var(--ink); color: #fff; font-family: 'Poppins',sans-serif; font-weight: 700; font-size: 12px; display: flex; align-items: center; justify-content: center; }
.ipt-zweck-body { display: flex; flex-direction: column; gap: 2px; }
.ipt-zweck-titel { font-family: 'Poppins',sans-serif; font-weight: 600; font-size: 13px; color: var(--ink); }
.ipt-zweck-text { font-size: 12px; color: var(--muted); line-height: 1.5; }

/* Login-Maske */
.ipt-loginshell { display: flex; align-items: center; justify-content: center; min-height: 100vh; padding: 24px; box-sizing: border-box; }
.ipt-login { width: 100%; max-width: 380px; background: #fff; border: 1px solid var(--line); border-radius: 18px; padding: 38px 34px; box-shadow: 0 12px 40px rgba(28,63,94,.10); text-align: center; }
.ipt-login-brand { display: flex; justify-content: center; }
.ipt-login-brand .ipt-logo-img { height: 46px; width: auto; }
.ipt-login-title { font-family: 'Poppins',sans-serif; font-weight: 600; font-size: 21px; color: var(--ink); margin: 14px 0 4px; }
.ipt-login-sub { font-size: 13px; color: var(--muted); margin: 0 0 22px; }
.ipt-login-error { background: #fdecec; border: 1px solid #eecaca; color: var(--red); font-size: 12.5px; border-radius: 9px; padding: 9px 12px; margin-bottom: 16px; }
.ipt-login #ipt-loginform { text-align: left; }
.ipt-login #ipt-loginform p { margin: 0 0 13px; }
.ipt-login #ipt-loginform label { display: block; font-size: 12px; font-weight: 600; color: var(--muted); margin-bottom: 5px; }
.ipt-login #ipt-loginform input[type=text], .ipt-login #ipt-loginform input[type=password] { width: 100%; box-sizing: border-box; font-family: inherit; font-size: 14px; padding: 11px 13px; border: 1px solid var(--line); border-radius: 10px; background: #fff; }
.ipt-login #ipt-loginform input:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px rgba(54,112,153,.13); }
.ipt-login .login-remember { font-weight: 400 !important; display: flex; align-items: center; gap: 7px; }
.ipt-login .login-remember label { display: inline; margin: 0; font-weight: 400; }
.ipt-login .login-submit .button, .ipt-login #wp-submit { width: 100%; font-family: 'Poppins',sans-serif; font-weight: 600; font-size: 14px; padding: 12px; border-radius: 10px; background: var(--ink); border: 1px solid var(--ink); color: #fff; cursor: pointer; }
.ipt-login .login-submit .button:hover, .ipt-login #wp-submit:hover { background: #16344e; }
.ipt-login-foot { margin-top: 18px; font-size: 12px; }
.ipt-login-foot a { color: var(--accent); text-decoration: none; }

/* Block-Ansicht */
.ipt-blocktabs { display: flex; gap: 4px; border-bottom: 1px solid var(--line); margin-bottom: 20px; overflow-x: auto; }
.ipt-blocktab { padding: 11px 18px; font-size: 13.5px; font-weight: 600; color: var(--muted); text-decoration: none; border-bottom: 2px solid transparent; white-space: nowrap; }
.ipt-blocktab:hover { color: var(--ink); }
.ipt-blocktab.active { color: var(--accent); border-bottom-color: var(--accent); }
.ipt-blockhead { display: flex; justify-content: space-between; align-items: flex-end; gap: 16px; margin-bottom: 18px; }
.ipt-group { font-family: 'Poppins',sans-serif; font-size: 14px; color: var(--ink); margin: 22px 0 10px; padding: 7px 14px; border-radius: 9px; border-left: 4px solid var(--ink); background: var(--soft); }
.ipt-group.ipt-grp-mgmt { color: var(--grp-mgmt-ink); background: var(--grp-mgmt-bg); border-left-color: var(--grp-mgmt); }
.ipt-group.ipt-grp-gesch { color: var(--grp-gesch-ink); background: var(--grp-gesch-bg); border-left-color: var(--grp-gesch); }
.ipt-group.ipt-grp-ress { color: var(--grp-ress-ink); background: var(--grp-ress-bg); border-left-color: var(--grp-ress); }
/* Prozesskarten-Kacheln: dezenter Gruppen-Rand */
.ipt-mapchip.ipt-grp-mgmt { border-left-color: var(--grp-mgmt); }
.ipt-mapchip.ipt-grp-gesch { border-left-color: var(--grp-gesch); }
.ipt-mapchip.ipt-grp-ress { border-left-color: var(--grp-ress); }
.ipt-mapchip.ipt-laufend { border-left-color: var(--warn); }
.ipt-mapchip.ipt-abgeschlossen { border-left-color: var(--ok); }
/* Schritt-Zeilen & Prozessverwaltung: Gruppen-Akzent links */
.ipt-step.ipt-grp-mgmt { border-left: 3px solid var(--grp-mgmt); }
.ipt-step.ipt-grp-gesch { border-left: 3px solid var(--grp-gesch); }
.ipt-step.ipt-grp-ress { border-left: 3px solid var(--grp-ress); }
.ipt-procrow.ipt-grp-mgmt, .ipt-procrow.ipt-grp-gesch, .ipt-procrow.ipt-grp-ress { border-left: 3px solid var(--line); padding-left: 10px; border-radius: 6px; }
.ipt-procrow.ipt-grp-mgmt { border-left-color: var(--grp-mgmt); }
.ipt-procrow.ipt-grp-gesch { border-left-color: var(--grp-gesch); }
.ipt-procrow.ipt-grp-ress { border-left-color: var(--grp-ress); }

/* Schritt-Liste */
.ipt-steplist { display: flex; flex-direction: column; gap: 8px; }
.ipt-step { display: flex; align-items: center; gap: 14px; background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 14px 18px; text-decoration: none; color: inherit; transition: all .13s; }
.ipt-step:hover { border-color: #bcccd9; box-shadow: 0 4px 12px rgba(28,63,94,.06); transform: translateY(-1px); }
.ipt-step-icon { width: 28px; height: 28px; flex-shrink: 0; border-radius: 50%; border: 1.5px solid var(--line); display: flex; align-items: center; justify-content: center; font-size: 13px; color: var(--faint); }
.ipt-step.ipt-abgeschlossen .ipt-step-icon { background: var(--ok); border-color: var(--ok); color: #fff; }
.ipt-step.ipt-laufend .ipt-step-icon { border-color: var(--warn); color: var(--warn); }
.ipt-step-review { border-style: dashed; }
.ipt-step-body { flex: 1; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.ipt-step-title { font-family: 'Poppins',sans-serif; font-weight: 600; font-size: 14px; color: var(--ink); }
.ipt-step-meta { font-size: 12px; color: var(--faint); }
.ipt-step-status { flex-shrink: 0; }

/* Schritt-Detail */
.ipt-back { display: inline-block; color: var(--muted); text-decoration: none; font-size: 13px; margin-bottom: 12px; font-weight: 600; }
.ipt-back:hover { color: var(--accent); }
.ipt-stephead { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; margin-bottom: 6px; }
.ipt-statusbar { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 20px; }
.ipt-statusbar form { display: flex; gap: 8px; flex-wrap: wrap; }
.ipt-themen { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
.ipt-them { background: #eef4f8; border: 1px solid #d5e3ee; color: var(--ink); border-radius: 6px; padding: 4px 11px; font-size: 12.5px; }
.ipt-notizbox { background: var(--soft); border-left: 3px solid var(--accent); padding: 10px 13px; border-radius: 4px; margin-top: 10px; font-size: 13px; white-space: pre-wrap; }

/* Schulungsblöcke A–F */
.ipt-bloecke { display: flex; flex-direction: column; gap: 8px; }
.ipt-block { display: flex; gap: 13px; border: 1px solid var(--line); border-radius: 12px; padding: 13px 15px; background: #fcfdfe; }
.ipt-block.ipt-abgeschlossen { background: #f2faf6; border-color: #cceadd; }
.ipt-block.ipt-laufend { border-color: var(--warn); }
.ipt-block-code { width: 42px; flex-shrink: 0; border-radius: 10px; background: var(--ink); color: #fff; font-family: 'Poppins',sans-serif; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1px; padding: 7px 0; }
.ipt-block-ico { font-size: 17px; line-height: 1; }
.ipt-block-letter { font-weight: 700; font-size: 12px; }
.ipt-block.ipt-abgeschlossen .ipt-block-code { background: var(--ok); }
.ipt-block.ipt-laufend .ipt-block-code { background: var(--warn); }
.ipt-block-body { flex: 1; }
.ipt-block-titel { font-family: 'Poppins',sans-serif; font-weight: 600; font-size: 14px; color: var(--ink); margin-bottom: 4px; display: flex; align-items: center; gap: 8px; }
.ipt-block-inhalt { font-size: 12.5px; color: var(--muted); line-height: 1.55; }
.ipt-block-actions { margin-top: 9px; display: flex; gap: 6px; }

/* Dokumente */
.ipt-docs { display: flex; flex-direction: column; gap: 12px; }
.ipt-doc { border: 1px solid var(--line); border-radius: 12px; padding: 15px 17px; background: #fcfdfe; position: relative; }
.ipt-doc-head { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-bottom: 8px; }
.ipt-doc-title { font-family: 'Poppins',sans-serif; font-weight: 600; color: var(--ink); }
.ipt-doc-head a { color: var(--accent); font-size: 12px; text-decoration: none; }
.ipt-doc-url { display: block; font-size: 11px; color: var(--muted); margin-bottom: 8px; }
.ipt-fields { display: flex; flex-direction: column; gap: 8px; }
.ipt-field { display: grid; grid-template-columns: 210px 1fr; gap: 8px; align-items: start; }
@media (max-width: 640px) { .ipt-field { grid-template-columns: 1fr; } }
.ipt-field-label { background: #eef4f8 !important; font-weight: 600; color: var(--ink); }
.ipt-doc-foot { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 10px; align-items: end; }
.ipt-doc-notiz { font-size: 11px; color: var(--muted); }
.ipt-newfield { font-size: 12px; }
.ipt-doc-del { text-align: right; margin-top: 10px; padding-top: 8px; border-top: 1px dashed var(--line); }
.ipt-doc-actions { display: flex; gap: 8px; flex: none; }
.ipt-doc-title { flex: 1; min-width: 0; }
.ipt-doc-upload { display: flex; flex-direction: column; gap: 5px; font-size: 11px; color: var(--muted); margin-bottom: 10px; }
.ipt-doc-upload input[type=file] { font-size: 12px; }
.ipt-doc-filelink { font-size: 11.5px; }
.ipt-doc-notiz2 { display: flex; flex-direction: column; gap: 5px; font-size: 11px; font-weight: 600; color: var(--muted); margin-bottom: 8px; }
.ipt-doc-legacy { margin: 8px 0; padding: 8px 10px; background: #f6f9fb; border-radius: 8px; }
.ipt-linkbtn { background: none; border: none; color: var(--faint); font-size: 11px; cursor: pointer; text-decoration: underline; }
.ipt-linkbtn:hover { color: var(--red); }
.ipt-doc-kern { display: flex; align-items: center; gap: 6px; font-size: 12px; color: var(--muted); margin-top: 10px; cursor: pointer; }
.ipt-doc-kern input { margin: 0; }
.ipt-kerntag { font-size: 10.5px; font-weight: 700; color: var(--accent); background: #eef4f8; border-radius: 6px; padding: 2px 8px; }

/* Forms */
.ipt-form { display: flex; flex-direction: column; gap: 13px; }
.ipt-form label { display: flex; flex-direction: column; gap: 5px; font-size: 12px; font-weight: 600; color: var(--muted); }
.ipt-form-row { display: flex; gap: 12px; flex-wrap: wrap; }
.ipt-form-row label { flex: 1; min-width: 220px; }
@media (max-width: 640px) { .ipt-form-row { flex-direction: column; } }
.ipt-input { font-family: inherit; font-size: 13px; padding: 9px 12px; border: 1px solid var(--line); border-radius: 9px; background: #fff; color: var(--text); width: 100%; font-weight: 400; }
.ipt-input:focus { outline: none; border-color: var(--accent); box-shadow: 0 0 0 3px rgba(54,112,153,.13); }
textarea.ipt-input { resize: vertical; }
.ipt-form-actions { margin-top: 4px; }
.ipt-inline-form { display: flex; gap: 8px; flex-wrap: wrap; align-items: center; }
.ipt-inline-form .ipt-input { width: auto; flex: 1; min-width: 160px; }
.ipt-addcard { background: #fcfdfe; border-style: dashed; }
.ipt-ms-ist { font-size: 11px; color: var(--muted); align-self: flex-end; padding-bottom: 9px; min-width: 90px; }

/* Buttons */
.ipt-btn { font-family: 'Poppins',sans-serif; font-size: 13px; font-weight: 600; padding: 9px 18px; border-radius: 9px; border: 1px solid var(--line); background: #fff; color: var(--ink); cursor: pointer; text-decoration: none; display: inline-flex; align-items: center; gap: 6px; transition: all .13s; }
.ipt-btn:hover { border-color: #bcccd9; background: var(--soft); }
.ipt-btn-primary { background: var(--ink); border-color: var(--ink); color: #fff; }
.ipt-btn-primary:hover { background: #16344e; border-color: #16344e; color: #fff; }
.ipt-btn-ghost { background: transparent; color: var(--muted); }
.ipt-btn-sm { padding: 5px 12px; font-size: 12px; }
.ipt-btn-xs { padding: 4px 10px; font-size: 11px; font-weight: 500; }
.ipt-btn-xs.active { background: var(--accent); border-color: var(--accent); color: #fff; }
.ipt-btn-lg { padding: 13px 26px; font-size: 15px; }
.ipt-btn-danger { background: #fff; border-color: #eecaca; color: var(--red); }
.ipt-btn-danger:hover { background: #fdecec; border-color: var(--red); color: var(--red); }
.ipt-danger-row { margin-top: 18px; }
.ipt-danger-card { border-color: #eecaca; }
.ipt-done-all { background: linear-gradient(135deg,#f2faf6,#fff); border-color: #cceadd; }
.ipt-done-all h2 { color: var(--ok); }

/* Kerndokumente */
.ipt-kernhead { display: flex; justify-content: space-between; align-items: flex-start; gap: 16px; margin-bottom: 16px; }
.ipt-kernstat { background: #fff; border: 1px solid var(--line); border-radius: 999px; padding: 7px 16px; font-size: 13px; white-space: nowrap; color: var(--ink); }
.ipt-kernstat strong { color: var(--accent); font-family: 'Poppins',sans-serif; }
.ipt-kernlist { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
@media (max-width: 720px) { .ipt-kernlist { grid-template-columns: 1fr; } }
.ipt-kern { display: flex; align-items: center; gap: 12px; border: 1px solid var(--line); border-radius: 12px; padding: 12px 15px; text-decoration: none; color: inherit; background: #fff; transition: all .13s; }
.ipt-kern:hover { border-color: #bcccd9; box-shadow: 0 4px 12px rgba(28,63,94,.06); }
.ipt-kern-done { background: #f6fbf8; border-color: #cfeadd; }
.ipt-kern-icon { font-size: 16px; }
.ipt-kern-body { flex: 1; display: flex; flex-direction: column; }
.ipt-kern-title { font-family: 'Poppins',sans-serif; font-weight: 600; font-size: 13.5px; color: var(--ink); }
.ipt-kern-step { font-size: 11.5px; color: var(--faint); }
.ipt-kern-open { font-size: 11px; color: var(--accent); }

/* Benutzerverwaltung */
.ipt-pill-admin { border-color: #d9cfe8; color: #6a4ca0; }
.ipt-pill-admin.active { background: #6a4ca0; border-color: #6a4ca0; color: #fff; }
.ipt-rolegrid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px,1fr)); gap: 14px; margin-bottom: 18px; }
.ipt-rolecard { background: #fff; border: 1px solid var(--line); border-radius: 14px; padding: 16px 18px; border-top: 3px solid var(--line); }
.ipt-rolecard p { margin: 8px 0 0; font-size: 12.5px; color: var(--muted); line-height: 1.5; }
.ipt-role-super { border-top-color: #6a4ca0; }
.ipt-role-intern { border-top-color: var(--accent); }
.ipt-role-extern { border-top-color: var(--faint); }
.ipt-role-badge { font-family: 'Poppins',sans-serif; font-weight: 600; font-size: 13px; color: var(--ink); }
.ipt-rolechip { display: inline-block; font-size: 11.5px; font-weight: 600; padding: 3px 10px; border-radius: 999px; }
.ipt-rolechip-super { background: #efe9fa; color: #6a4ca0; }
.ipt-rolechip-intern { background: #e7f0f6; color: var(--accent-d); }
.ipt-rolechip-extern { background: #eef1f4; color: var(--muted); }
.ipt-usertable td { vertical-align: middle; }
.ipt-userform { display: flex; flex-direction: column; gap: 12px; }
.ipt-userform-foot { display: flex; align-items: center; justify-content: space-between; gap: 16px; flex-wrap: wrap; }
.ipt-check { display: inline-flex; align-items: center; gap: 8px; font-size: 12.5px; color: var(--muted); font-weight: 400; }
.ipt-check input { width: auto; }
.ipt-flash { padding: 12px 16px; border-radius: 10px; font-size: 13px; margin-bottom: 16px; font-weight: 600; }
.ipt-flash-ok { background: #eaf7f0; color: #216b4c; border: 1px solid #bfe5d2; }
.ipt-flash-err { background: #fdeeee; color: #a3312f; border: 1px solid #f2c9c8; }

/* Deploy */
.ipt-pill-dev { border-color: #cfe1f0; color: var(--accent); }
.ipt-pill-dev.active { background: var(--accent); border-color: var(--accent); color: #fff; }
.ipt-deploy-card { background: linear-gradient(135deg,#eef5fb,#fff); border-color: #cfe1f0; }
.ipt-deploy-meta { display: flex; gap: 18px; flex-wrap: wrap; margin-top: 14px; font-size: 12px; color: var(--muted); }
.ipt-deploy-meta strong { color: var(--ink); font-weight: 600; }
.ipt-log { background: #16283a; color: #cfe0ec; padding: 14px 16px; border-radius: 10px; overflow: auto; max-height: 320px; font-family: ui-monospace, 'SF Mono', Menlo, monospace; font-size: 12px; line-height: 1.6; margin: 0; }

/* Utilities */
.ipt-doc-actions { flex-shrink: 0; }
