:root{--bg:#0b0f19;--panel:#121827;--panel2:#161e31;--line:#263148;--text:#eef3ff;--muted:#9aa8c7;--brand:#7c5cff;--ok:#18a058;--bad:#d14343;--warn:#d9a441;--input:#0d1322}
*{box-sizing:border-box}body{font-family:Inter,Arial,sans-serif;background-color:#080b12;background-image:radial-gradient(circle at top left,#18223a 0,#0b0f19 35%,#080b12 100%);background-repeat:no-repeat;background-attachment:fixed;background-size:cover;color:var(--text);margin:0;min-height:100vh}a{color:#b9c7ff;text-decoration:none}a:hover{text-decoration:underline}button,.button{background:var(--brand);color:#fff;border:0;padding:10px 14px;border-radius:10px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:700}button.secondary,.button.secondary{background:#23304a}button.danger,.danger{background:var(--bad)}button.ghost,.button.ghost{background:transparent;border:1px solid var(--line)}input,textarea,select{width:100%;padding:11px 12px;border-radius:10px;border:1px solid var(--line);background:var(--input);color:#fff;outline:none}input:focus,textarea:focus,select:focus{border-color:#7c5cff;box-shadow:0 0 0 3px rgba(124,92,255,.16)}textarea{resize:vertical}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px;border-bottom:1px solid var(--line);vertical-align:top}th{color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.05em}.topbar{position:sticky;top:0;z-index:10;display:flex;justify-content:space-between;align-items:center;padding:14px 22px;background:rgba(13,18,31,.92);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}.brand{font-weight:900;letter-spacing:.02em}.topnav{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.topnav a{padding:8px 10px;border-radius:9px;color:#dbe4ff}.topnav a:hover{background:#1b253a;text-decoration:none}.topnav form{margin:0}.topnav button{padding:8px 10px;background:#23304a}.container{max-width:1280px;margin:0 auto;padding:22px}.hero{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:18px}.hero h1{margin:0 0 6px;font-size:30px}.hero p{margin:0;color:var(--muted)}.grid{display:grid;gap:18px;margin-bottom:18px}.grid.two{grid-template-columns:repeat(2,minmax(0,1fr))}.grid.three{grid-template-columns:repeat(3,minmax(0,1fr))}.grid.four{grid-template-columns:repeat(4,minmax(0,1fr))}.card{background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(255,255,255,.015));border:1px solid var(--line);border-radius:18px;padding:18px;box-shadow:0 18px 60px rgba(0,0,0,.24)}.card h1,.card h2,.card h3{margin-top:0}.muted{color:var(--muted)}.small{font-size:12px}.stack{display:flex;flex-direction:column;gap:12px}.row{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.right{margin-left:auto}.stat{display:flex;flex-direction:column;gap:6px}.stat .num{font-size:28px;font-weight:900}.stat .label{color:var(--muted);font-size:13px}.badge,.mini-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:999px;background:#25314a;color:#dce5ff;font-size:13px}.mini-badge{font-size:12px;padding:4px 8px;margin:2px}.badge.ok{background:rgba(24,160,88,.16);color:#8ff0bd;border:1px solid rgba(24,160,88,.35)}.badge.bad{background:rgba(209,67,67,.16);color:#ffaaaa;border:1px solid rgba(209,67,67,.35)}.badge.warn{background:rgba(217,164,65,.16);color:#ffe0a3;border:1px solid rgba(217,164,65,.35)}.alert{padding:12px 14px;border-radius:12px;margin:12px 0}.alert.error{background:rgba(209,67,67,.14);border:1px solid rgba(209,67,67,.45)}.alert.ok{background:rgba(24,160,88,.14);border:1px solid rgba(24,160,88,.45)}.key-box{white-space:pre-wrap;word-break:break-all;background:#080d18;border:1px solid var(--line);padding:16px;border-radius:12px}.auth-card{max-width:430px;margin:60px auto}.section-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 14px}.quick-links{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.quick-link{padding:16px;border:1px solid var(--line);border-radius:16px;background:#121b2d}.quick-link strong{display:block;margin-bottom:6px}.quick-link span{color:var(--muted);font-size:13px}.inline-form{display:inline}.day-block{margin-bottom:22px}.day-block h2{margin:0 0 10px}.hidden{display:none!important}.cap-list{display:flex;gap:8px;flex-wrap:wrap}.api-test-result{min-height:24px;color:var(--muted)}.viewer-chart{height:90px;display:flex;align-items:flex-end;gap:4px}.viewer-bar{flex:1;min-width:4px;background:#3d4f78;border-radius:6px 6px 0 0}.viewer-bar.zero{opacity:.25}.download-box{display:flex;align-items:center;justify-content:space-between;gap:14px}.admin-actions{display:flex;flex-direction:column;gap:8px;min-width:160px}@media(max-width:1100px){.grid.two,.grid.three,.grid.four,.quick-links{grid-template-columns:1fr}.hero{flex-direction:column}.container{padding:14px}.topbar{position:static;align-items:flex-start;flex-direction:column;gap:10px}}

.top-gap{margin-top:16px}.checkbox-line{display:flex;align-items:center;gap:10px}.checkbox-line input{width:auto}.compact-form{max-width:720px}.action-card{min-height:100%}button:disabled,.button.disabled{opacity:.45;cursor:not-allowed}.pill{display:inline-flex;padding:5px 9px;border-radius:999px;background:#25314a}.pill.ok{background:rgba(24,160,88,.16);color:#8ff0bd}.pill.muted{background:#25314a;color:var(--muted)}.danger-soft{background:rgba(209,67,67,.28)!important;color:#ffb8b8!important;border:1px solid rgba(209,67,67,.38)!important}.muted-text{color:var(--muted)}.table-wrap{overflow-x:auto}.row-actions{display:flex;gap:8px;align-items:center}.button.small,button.small{padding:7px 10px;font-size:12px}

.next-stream-card{margin-bottom:18px}.next-stream-line{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.planner-toolbar{margin-bottom:18px}.planner-date-form{display:flex;gap:10px;align-items:center;margin:0}.planner-date-form input{min-width:170px}.planner-month{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}.planner-week-head{color:var(--muted);font-weight:800;text-align:center;padding:6px}.planner-day{min-height:145px;padding:12px}.planner-day.muted-day{opacity:.48}.planner-day-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.planner-day-head a{display:inline-flex;align-items:center;justify-content:center;width:26px;height:26px;border-radius:8px;background:#23304a;color:#fff;text-decoration:none}.planner-events{display:flex;flex-direction:column;gap:6px}.planner-event{display:flex;flex-direction:column;gap:2px;padding:8px;border-radius:10px;background:rgba(124,92,255,.14);border:1px solid rgba(124,92,255,.28);color:#eef3ff;text-decoration:none;overflow:hidden}.planner-event:hover{text-decoration:none;background:rgba(124,92,255,.22)}.planner-event span{font-size:12px;color:#c3cff0}.planner-event strong{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.planner-event em{font-size:12px;color:var(--muted);font-style:normal}.planner-event.conflict{background:rgba(217,164,65,.18);border-color:rgba(217,164,65,.5)}.planner-event.wide{flex-direction:row;gap:12px;align-items:center}.planner-week{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:10px}.planner-week-day{min-height:420px;padding:12px}.planner-day-view{padding:0;overflow:hidden}.planner-day-grid{position:relative}.planner-hour-scale{position:relative;z-index:1}.planner-hour-row{display:grid;grid-template-columns:90px 1fr;height:54px;min-height:54px;border-bottom:1px solid var(--line)}.planner-hour-row:last-child{border-bottom:0}.planner-hour-label{padding:14px;color:var(--muted);border-right:1px solid var(--line)}.planner-hour-events{padding:8px}.planner-day-event-layer{position:absolute;z-index:2;top:0;left:90px;right:0;height:1296px;pointer-events:none}.planner-event.day-span{position:absolute;left:8px;right:8px;display:flex;flex-direction:column;justify-content:flex-start;gap:3px;pointer-events:auto}.planner-event.day-span strong{white-space:normal}.planner-overlay-backdrop{display:none}.planner-editor{position:fixed;top:84px;right:24px;width:min(520px,calc(100vw - 32px));max-height:calc(100vh - 110px);overflow:auto;z-index:20;box-shadow:0 24px 80px rgba(0,0,0,.42)}.planner-editor .section-title{position:sticky;top:-18px;background:linear-gradient(180deg,#121827,#121827);padding-top:4px;z-index:2}@media(max-width:1100px){.planner-month,.planner-week{grid-template-columns:1fr}.planner-week-head{display:none}.planner-day,.planner-week-day{min-height:auto}.planner-editor{top:16px;right:16px}.planner-event.wide{flex-direction:column;align-items:flex-start}.planner-hour-row{grid-template-columns:70px 1fr}.planner-day-event-layer{left:70px}}

.planner-sync-box{margin-top:14px;padding:12px;border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.035)}.inline-form{display:inline-flex;margin-right:8px}.top-gap{margin-top:10px}.alert.success{border-color:rgba(63,185,80,.45);background:rgba(63,185,80,.12);color:#d8ffe1}

:root{
  --primary:#9146FF;
  --primary-glow:#a970ff;
  --bg:#0b0b12;
}

body{
  background: radial-gradient(circle at top, rgba(145,70,255,0.25), transparent 60%), #0b0b12;
}

.card{
  border:1px solid rgba(145,70,255,0.25);
  box-shadow:0 0 20px rgba(145,70,255,0.08);
}

.button{
  background:linear-gradient(135deg,#9146FF,#a970ff);
  border:none;
}

.button.secondary{
  background:#1a1a2e;
  border:1px solid rgba(145,70,255,0.3);
}

.external-calendar-box{margin-bottom:18px}
.external-event-list{display:flex;flex-wrap:wrap;gap:10px}
.external-event-pill{display:flex;flex-direction:column;gap:3px;padding:10px 12px;border-radius:12px;background:rgba(255,255,255,.05);border:1px solid rgba(145,70,255,.24)}
.external-event-pill span,.external-event-pill em{font-size:12px;color:var(--muted);font-style:normal}
.clean-list{display:grid;gap:8px;margin:0;padding-left:18px;color:var(--muted)}
.planner-event.external-calendar-event{background:rgba(255,255,255,.06);border-color:rgba(145,70,255,.42);border-style:dashed;color:#eef3ff;cursor:default}
.planner-event.external-calendar-event:hover{background:rgba(255,255,255,.08)}
.planner-event.external-calendar-event strong::before{content:'Kalender · ';font-weight:700;color:#c3cff0}
.planner-event.day-span.external-calendar-event{left:18px;right:18px;z-index:3}

.checkbox-list{display:grid;gap:6px;margin-bottom:8px}.checkbox-list label{display:flex;align-items:center;gap:8px;color:var(--text);font-size:13px}.checkbox-list input{width:auto}.permissions-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:14px 0}.permission-item{display:grid;grid-template-columns:auto 1fr;gap:4px 8px;align-items:start;padding:10px;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.03)}.permission-item input{width:auto;margin-top:3px}.permission-item small{grid-column:2;color:var(--muted);font-size:11px}.permission-item span{font-weight:700}@media(max-width:900px){.permissions-grid{grid-template-columns:1fr}}

/* ACP */
.acp-body {
  min-height: 100vh;
  display: grid;
  grid-template-columns: 280px minmax(0, 1fr);
  background: #090b13;
}

.acp-sidebar {
  position: sticky;
  top: 0;
  height: 100vh;
  padding: 22px;
  background: rgba(16, 18, 31, 0.98);
  border-right: 1px solid rgba(255,255,255,0.08);
}

.acp-brand {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 26px;
}

.acp-brand img {
  width: 42px;
  height: 42px;
  object-fit: contain;
  filter: drop-shadow(0 0 10px rgba(145,70,255,0.55));
}

.acp-brand strong,
.acp-brand span {
  display: block;
}

.acp-brand span {
  color: rgba(255,255,255,0.62);
  font-size: 13px;
}

.acp-brand .acp-version {
  display: inline-flex;
  width: fit-content;
  margin-top: 6px;
  padding: 3px 7px;
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 999px;
  background: rgba(124,92,255,0.16);
  color: #dce5ff;
  font-size: 11px;
  font-weight: 800;
}

.acp-nav {
  display: grid;
  gap: 8px;
}

.acp-nav a {
  color: #fff;
  text-decoration: none;
  padding: 11px 12px;
  border-radius: 10px;
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.06);
}

.acp-nav a:hover {
  background: rgba(145,70,255,0.18);
  border-color: rgba(145,70,255,0.42);
}

.acp-shell {
  min-width: 0;
}

.acp-topbar {
  position: sticky;
  top: 0;
  z-index: 20;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 20px;
  padding: 22px 28px;
  background: rgba(9, 11, 19, 0.92);
  backdrop-filter: blur(10px);
  border-bottom: 1px solid rgba(255,255,255,0.08);
}

.acp-topbar h1 {
  margin: 0;
}

.acp-topbar p {
  margin: 4px 0 0;
  color: rgba(255,255,255,0.62);
}

.acp-content {
  padding: 28px;
}

.stats-grid,
.quick-grid,
.form-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
  gap: 14px;
}

.stat-card span,
.stat-card small {
  display: block;
  color: rgba(255,255,255,0.62);
}

.stat-card strong {
  display: block;
  font-size: 34px;
  margin: 8px 0;
}

.quick-card,
.button-link {
  display: block;
  color: #fff;
  text-decoration: none;
  padding: 14px;
  border-radius: 12px;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.08);
}

.quick-card strong,
.quick-card span {
  display: block;
}

.quick-card span {
  margin-top: 6px;
  color: rgba(255,255,255,0.62);
}

.nested-card {
  margin-top: 16px;
}

.notice {
  margin-bottom: 16px;
  padding: 12px 14px;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,0.08);
}

.notice.success {
  background: rgba(33, 186, 117, 0.12);
  border-color: rgba(33, 186, 117, 0.28);
}

.notice.error {
  background: rgba(255, 70, 70, 0.12);
  border-color: rgba(255, 70, 70, 0.28);
}

.inline-form {
  display: flex;
  gap: 8px;
  align-items: center;
}

.danger-form {
  margin-top: 10px;
}

.danger-form button {
  background: rgba(190, 40, 40, 0.85);
}

.readonly-permissions .permission-item {
  opacity: 0.76;
}

@media (max-width: 900px) {
  .acp-body {
    grid-template-columns: 1fr;
  }

  .acp-sidebar {
    position: relative;
    height: auto;
  }

  .acp-nav {
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
  }
}

.tenant-switch-form {
  display: inline-flex;
  align-items: center;
  margin: 0;
}

.tenant-switch-form select {
  min-width: 160px;
  padding: 8px 10px;
  border-radius: 10px;
  border: 1px solid rgba(255,255,255,0.18);
  background: rgba(15, 15, 25, 0.9);
  color: #fff;
}

.alert.success {
  border-color: rgba(74, 222, 128, 0.45);
  background: rgba(22, 163, 74, 0.15);
}

.alert.danger {
  border-color: rgba(248, 113, 113, 0.45);
  background: rgba(185, 28, 28, 0.15);
}
.slot-suggestions-box{margin-bottom:18px}.slot-suggestion-form{display:flex;gap:12px;align-items:flex-end;flex-wrap:wrap;margin-bottom:14px}.slot-suggestion-form label{min-width:150px}.slot-suggestion-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:10px}.slot-suggestion{display:flex;flex-direction:column;gap:4px;padding:10px 12px;border:1px solid rgba(63,185,80,.35);border-radius:12px;background:rgba(63,185,80,.1);color:#eef3ff;text-decoration:none}.slot-suggestion:hover{text-decoration:none;background:rgba(63,185,80,.16)}.slot-suggestion span{color:var(--muted);font-size:13px}.conflict-detail-box{border:1px solid rgba(217,164,65,.42);background:rgba(217,164,65,.1);border-radius:14px;padding:12px;display:flex;flex-direction:column;gap:8px}.conflict-detail{display:grid;grid-template-columns:120px 1fr;gap:6px 12px;padding:8px;border-radius:10px;background:rgba(255,255,255,.04)}.conflict-detail span{font-size:12px;color:#ffd98a;font-weight:800}.conflict-detail strong{font-size:13px}.conflict-detail em{grid-column:2;color:var(--muted);font-style:normal;font-size:12px}.conflict-detail.hard{border-left:4px solid #d9a441}.conflict-detail.soft{border-left:4px solid #7c5cff}@media(max-width:720px){.conflict-detail{grid-template-columns:1fr}.conflict-detail em{grid-column:1}.slot-suggestion-form{align-items:stretch}.slot-suggestion-form label,.slot-suggestion-form button{width:100%}}

.calendar-selection-form {
  display: flex;
  flex-direction: column;
  gap: 0.6rem;
  padding: 0.75rem 0;
}

.calendar-selection-list {
  display: flex;
  flex-wrap: wrap;
  gap: 0.5rem;
}

.calendar-selection-item {
  display: inline-flex;
  align-items: center;
  gap: 0.35rem;
  padding: 0.35rem 0.55rem;
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 0.5rem;
}

/* Kalenderquellen + dauerhafte Konfliktanzeige */
.dashboard-conflict-box{margin-top:12px;padding:12px;border:1px solid rgba(217,164,65,.45);background:rgba(217,164,65,.10);border-radius:14px;display:flex;flex-direction:column;gap:10px}.calendar-source-list{display:flex;flex-wrap:wrap;gap:8px}.calendar-source-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 9px;border-radius:999px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.07);font-size:12px;font-weight:800}.calendar-source-chip.hard{box-shadow:inset 0 0 0 1px rgba(217,164,65,.28)}.calendar-source-chip.soft{opacity:.86}.top-gap-small{margin-top:8px}.planner-conflict-inline{display:block;margin-top:3px;color:#ffd98a;font-size:11px;line-height:1.25;white-space:normal}.external-event-pill{border-left:4px solid rgba(255,255,255,.24)}.planner-event.external-calendar-event{border-left-width:4px}.calendar-source-icloud{border-color:rgba(82,156,255,.55)!important;background:rgba(82,156,255,.12)!important}.calendar-source-caldav{border-color:rgba(124,92,255,.55)!important;background:rgba(124,92,255,.12)!important}.calendar-source-google{border-color:rgba(63,185,80,.55)!important;background:rgba(63,185,80,.12)!important}.calendar-source-outlook,.calendar-source-microsoft{border-color:rgba(46,160,255,.55)!important;background:rgba(46,160,255,.12)!important}.calendar-source-ical,.calendar-source-ical_url,.calendar-source-ics{border-color:rgba(255,184,108,.55)!important;background:rgba(255,184,108,.12)!important}.calendar-source-stream{border-color:rgba(217,164,65,.55)!important;background:rgba(217,164,65,.12)!important}.conflict-detail.calendar-source-icloud{border-left-color:#529cff!important}.conflict-detail.calendar-source-caldav{border-left-color:#7c5cff!important}.conflict-detail.calendar-source-google{border-left-color:#3fb950!important}.conflict-detail.calendar-source-outlook,.conflict-detail.calendar-source-microsoft{border-left-color:#2ea0ff!important}.conflict-detail.calendar-source-ical,.conflict-detail.calendar-source-ical_url,.conflict-detail.calendar-source-ics{border-left-color:#ffb86c!important}.conflict-detail.calendar-source-stream{border-left-color:#d9a441!important}.conflict-detail-box.empty{border-color:rgba(63,185,80,.32);background:rgba(63,185,80,.08)}

.planner-recurring-inline {
  display: inline-block;
  margin-top: 0.25rem;
  padding: 0.1rem 0.35rem;
  border-radius: 999px;
  font-size: 0.72rem;
  line-height: 1;
  background: rgba(255, 255, 255, 0.12);
  color: var(--muted, #9ca3af);
}


/* Recurring + conflict hardening */
.planner-event.conflict,
.planner-event.day-span.conflict {
  background: rgba(220, 53, 69, .22) !important;
  border-color: rgba(220, 53, 69, .88) !important;
  box-shadow: inset 0 0 0 1px rgba(220, 53, 69, .35);
}
.planner-conflict-inline {
  color: #ffb3b9 !important;
  font-weight: 800;
}
.conflict-detail-box:not(.empty),
.dashboard-conflict-box {
  border-color: rgba(220, 53, 69, .75) !important;
  background: rgba(220, 53, 69, .12) !important;
}
.conflict-detail.hard,
.calendar-source-chip.hard {
  border-color: rgba(220, 53, 69, .88) !important;
  background: rgba(220, 53, 69, .18) !important;
  color: #ffd7dc;
}
.conflict-detail.hard {
  border-left-color: #dc3545 !important;
}
.badge.warn,
.next-stream-line .badge.warn {
  background: rgba(220, 53, 69, .2) !important;
  border-color: rgba(220, 53, 69, .7) !important;
  color: #ffd7dc !important;
}
.external-event-pill,
.planner-event.external-calendar-event {
  border-color: var(--calendar-border, var(--calendar-color, #529cff)) !important;
  background: var(--calendar-bg, rgba(82,156,255,.18)) !important;
}
.planner-event.external-calendar-event.conflict,
.external-event-pill.conflict {
  border-color: rgba(255,59,92,.95) !important;
  background: rgba(255,59,92,.22) !important;
  color: #ffdce4 !important;
}
.planner-recurring-inline {
  display: inline-flex;
  width: max-content;
  padding: 2px 6px;
  border-radius: 999px;
  border: 1px solid rgba(124,92,255,.45);
  background: rgba(124,92,255,.16);
  color: #d8d0ff;
  font-size: 10px;
  font-weight: 800;
}

.calendar-color-form {
  display: inline-flex;
  align-items: center;
  gap: 6px;
}
.calendar-color-form input[type="color"] {
  width: 38px;
  height: 30px;
  padding: 0;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 8px;
  background: transparent;
}
.calendar-color-form button {
  padding: 6px 9px;
  min-height: auto;
}

.viewer-success-card{margin-bottom:18px}.compact-stats{margin-bottom:16px}.mini-stat{padding:14px}.viewer-planning-grid{margin-bottom:0}.viewer-rank-list{display:flex;flex-direction:column;gap:8px}.viewer-rank-row{display:flex;justify-content:space-between;gap:10px;align-items:center;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.025);padding:10px 12px}.viewer-rank-row strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.viewer-rank-row span{color:var(--muted);font-size:13px;white-space:nowrap}
.btn{background:var(--brand);color:#fff;border:0;padding:10px 14px;border-radius:10px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:700;text-decoration:none}.btn:hover{text-decoration:none}.btn.ghost{background:transparent;border:1px solid var(--line);color:#dbe4ff}.viewer-stats-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px;flex-wrap:wrap;margin-bottom:14px}.viewer-date-form{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:0}.viewer-date-form input{width:auto;min-width:160px}.viewer-session-list{display:flex;flex-direction:column;gap:14px}.viewer-session-panel{border:1px solid var(--line);border-radius:14px;background:rgba(255,255,255,.025);padding:14px}.viewer-session-main{display:flex;justify-content:space-between;gap:14px;align-items:flex-start;flex-wrap:wrap}.viewer-session-main h3{margin:0 0 5px}.viewer-session-main p{margin:0}.viewer-session-kpis{display:grid;grid-template-columns:repeat(3,minmax(86px,1fr));gap:8px;min-width:min(390px,100%)}.viewer-session-kpis span{display:flex;flex-direction:column;gap:2px;padding:9px 10px;border:1px solid rgba(255,255,255,.08);border-radius:10px;background:rgba(0,0,0,.16)}.viewer-session-kpis strong{font-size:20px}.viewer-session-kpis small{color:var(--muted);font-size:11px}.viewer-session-kpis .positive strong{color:#8ff0bd}.viewer-session-kpis .negative strong{color:#ffb3b9}.viewer-session-kpis .neutral strong{color:#dce5ff}.viewer-sparkline{height:120px;display:flex;align-items:flex-end;gap:3px;margin:14px 0 8px;padding:10px 10px 0;border:1px solid rgba(255,255,255,.08);border-radius:12px;background:linear-gradient(180deg,rgba(255,255,255,.035),rgba(0,0,0,.12))}.viewer-sparkline span{flex:1;min-width:3px;border-radius:6px 6px 0 0;background:linear-gradient(180deg,#8fb3ff,#526aa3);opacity:.9}.viewer-sparkline span.peak{background:linear-gradient(180deg,#8ff0bd,#18a058);box-shadow:0 0 0 1px rgba(143,240,189,.35)}.viewer-session-notes{display:flex;gap:8px;flex-wrap:wrap}.viewer-session-notes span{padding:5px 8px;border-radius:999px;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.08);color:#dce5ff;font-size:12px}.viewer-empty-state{padding:18px;border:1px dashed var(--line);border-radius:14px;background:rgba(255,255,255,.025)}.viewer-empty-state h3{margin:0 0 6px}.viewer-empty-state p{margin:0}@media(max-width:720px){.viewer-date-form,.viewer-date-form input,.viewer-date-form .btn,.viewer-date-form button{width:100%}.viewer-session-kpis{grid-template-columns:1fr}.viewer-sparkline{height:96px}}

.planner-subnav {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  align-items: center;
  padding: 12px;
}
.planner-subnav-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 9px 13px;
  border-radius: 12px;
  border: 1px solid rgba(255,255,255,0.12);
  background: rgba(255,255,255,0.04);
  color: inherit;
  text-decoration: none;
  font-weight: 700;
}
.planner-subnav-link:hover,
.planner-subnav-link.active {
  border-color: rgba(145,70,255,0.65);
  background: rgba(145,70,255,0.16);
}
.stream-analytics-upload{display:grid;grid-template-columns:minmax(220px,1fr) auto;gap:12px;align-items:end;margin-bottom:10px}.stream-analytics-upload label{display:flex;flex-direction:column;gap:6px}.stream-analytics-upload input{min-width:0}@media(max-width:720px){.stream-analytics-upload{grid-template-columns:1fr}.stream-analytics-upload button{width:100%}}
.viewer-success-card,.viewer-success-card *{min-width:0}.viewer-success-card{max-width:100%;overflow:hidden}.viewer-success-card .grid.four,.viewer-success-card .compact-stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}.viewer-success-card .grid.three,.viewer-success-card .viewer-planning-grid{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}.mini-stat{overflow:hidden}.mini-stat .num{font-size:clamp(20px,2vw,28px);line-height:1.05;overflow-wrap:anywhere}.mini-stat .label,.mini-stat .muted{overflow-wrap:anywhere}.viewer-rank-row{min-width:0}.viewer-rank-row strong,.viewer-rank-row span{min-width:0;white-space:normal;overflow-wrap:anywhere}.viewer-session-main>div:first-child{min-width:0;flex:1 1 260px}.viewer-session-main h3,.viewer-session-main p{overflow-wrap:anywhere}.viewer-session-kpis{min-width:0;width:min(390px,100%);grid-template-columns:repeat(auto-fit,minmax(86px,1fr))}.viewer-session-notes span{max-width:100%;white-space:normal;overflow-wrap:anywhere}.viewer-stats-head .section-title{min-width:0;flex-wrap:wrap}.viewer-date-form{max-width:100%}.viewer-date-form .btn,.viewer-date-form button{white-space:normal}.planner-subnav{max-width:100%;overflow:hidden}.planner-subnav-link{min-width:0;max-width:100%;white-space:normal;text-align:center}.stream-analytics-upload{max-width:100%;grid-template-columns:minmax(0,1fr) auto}.stream-analytics-upload input[type=file]{max-width:100%}@media(max-width:900px){.viewer-success-card .grid.three,.viewer-success-card .viewer-planning-grid{grid-template-columns:1fr}.viewer-success-card .grid.four,.viewer-success-card .compact-stats{grid-template-columns:repeat(auto-fit,minmax(135px,1fr))}}@media(max-width:520px){.viewer-success-card{padding:14px}.viewer-success-card .grid.four,.viewer-success-card .compact-stats{grid-template-columns:1fr}.section-title{align-items:flex-start;flex-direction:column}.viewer-session-main{display:block}.viewer-session-kpis{margin-top:12px}.viewer-rank-row{align-items:flex-start;flex-direction:column}.stream-analytics-upload{grid-template-columns:1fr}}
.planner-stats-page{max-width:100%;overflow:hidden}.planner-stats-page .hero{margin-bottom:12px}.planner-stats-page .planner-subnav{padding:10px;gap:6px}.planner-stats-page .planner-subnav-link{padding:7px 9px;font-size:12px;line-height:1.15}.planner-stats-page .viewer-success-card{padding:12px;margin-bottom:12px;border-radius:12px}.planner-stats-page .section-title{margin-bottom:8px}.planner-stats-page .section-title h2{font-size:18px;line-height:1.15;margin:0}.planner-stats-page .section-title h3,.planner-stats-page h3{font-size:14px;line-height:1.2;margin:0 0 8px}.planner-stats-page .grid{gap:8px;margin-bottom:8px}.planner-stats-page .compact-stats{grid-template-columns:repeat(auto-fit,minmax(96px,1fr))!important}.planner-stats-page .viewer-planning-grid{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))!important}.planner-stats-page .mini-stat{padding:9px;border-radius:10px;gap:3px}.planner-stats-page .mini-stat .label{font-size:11px;line-height:1.15}.planner-stats-page .mini-stat .num{font-size:clamp(16px,1.6vw,21px);line-height:1}.planner-stats-page .mini-stat .muted{font-size:11px;line-height:1.2}.planner-stats-page .viewer-stats-head{gap:8px;margin-bottom:8px}.planner-stats-page .viewer-date-form{gap:6px}.planner-stats-page .viewer-date-form input{min-width:128px;padding:8px 9px}.planner-stats-page .btn,.planner-stats-page button,.planner-stats-page .button{padding:8px 10px;border-radius:8px;font-size:12px;line-height:1.1}.planner-stats-page .viewer-session-list{gap:8px}.planner-stats-page .viewer-session-panel{padding:10px;border-radius:10px}.planner-stats-page .viewer-session-main{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,210px);gap:8px;align-items:start}.planner-stats-page .viewer-session-main h3{font-size:14px;margin:0 0 3px}.planner-stats-page .viewer-session-main p{font-size:11px;line-height:1.25}.planner-stats-page .viewer-session-kpis{width:100%;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;margin:0}.planner-stats-page .viewer-session-kpis span{padding:6px;border-radius:8px}.planner-stats-page .viewer-session-kpis strong{font-size:15px;line-height:1}.planner-stats-page .viewer-session-kpis small{font-size:10px;line-height:1.1}.planner-stats-page .viewer-session-notes{gap:5px;margin-top:8px}.planner-stats-page .viewer-session-notes span{font-size:10px;line-height:1.15;padding:4px 6px;border-radius:7px}.planner-stats-page .viewer-rank-list{gap:5px}.planner-stats-page .viewer-rank-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px;padding:7px 8px;border-radius:9px;align-items:center}.planner-stats-page .viewer-rank-row strong{font-size:12px;line-height:1.15}.planner-stats-page .viewer-rank-row span{font-size:11px;line-height:1.15;text-align:right}.planner-stats-page .muted{font-size:12px;line-height:1.35}.planner-stats-page .badge{padding:4px 7px;font-size:11px}.planner-stats-page .stream-analytics-upload{gap:8px;margin-bottom:6px}.planner-stats-page .stream-analytics-upload label{font-size:12px}.planner-stats-page input,.planner-stats-page textarea,.planner-stats-page select{padding:8px 9px;border-radius:8px}@media(max-width:720px){.planner-stats-page .viewer-session-main{grid-template-columns:1fr}.planner-stats-page .viewer-planning-grid{grid-template-columns:1fr!important}.planner-stats-page .compact-stats{grid-template-columns:repeat(2,minmax(0,1fr))!important}.planner-stats-page .viewer-rank-row{grid-template-columns:1fr}.planner-stats-page .viewer-rank-row span{text-align:left}.planner-stats-page .viewer-date-form,.planner-stats-page .viewer-date-form input,.planner-stats-page .viewer-date-form .btn,.planner-stats-page .viewer-date-form button{width:100%}}@media(max-width:420px){.planner-stats-page .compact-stats{grid-template-columns:1fr!important}.planner-stats-page .viewer-session-kpis{grid-template-columns:1fr}.planner-stats-page .planner-subnav-link{flex:1 1 calc(50% - 6px)}}
.planner-stats-page .viewer-sparkline-compact{height:34px;margin:8px 0 0;padding:4px 5px 0;gap:2px;border-radius:8px;background:rgba(0,0,0,.14);overflow:hidden}.planner-stats-page .viewer-sparkline-compact span{min-width:2px;border-radius:3px 3px 0 0;background:#5f7fbf;opacity:.85}.planner-stats-page .viewer-sparkline-compact span.peak{background:#8ff0bd;box-shadow:none}@media(max-width:520px){.planner-stats-page .viewer-sparkline-compact{height:26px;gap:1px;padding-inline:4px}.planner-stats-page .viewer-sparkline-compact span{min-width:1px}}
.stream-todo-header{margin-bottom:18px}.stream-todo-select-form{display:flex;gap:10px;align-items:center;flex-wrap:wrap}.stream-todo-select-form select{min-width:min(520px,100%);width:auto;flex:1}.stream-todo-selected{margin:10px 0 0}.stream-todo-progress{height:10px;margin:12px 0 0;border:1px solid rgba(255,255,255,.1);border-radius:999px;background:rgba(255,255,255,.045);overflow:hidden}.stream-todo-progress span{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#18a058,#8ff0bd)}.stream-todo-layout{align-items:start}.stream-todo-column{display:flex;flex-direction:column;gap:18px}.stream-todo-list,.stream-todo-admin-list,.stream-todo-history{display:flex;flex-direction:column;gap:10px}.stream-todo-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:start;border:1px solid var(--line);border-radius:12px;background:rgba(255,255,255,.025);padding:12px}.stream-todo-row.completed{background:rgba(24,160,88,.09);border-color:rgba(24,160,88,.28)}.stream-todo-toggle-form,.stream-todo-delete-form{margin:0}.stream-todo-check{width:34px;height:34px;border-radius:999px;padding:0;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);font-size:18px}.stream-todo-check:disabled{opacity:.62;cursor:default}.stream-todo-row.completed .stream-todo-check{background:rgba(24,160,88,.24);border-color:rgba(24,160,88,.42);color:#8ff0bd}.stream-todo-row-body{min-width:0}.stream-todo-row-title{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.stream-todo-row-title strong{word-break:break-word}.stream-todo-row-title span{font-size:11px;color:#dce5ff;border:1px solid rgba(255,255,255,.12);border-radius:999px;padding:3px 7px;background:rgba(255,255,255,.05)}.stream-todo-row-body p{margin:6px 0;color:var(--muted)}.stream-todo-row-body small{color:#8ff0bd}.stream-todo-subtasks{display:flex;flex-direction:column;gap:6px;margin-top:10px}.stream-todo-subtask{display:grid;grid-template-columns:28px minmax(0,1fr);gap:8px;align-items:center;margin:0;padding:7px 8px;border:1px solid rgba(255,255,255,.09);border-radius:10px;background:rgba(255,255,255,.035)}.stream-todo-subtask button{width:24px;height:24px;min-height:0;padding:0;border-radius:999px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);font-size:13px}.stream-todo-subtask span{min-width:0;word-break:break-word;color:#dce5ff}.stream-todo-subtask.completed{border-color:rgba(24,160,88,.28);background:rgba(24,160,88,.08)}.stream-todo-subtask.completed button{background:rgba(24,160,88,.24);border-color:rgba(24,160,88,.42);color:#8ff0bd}.stream-todo-admin-row{display:grid;grid-template-columns:minmax(150px,1fr) minmax(170px,1.1fr) minmax(170px,1.1fr) 92px auto;gap:8px;align-items:start;border:1px solid var(--line);border-radius:12px;padding:10px;background:rgba(255,255,255,.025)}.stream-todo-history-row{display:grid;gap:3px;border-left:3px solid rgba(145,70,255,.55);padding:8px 10px;background:rgba(255,255,255,.025);border-radius:0 10px 10px 0}.stream-todo-history-row span,.stream-todo-history-row small{color:var(--muted);font-size:12px}@media(max-width:900px){.stream-todo-row{grid-template-columns:auto minmax(0,1fr)}.stream-todo-delete-form{grid-column:2}.stream-todo-admin-row{grid-template-columns:1fr}.stream-todo-select-form select,.stream-todo-select-form button{width:100%}}
.discord-config-form label{display:flex;flex-direction:column;gap:6px}.discord-form-actions{display:flex;align-items:end}.discord-command-list{display:flex;gap:10px;flex-wrap:wrap}.discord-command-list span{display:inline-flex;padding:8px 10px;border:1px solid var(--line);border-radius:999px;background:rgba(255,255,255,.05);font-weight:800}.tenant-switch-form+.discord-status{margin-left:8px}
.planner-event.conflict,
.calendar-source-chip.hard,
.calendar-source-chip.conflict,
.external-event-pill.conflict {
  border-color: rgba(255,59,92,0.95) !important;
  background: rgba(255,59,92,0.18) !important;
  color: #ffdce4 !important;
}
.planner-conflict-inline,
.dashboard-conflict-box .calendar-source-chip {
  color: #ffdce4;
}
