:root {
    --app-primary: #4f46e5;
    --app-primary-dark: #4338ca;
    --app-gradient: linear-gradient(135deg, #4f46e5 0%, #7c3aed 100%);
}

/* Navigationsleiste & Seitenleiste */
.app-navbar { background: var(--app-gradient); box-shadow: 0 2px 8px rgba(0,0,0,.15); }
.app-sidebar { background: #fff; min-height: calc(100vh - 56px); border-right: 1px solid #e5e7eb; }
.app-sidebar .nav-link { color: #374151; border-radius: .375rem; margin: 0 .5rem .125rem; padding: .5rem .75rem; }
.app-sidebar .nav-link:hover { background: #f3f4f6; color: var(--app-primary); }
.app-sidebar .nav-link.active { background: #eef2ff; color: var(--app-primary); font-weight: 600; }
.app-main { min-height: calc(100vh - 56px); }

/* Karten */
.card { border: 1px solid #e5e7eb; border-radius: .5rem; box-shadow: 0 1px 3px rgba(0,0,0,.04); }
.kpi-card { background: var(--app-gradient); color: #fff; border-radius: .5rem; padding: 1.25rem; }
.kpi-card .kpi-label { font-size: .8rem; opacity: .85; text-transform: uppercase; letter-spacing: .03em; }
.kpi-card .kpi-value { font-size: 1.75rem; font-weight: 700; line-height: 1.2; }
.kpi-card .kpi-delta { font-size: .8rem; opacity: .9; }

/* Schaltflächen */
.btn-primary { background: var(--app-primary); border-color: var(--app-primary); }
.btn-primary:hover { background: var(--app-primary-dark); border-color: var(--app-primary-dark); }

/* Tabellen */
.table-hover tbody tr { cursor: pointer; }
.table thead th { font-size: .8rem; text-transform: uppercase; letter-spacing: .03em; color: #6b7280; border-bottom-width: 1px; }

/* Phasen-/Status-Badges */
.badge-stage-lead     { background: #e5e7eb; color: #374151; }
.badge-stage-proposal { background: #dbeafe; color: #1e40af; }
.badge-stage-contract { background: #fef3c7; color: #92400e; }
.badge-stage-active   { background: #d1fae5; color: #065f46; }
.badge-stage-won      { background: #10b981; color: #fff; }
.badge-stage-lost     { background: #ef4444; color: #fff; }

/* Kanban */
.kanban { display: flex; gap: 1rem; overflow-x: auto; padding-bottom: 1rem; }
.kanban-column { flex: 0 0 280px; background: #f3f4f6; border-radius: .5rem; padding: .75rem; }
.kanban-card { background: #fff; border-radius: .375rem; padding: .75rem; margin-bottom: .5rem; box-shadow: 0 1px 2px rgba(0,0,0,.06); cursor: grab; }

/* Anmeldeseiten */
.auth-body { background: var(--app-gradient); min-height: 100vh; display: flex; align-items: center; justify-content: center; padding: 1rem; }
.auth-card { background: #fff; border-radius: .75rem; padding: 2.5rem; width: 100%; max-width: 400px; }

/* Hilfsklassen */
.text-truncate-2 { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.cursor-pointer { cursor: pointer; }

/* Alpine */
[x-cloak] { display: none !important; }

/* Kanban-Ergänzungen */
.kanban-column.kanban-over { outline: 2px dashed var(--app-primary); outline-offset: -2px; background: #eef2ff; }
.kanban-drop-zone { flex: 0 0 160px; background: #fafafa; border: 2px dashed #e5e7eb; display: flex; align-items: center; justify-content: center; }
.border-dashed { border-style: dashed !important; }

/* Kalender */
.calendar-grid { display: grid; grid-template-columns: repeat(7, 1fr); }
.calendar-head { padding: .5rem; font-size: .75rem; text-transform: uppercase; color: #6b7280; text-align: center; border-bottom: 1px solid #e5e7eb; }
.calendar-cell { min-height: 110px; border-right: 1px solid #f3f4f6; border-bottom: 1px solid #f3f4f6; padding: .25rem; }
.calendar-cell:nth-child(7n) { border-right: 0; }
.calendar-empty { background: #fafafa; }
.calendar-weekend { background: #fcfcfc; }
.calendar-today { background: #eef2ff; }
.calendar-day { font-size: .75rem; color: #6b7280; margin-bottom: .25rem; }
.calendar-today .calendar-day { color: var(--app-primary); font-weight: 700; }
.calendar-event { display: block; font-size: .72rem; line-height: 1.2; padding: 2px 4px; margin-bottom: 2px; background: #f3f4f6; border-left: 3px solid #999; border-radius: 2px; color: #111; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.calendar-event:hover { background: #e5e7eb; }

/* Zeilen des Kampagnen-Assistenten */
.product-row { background: #fafafa; border: 1px solid #e5e7eb; border-radius: .375rem; padding: .75rem; margin-bottom: .5rem; }
.channel-pill { cursor: pointer; border: 1px solid #e5e7eb; border-radius: 2rem; padding: .35rem .9rem; font-size: .85rem; background: #fff; }
.channel-pill.active { border-color: var(--app-primary); background: #eef2ff; color: var(--app-primary); font-weight: 600; }
