@charset "UTF-8";
:root {
  --sp-blue-50: #f0f5fa;
  --sp-blue-100: #e1ebf4;
  --sp-blue-200: #c3d7e9;
  --sp-blue-300: #94b8d4;
  --sp-blue-400: #5e92b8;
  --sp-blue-500: #3d6f94;
  --sp-blue-600: #2d5573;
  --sp-blue-700: #1e3a52;
  --sp-blue-800: #0f2438;
  --sp-blue-900: #041624;
  --sp-red: #d92b31;
  --sp-red-light: #f54725;
  --sp-red-lighter: #fef2f2;
  --sp-success: #10b981;
  --sp-success-light: #d1fae5;
  --sp-warning: #f59e0b;
  --sp-warning-light: #fef3c7;
  --sp-danger: #ef4444;
  --sp-danger-light: #fee2e2;
  --sp-info: #3d6f94;
  --sp-info-light: #e1ebf4;
  --sp-white: #ffffff;
  --sp-body-bg: #f0f5fa;
  --sp-card-bg: #ffffff;
  --sp-card-border: rgba(30, 58, 82, 0.08);
  --sp-elevated-bg: #ffffff;
  --sp-text-dark: #041624;
  --sp-text-primary: #0f2438;
  --sp-text-secondary: #2d5573;
  --sp-text-muted: #5e92b8;
  --sp-gradient-primary: linear-gradient(75deg, #d92b31, #f54725);
  --sp-gradient-secondary: linear-gradient(45deg, #0f2438, #3d6f94);
  --sp-gradient-light: linear-gradient(180deg, #f0f5fa 0%, #ffffff 100%);
  --sp-font-heading: Stag, Stag Sans, system-ui, -apple-system, sans-serif;
  --sp-font-body: Stag Sans, system-ui, -apple-system, sans-serif;
  --sp-font-weight-light: 300;
  --sp-font-weight-normal: 400;
  --sp-font-weight-medium: 500;
  --sp-font-weight-semibold: 600;
  --sp-font-weight-bold: 700;
  --sp-space-1: 4px;
  --sp-space-2: 8px;
  --sp-space-3: 12px;
  --sp-space-4: 16px;
  --sp-space-5: 20px;
  --sp-space-6: 24px;
  --sp-space-7: 32px;
  --sp-space-8: 40px;
  --sp-space-10: 48px;
  --sp-radius-sm: 2px;
  --sp-radius-md: 4px;
  --sp-radius-lg: 6px;
  --sp-radius-xl: 8px;
  --sp-radius-full: 9999px;
  --sp-border-subtle: 1px solid rgba(30, 58, 82, 0.08);
  --sp-border-light: 1px solid rgba(30, 58, 82, 0.12);
  --sp-shadow-xs: 0 1px 2px rgba(4, 22, 36, 0.04);
  --sp-shadow-sm: 0 1px 3px rgba(4, 22, 36, 0.06), 0 1px 2px rgba(4, 22, 36, 0.04);
  --sp-shadow-md: 0 4px 8px rgba(4, 22, 36, 0.08), 0 2px 4px rgba(4, 22, 36, 0.04);
  --sp-shadow-lg: 0 12px 24px rgba(4, 22, 36, 0.1), 0 4px 8px rgba(4, 22, 36, 0.04);
  --sp-shadow-card: 0 1px 3px rgba(4, 22, 36, 0.04), 0 0 0 1px rgba(4, 22, 36, 0.03);
  --sp-transition-fast: 150ms ease;
  --sp-transition-base: 250ms ease;
  --sp-content-max-width: 1200px;
  --sp-content-padding: 24px;
}

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  font-size: 16px;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  height: auto;
  min-height: 100vh;
  overflow-x: hidden;
  overflow-y: auto;
}

body {
  margin: 0;
  padding: 0;
  height: auto;
  min-height: 100vh;
  overflow-x: hidden;
  overflow-y: visible;
}

body {
  font-family: var(--sp-font-body);
  font-weight: var(--sp-font-weight-light);
  line-height: 1.6;
  color: var(--sp-text-primary);
  background: var(--sp-gradient-light);
  padding: 0 1.5rem 0rem 1.5rem;
}

h1, h2, h3, h4, h5, h6 {
  font-family: var(--sp-font-heading);
  font-weight: var(--sp-font-weight-medium);
  color: var(--sp-text-dark);
  margin: 0 0 var(--sp-space-4);
  line-height: 1.3;
}

h1 {
  font-size: 2.5rem;
}

h2 {
  font-size: 1.875rem;
}

h3 {
  font-size: 1.5rem;
}

h4 {
  font-size: 1.25rem;
}

h5 {
  font-size: 1.125rem;
}

h6 {
  font-size: 1rem;
}

p {
  margin: 0 0 var(--sp-space-4);
}

a {
  color: var(--sp-red);
  text-decoration: none;
  transition: color var(--sp-transition-fast);
}
a:hover {
  color: var(--sp-red-light);
}
a:focus-visible {
  outline: 2px solid var(--sp-red);
  outline-offset: 2px;
  border-radius: 2px;
}

a.sp-link--animated {
  position: relative;
}
a.sp-link--animated::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -1px;
  width: 0;
  height: 1px;
  background: currentColor;
  transition: width var(--sp-transition-fast);
}
a.sp-link--animated:hover::after {
  width: 100%;
}
@media (prefers-reduced-motion: reduce) {
  a.sp-link--animated::after {
    display: none;
  }
  a.sp-link--animated:hover {
    text-decoration: underline;
  }
}

a.sp-btn:hover,
a.sp-btn--primary:hover,
a.sp-btn--secondary:hover,
a.sp-btn--ghost:hover {
  color: inherit;
}

.sp-alert {
  display: flex;
  align-items: flex-start;
  gap: var(--sp-space-3);
  padding: var(--sp-space-4) var(--sp-space-5);
  border-radius: var(--sp-radius-md);
  font-size: 0.9375rem;
  line-height: 1.5;
}

.sp-alert__icon {
  flex-shrink: 0;
  font-size: 1.125rem;
  line-height: 1.5;
}

.sp-alert__content {
  flex: 1;
  min-width: 0;
}

.sp-alert__title {
  font-weight: var(--sp-font-weight-medium);
  margin-bottom: var(--sp-space-1);
}

.sp-alert__dismiss {
  flex-shrink: 0;
  padding: var(--sp-space-1);
  background: transparent;
  border: none;
  cursor: pointer;
  opacity: 0.6;
  transition: opacity var(--sp-transition-fast);
}
.sp-alert__dismiss:hover {
  opacity: 1;
}

.sp-alert--success {
  background: var(--sp-success-light);
  color: #047857;
  border-left: 3px solid var(--sp-success);
}
.sp-alert--success .sp-alert__icon {
  color: var(--sp-success);
}
.dark .sp-alert--success, .dark-mode .sp-alert--success, [data-theme=dark] .sp-alert--success {
  background: rgba(16, 185, 129, 0.15);
  color: #6ee7b7;
}

.sp-alert--warning {
  background: var(--sp-warning-light);
  color: #92400e;
  border-left: 3px solid var(--sp-warning);
}
.sp-alert--warning .sp-alert__icon {
  color: var(--sp-warning);
}
.dark .sp-alert--warning, .dark-mode .sp-alert--warning, [data-theme=dark] .sp-alert--warning {
  background: rgba(245, 158, 11, 0.15);
  color: #fcd34d;
}

.sp-alert--danger {
  background: var(--sp-danger-light);
  color: #991b1b;
  border-left: 3px solid var(--sp-danger);
}
.sp-alert--danger .sp-alert__icon {
  color: var(--sp-danger);
}
.dark .sp-alert--danger, .dark-mode .sp-alert--danger, [data-theme=dark] .sp-alert--danger {
  background: rgba(239, 68, 68, 0.15);
  color: #fca5a5;
}

.sp-alert--info {
  background: var(--sp-info-light);
  color: var(--sp-blue-800);
  border-left: 3px solid var(--sp-info);
}
.sp-alert--info .sp-alert__icon {
  color: var(--sp-info);
}
.dark .sp-alert--info, .dark-mode .sp-alert--info, [data-theme=dark] .sp-alert--info {
  background: rgba(96, 165, 250, 0.15);
  color: #93c5fd;
}

.sp-alert--sm {
  padding: var(--sp-space-2) var(--sp-space-3);
  font-size: 0.875rem;
}
.sp-alert--sm .sp-alert__icon {
  font-size: 1rem;
}

.sp-alert--lg {
  padding: var(--sp-space-5) var(--sp-space-6);
  font-size: 1rem;
}
.sp-alert--lg .sp-alert__icon {
  font-size: 1.25rem;
}

.sp-alert--inline {
  border-left: none;
  border-radius: var(--sp-radius-md);
}

@keyframes sp-spin {
  to {
    transform: rotate(360deg);
  }
}
@keyframes sp-pulse {
  0%, 100% {
    opacity: 1;
    transform: scale(1);
  }
  50% {
    opacity: 0.7;
    transform: scale(0.98);
  }
}
@keyframes sp-shimmer {
  0% {
    background-position: -200% 0;
  }
  100% {
    background-position: 200% 0;
  }
}
@keyframes sp-bounce {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-4px);
  }
}
@keyframes sp-fade-in {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}
@keyframes sp-fade-up {
  from {
    opacity: 0;
    transform: translateY(16px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes sp-fade-down {
  from {
    opacity: 0;
    transform: translateY(-16px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes sp-fade-left {
  from {
    opacity: 0;
    transform: translateX(16px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
@keyframes sp-fade-right {
  from {
    opacity: 0;
    transform: translateX(-16px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
@keyframes sp-scale-in {
  from {
    opacity: 0;
    transform: scale(0.95);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}
@keyframes sp-scale-bounce {
  0% {
    opacity: 0;
    transform: scale(0.9);
  }
  60% {
    opacity: 1;
    transform: scale(1.02);
  }
  100% {
    transform: scale(1);
  }
}
@keyframes sp-checkmark-draw {
  0% {
    stroke-dashoffset: 24;
  }
  100% {
    stroke-dashoffset: 0;
  }
}
@keyframes sp-circle-grow {
  from {
    transform: scale(0);
    opacity: 0;
  }
  to {
    transform: scale(1);
    opacity: 1;
  }
}
@keyframes sp-celebration-pop {
  0% {
    transform: scale(0) rotate(-15deg);
    opacity: 0;
  }
  50% {
    transform: scale(1.1) rotate(5deg);
    opacity: 1;
  }
  100% {
    transform: scale(1) rotate(0);
    opacity: 1;
  }
}
@keyframes sp-confetti-fall {
  0% {
    opacity: 1;
    transform: translateY(-10px) rotate(0deg);
  }
  100% {
    opacity: 0;
    transform: translateY(100px) rotate(720deg);
  }
}
@keyframes sp-progress-indeterminate {
  0% {
    transform: translateX(-100%);
  }
  100% {
    transform: translateX(400%);
  }
}
@keyframes sp-glow-pulse {
  0%, 100% {
    box-shadow: 0 0 0 0 rgba(217, 43, 49, 0.4);
  }
  50% {
    box-shadow: 0 0 0 8px rgba(217, 43, 49, 0);
  }
}
@keyframes sp-shake {
  0%, 100% {
    transform: translateX(0);
  }
  10%, 30%, 50%, 70%, 90% {
    transform: translateX(-4px);
  }
  20%, 40%, 60%, 80% {
    transform: translateX(4px);
  }
}
@keyframes sp-wobble {
  0%, 100% {
    transform: rotate(0deg);
  }
  25% {
    transform: rotate(-3deg);
  }
  75% {
    transform: rotate(3deg);
  }
}
.sp-animate-fade-in {
  animation: sp-fade-in 0.3s ease forwards;
}
@media (prefers-reduced-motion: reduce) {
  .sp-animate-fade-in {
    animation: none;
    opacity: 1;
  }
}

.sp-animate-fade-up {
  animation: sp-fade-up 0.4s ease forwards;
}
@media (prefers-reduced-motion: reduce) {
  .sp-animate-fade-up {
    animation: none;
    opacity: 1;
    transform: none;
  }
}

.sp-animate-fade-down {
  animation: sp-fade-down 0.4s ease forwards;
}
@media (prefers-reduced-motion: reduce) {
  .sp-animate-fade-down {
    animation: none;
    opacity: 1;
    transform: none;
  }
}

.sp-animate-scale-in {
  animation: sp-scale-in 0.3s ease forwards;
}
@media (prefers-reduced-motion: reduce) {
  .sp-animate-scale-in {
    animation: none;
    opacity: 1;
    transform: none;
  }
}

.sp-animate-scale-bounce {
  animation: sp-scale-bounce 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}
@media (prefers-reduced-motion: reduce) {
  .sp-animate-scale-bounce {
    animation: none;
    opacity: 1;
    transform: none;
  }
}

.sp-stagger-1 {
  animation-delay: 50ms;
}

.sp-stagger-2 {
  animation-delay: 100ms;
}

.sp-stagger-3 {
  animation-delay: 150ms;
}

.sp-stagger-4 {
  animation-delay: 200ms;
}

.sp-stagger-5 {
  animation-delay: 250ms;
}

.sp-stagger-6 {
  animation-delay: 300ms;
}

.sp-stagger-7 {
  animation-delay: 350ms;
}

.sp-stagger-8 {
  animation-delay: 400ms;
}

.sp-stagger-9 {
  animation-delay: 450ms;
}

.sp-stagger-10 {
  animation-delay: 500ms;
}

.sp-skeleton {
  background: linear-gradient(90deg, var(--sp-blue-100) 25%, var(--sp-blue-50) 50%, var(--sp-blue-100) 75%);
  background-size: 200% 100%;
  animation: sp-shimmer 1.5s infinite linear;
  border-radius: 4px;
}
@media (prefers-reduced-motion: reduce) {
  .sp-skeleton {
    animation: none;
    background: var(--sp-blue-100);
  }
}

.sp-skeleton--text {
  height: 1em;
  width: 100%;
  margin-bottom: 0.5em;
}
.sp-skeleton--text:last-child {
  width: 70%;
}

.sp-skeleton--title {
  height: 1.5em;
  width: 60%;
  margin-bottom: 1em;
}

.sp-skeleton--avatar {
  width: 48px;
  height: 48px;
  border-radius: 50%;
}

.sp-skeleton--button {
  width: 120px;
  height: 44px;
}

.sp-skeleton--card {
  height: 200px;
}

.sp-spinner {
  width: 24px;
  height: 24px;
  border: 3px solid var(--sp-blue-200);
  border-top-color: var(--sp-red);
  border-radius: 50%;
  animation: sp-spin 0.8s linear infinite;
}
@media (prefers-reduced-motion: reduce) {
  .sp-spinner {
    animation: sp-pulse 1.5s ease-in-out infinite;
  }
}

.sp-spinner--sm {
  width: 16px;
  height: 16px;
  border-width: 2px;
}

.sp-spinner--lg {
  width: 40px;
  height: 40px;
  border-width: 4px;
}

.sp-spinner--white {
  border-color: rgba(255, 255, 255, 0.3);
  border-top-color: #ffffff;
}

.sp-spinner--inline {
  display: inline-block;
  vertical-align: middle;
  margin-right: var(--sp-space-2);
}

.sp-loading-overlay {
  position: absolute;
  inset: 0;
  background: rgba(255, 255, 255, 0.9);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: var(--sp-space-3);
  z-index: 100;
  animation: sp-fade-in 0.2s ease;
}
[data-theme=dark] .sp-loading-overlay {
  background: rgba(10, 30, 45, 0.9);
}

.sp-loading-overlay__text {
  font-size: 0.875rem;
  color: var(--sp-text-muted);
}

.sp-progress-bar--animated .sp-progress-bar__fill {
  transition: width 0.5s ease;
  transform-origin: left;
}

.sp-progress-bar--indeterminate {
  overflow: hidden;
}
.sp-progress-bar--indeterminate .sp-progress-bar__fill {
  width: 30%;
  animation: sp-progress-indeterminate 1.5s ease-in-out infinite;
}

.sp-link-animated {
  position: relative;
  text-decoration: none;
}
.sp-link-animated::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -2px;
  width: 0;
  height: 2px;
  background: currentColor;
  transition: width var(--sp-transition-fast);
}
.sp-link-animated:hover::after {
  width: 100%;
}
@media (prefers-reduced-motion: reduce) {
  .sp-link-animated::after {
    display: none;
  }
  .sp-link-animated:hover {
    text-decoration: underline;
  }
}

.sp-focus-ring-animated:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px var(--sp-card-bg), 0 0 0 4px var(--sp-red);
  transition: box-shadow 0.15s ease;
}
@media (prefers-reduced-motion: reduce) {
  .sp-focus-ring-animated:focus-visible {
    transition: none;
  }
}

.sp-checkmark {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 48px;
  height: 48px;
}
.sp-checkmark__circle {
  fill: none;
  stroke: var(--sp-success);
  stroke-width: 2;
  animation: sp-circle-grow 0.3s ease forwards;
  transform-origin: center;
}
@media (prefers-reduced-motion: reduce) {
  .sp-checkmark__circle {
    animation: none;
  }
}
.sp-checkmark__check {
  fill: none;
  stroke: var(--sp-success);
  stroke-width: 2;
  stroke-linecap: round;
  stroke-linejoin: round;
  stroke-dasharray: 24;
  stroke-dashoffset: 24;
  animation: sp-checkmark-draw 0.3s 0.2s ease forwards;
}
@media (prefers-reduced-motion: reduce) {
  .sp-checkmark__check {
    animation: none;
    stroke-dashoffset: 0;
  }
}

.sp-checkmark--sm {
  width: 24px;
  height: 24px;
}

.sp-checkmark--lg {
  width: 72px;
  height: 72px;
}

.sp-celebration {
  position: relative;
}
.sp-celebration--pop {
  animation: sp-celebration-pop 0.5s cubic-bezier(0.34, 1.56, 0.64, 1) forwards;
}
@media (prefers-reduced-motion: reduce) {
  .sp-celebration--pop {
    animation: sp-fade-in 0.3s ease forwards;
  }
}
.sp-celebration--glow {
  animation: sp-glow-pulse 2s ease-in-out infinite;
}
@media (prefers-reduced-motion: reduce) {
  .sp-celebration--glow {
    animation: none;
  }
}

.sp-confetti {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 9999;
  overflow: hidden;
}

.sp-confetti__piece {
  position: absolute;
  width: 10px;
  height: 10px;
  animation: sp-confetti-fall 3s ease forwards;
}
@media (prefers-reduced-motion: reduce) {
  .sp-confetti__piece {
    display: none;
  }
}

.sp-toast-enter {
  animation: sp-fade-right 0.3s ease forwards;
}
@media (prefers-reduced-motion: reduce) {
  .sp-toast-enter {
    animation: sp-fade-in 0.2s ease forwards;
  }
}

.sp-toast-exit {
  animation: sp-fade-left 0.3s ease forwards;
}
@media (prefers-reduced-motion: reduce) {
  .sp-toast-exit {
    animation: sp-fade-in 0.2s ease reverse forwards;
  }
}

.sp-modal-enter .sp-modal-overlay {
  animation: sp-fade-in 0.2s ease forwards;
}
.sp-modal-enter .sp-modal {
  animation: sp-scale-bounce 0.35s ease forwards;
}
@media (prefers-reduced-motion: reduce) {
  .sp-modal-enter .sp-modal-overlay,
  .sp-modal-enter .sp-modal {
    animation: sp-fade-in 0.15s ease forwards;
  }
}

.sp-modal-exit .sp-modal-overlay {
  animation: sp-fade-in 0.2s ease reverse forwards;
}
.sp-modal-exit .sp-modal {
  animation: sp-scale-in 0.15s ease reverse forwards;
}
@media (prefers-reduced-motion: reduce) {
  .sp-modal-exit .sp-modal-overlay,
  .sp-modal-exit .sp-modal {
    animation: sp-fade-in 0.15s ease reverse forwards;
  }
}

.sp-tab-content-enter {
  animation: sp-fade-up 0.25s ease forwards;
}
@media (prefers-reduced-motion: reduce) {
  .sp-tab-content-enter {
    animation: sp-fade-in 0.15s ease forwards;
  }
}

.sp-collapse {
  overflow: hidden;
  transition: max-height var(--sp-transition-base), opacity var(--sp-transition-base);
  max-height: 0;
  opacity: 0;
}
.sp-collapse--open {
  max-height: 1000px;
  opacity: 1;
}
@media (prefers-reduced-motion: reduce) {
  .sp-collapse {
    transition: opacity var(--sp-transition-fast);
    max-height: none;
  }
  .sp-collapse:not(.sp-collapse--open) {
    display: none;
  }
}

.sp-input-animated {
  transition: border-color var(--sp-transition-fast), box-shadow var(--sp-transition-fast), background-color var(--sp-transition-fast);
}
.sp-input-animated:focus {
  border-color: var(--sp-red);
  box-shadow: 0 0 0 3px rgba(217, 43, 49, 0.1);
}
.sp-input-animated.sp-input--error {
  border-color: var(--sp-danger);
  animation: sp-shake 0.4s ease;
}
@media (prefers-reduced-motion: reduce) {
  .sp-input-animated.sp-input--error {
    animation: none;
  }
}
.sp-input-animated.sp-input--success {
  border-color: var(--sp-success);
}

.sp-floating-label {
  position: relative;
}
.sp-floating-label__input {
  width: 100%;
  padding: var(--sp-space-4) var(--sp-space-4) var(--sp-space-2);
}
.sp-floating-label__input::placeholder {
  opacity: 0;
}
.sp-floating-label__input:focus + .sp-floating-label__text, .sp-floating-label__input:not(:placeholder-shown) + .sp-floating-label__text {
  transform: translateY(-12px) scale(0.85);
  color: var(--sp-red);
}
.sp-floating-label__text {
  position: absolute;
  left: var(--sp-space-4);
  top: 50%;
  transform: translateY(-50%);
  color: var(--sp-text-muted);
  pointer-events: none;
  transition: transform var(--sp-transition-fast), color var(--sp-transition-fast);
  transform-origin: left;
}
@media (prefers-reduced-motion: reduce) {
  .sp-floating-label__text {
    transition: none;
  }
}

.sp-ripple {
  position: relative;
  overflow: hidden;
}
.sp-ripple::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  width: 0;
  height: 0;
  background: rgba(255, 255, 255, 0.3);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  transition: width 0.4s ease, height 0.4s ease, opacity 0.4s ease;
  pointer-events: none;
  opacity: 0;
}
.sp-ripple:active::after {
  width: 200%;
  height: 200%;
  opacity: 1;
  transition: none;
}
@media (prefers-reduced-motion: reduce) {
  .sp-ripple::after {
    display: none;
  }
}

.sp-icon-spin {
  animation: sp-spin 1s linear infinite;
}
@media (prefers-reduced-motion: reduce) {
  .sp-icon-spin {
    animation: none;
  }
}

.sp-icon-pulse {
  animation: sp-pulse 1.5s ease-in-out infinite;
}
@media (prefers-reduced-motion: reduce) {
  .sp-icon-pulse {
    animation: none;
  }
}

.sp-icon-bounce {
  animation: sp-bounce 1s ease-in-out infinite;
}
@media (prefers-reduced-motion: reduce) {
  .sp-icon-bounce {
    animation: none;
  }
}

.sp-badge--animated {
  animation: sp-pulse 2s ease-in-out infinite;
}
@media (prefers-reduced-motion: reduce) {
  .sp-badge--animated {
    animation: none;
  }
}

.sp-badge--new::after {
  content: "";
  position: absolute;
  top: -2px;
  right: -2px;
  width: 8px;
  height: 8px;
  background: var(--sp-danger);
  border-radius: 50%;
  animation: sp-glow-pulse 1.5s ease-in-out infinite;
}
@media (prefers-reduced-motion: reduce) {
  .sp-badge--new::after {
    animation: none;
  }
}

.sp-page-enter {
  animation: sp-fade-up 0.4s ease forwards;
}
@media (prefers-reduced-motion: reduce) {
  .sp-page-enter {
    animation: sp-fade-in 0.2s ease forwards;
  }
}

.sp-page-stagger > * {
  opacity: 0;
  animation: sp-fade-up 0.4s ease forwards;
}
.sp-page-stagger > *:nth-child(1) {
  animation-delay: 0ms;
}
.sp-page-stagger > *:nth-child(2) {
  animation-delay: 50ms;
}
.sp-page-stagger > *:nth-child(3) {
  animation-delay: 100ms;
}
.sp-page-stagger > *:nth-child(4) {
  animation-delay: 150ms;
}
.sp-page-stagger > *:nth-child(5) {
  animation-delay: 200ms;
}
.sp-page-stagger > *:nth-child(6) {
  animation-delay: 250ms;
}
.sp-page-stagger > *:nth-child(7) {
  animation-delay: 300ms;
}
.sp-page-stagger > *:nth-child(8) {
  animation-delay: 350ms;
}
.sp-page-stagger > *:nth-child(9) {
  animation-delay: 400ms;
}
.sp-page-stagger > *:nth-child(10) {
  animation-delay: 450ms;
}
@media (prefers-reduced-motion: reduce) {
  .sp-page-stagger > * {
    opacity: 1;
    animation: none;
  }
}

.sp-avatar {
  display: flex;
  align-items: center;
  justify-content: center;
  font-weight: var(--sp-font-weight-medium);
  color: #ffffff;
  background: var(--sp-gradient-secondary);
  border-radius: var(--sp-radius-full);
  overflow: hidden;
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  font-size: 0.875rem;
}
.sp-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.sp-avatar--xs {
  width: 24px;
  height: 24px;
  font-size: 0.625rem;
}

.sp-avatar--sm {
  width: 28px;
  height: 28px;
  font-size: 0.6875rem;
}

.sp-avatar--md {
  width: 36px;
  height: 36px;
  font-size: 0.8125rem;
}

.sp-avatar--lg {
  width: 48px;
  height: 48px;
  font-size: 1rem;
}

.sp-avatar--xl {
  width: 64px;
  height: 64px;
  font-size: 1.25rem;
}

.sp-avatar--2xl {
  width: 96px;
  height: 96px;
  font-size: 1.75rem;
}

.sp-avatar--support-receiver,
.sp-avatar--coachee {
  background: var(--sp-gradient-primary);
}

.sp-avatar--coach {
  background: var(--sp-gradient-secondary);
}

.sp-avatar--mentor {
  background: linear-gradient(135deg, #8b5cf6 0%, #7c3aed 100%);
}

.sp-avatar--support-giver {
  background: linear-gradient(135deg, #14b8a6 0%, #0d9488 100%);
}

.sp-avatar--manager {
  background: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);
}

.sp-avatar-status {
  position: relative;
  display: inline-block;
}

.sp-avatar-status__indicator {
  position: absolute;
  bottom: 0;
  right: 0;
  width: 12px;
  height: 12px;
  border: 2px solid var(--sp-card-bg);
  border-radius: var(--sp-radius-full);
}
.sp-avatar-status__indicator--online {
  background: var(--sp-success);
}
.sp-avatar-status__indicator--offline {
  background: var(--sp-blue-300);
}
.sp-avatar-status__indicator--busy {
  background: var(--sp-danger);
}
.sp-avatar-status__indicator--away {
  background: var(--sp-warning);
}

.sp-avatar--lg + .sp-avatar-status__indicator,
.sp-avatar--lg ~ .sp-avatar-status__indicator {
  width: 14px;
  height: 14px;
}

.sp-avatar--xl + .sp-avatar-status__indicator,
.sp-avatar--xl ~ .sp-avatar-status__indicator {
  width: 16px;
  height: 16px;
  border-width: 3px;
}

.sp-avatar-group {
  display: inline-flex;
}
.sp-avatar-group .sp-avatar {
  border: 2px solid var(--sp-card-bg);
  margin-left: -8px;
}
.sp-avatar-group .sp-avatar:first-child {
  margin-left: 0;
}
.sp-avatar-group--sm .sp-avatar {
  margin-left: -6px;
}
.sp-avatar-group--lg .sp-avatar {
  margin-left: -12px;
}

.sp-avatar-group__more {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  font-size: 0.75rem;
  font-weight: var(--sp-font-weight-medium);
  color: var(--sp-text-secondary);
  background: var(--sp-blue-100);
  border: 2px solid var(--sp-card-bg);
  border-radius: var(--sp-radius-full);
  margin-left: -8px;
}

.sp-user-chip {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-space-3);
  padding: var(--sp-space-2) var(--sp-space-4) var(--sp-space-2) var(--sp-space-2);
  background: var(--sp-card-bg);
  border: 1px solid var(--sp-card-border);
  border-radius: var(--sp-radius-full);
  transition: background-color var(--sp-transition-fast);
}
.sp-user-chip:hover {
  background: var(--sp-blue-50);
}

.sp-user-chip--mentor {
  border-left: 3px solid #8b5cf6;
}

.sp-user-chip--coach {
  border-left: 3px solid var(--sp-blue-600);
}

.sp-user-chip--support-giver {
  border-left: 3px solid #14b8a6;
}

.sp-user-chip--support-receiver {
  border-left: 3px solid var(--sp-red);
}

.sp-user-chip__avatar {
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.75rem;
  font-weight: var(--sp-font-weight-medium);
  color: #ffffff;
  background: var(--sp-gradient-secondary);
  border-radius: var(--sp-radius-full);
  overflow: hidden;
  flex-shrink: 0;
}
.sp-user-chip__avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.sp-user-chip__info {
  display: flex;
  flex-direction: column;
  line-height: 1.3;
}

.sp-user-chip__name {
  font-size: 0.875rem;
  font-weight: var(--sp-font-weight-medium);
  color: var(--sp-text-primary);
}

.sp-user-chip__role {
  font-size: 0.75rem;
  color: var(--sp-text-muted);
}

.sp-user-chip--compact {
  padding: var(--sp-space-1) var(--sp-space-3) var(--sp-space-1) var(--sp-space-1);
}
.sp-user-chip--compact .sp-user-chip__avatar {
  width: 24px;
  height: 24px;
  font-size: 0.625rem;
}
.sp-user-chip--compact .sp-user-chip__name {
  font-size: 0.8125rem;
}

.sp-inline-user {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-space-2);
}

.sp-inline-user__avatar {
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.625rem;
  font-weight: var(--sp-font-weight-medium);
  color: #ffffff;
  background: var(--sp-gradient-secondary);
  border-radius: var(--sp-radius-full);
  overflow: hidden;
  flex-shrink: 0;
}
.sp-inline-user__avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.sp-inline-user__name {
  font-size: 0.875rem;
  color: var(--sp-text-primary);
}

.sp-badge {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-space-1);
  padding: var(--sp-space-1) var(--sp-space-3);
  font-size: 0.75rem;
  font-weight: var(--sp-font-weight-medium);
  line-height: 1.5;
  border-radius: 9999px;
}

.sp-badge--primary {
  background: var(--sp-red-lighter);
  color: var(--sp-red);
}

.sp-badge--success {
  background: var(--sp-success-light);
  color: #047857;
}

.sp-badge--warning {
  background: var(--sp-warning-light);
  color: #b45309;
}

.sp-badge--danger {
  background: var(--sp-danger-light);
  color: #b91c1c;
}

.sp-badge--info {
  background: #e1ebf4;
  color: #1e3a52;
}

.sp-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: var(--sp-space-2);
  padding: var(--sp-space-3) var(--sp-space-5);
  font-family: var(--sp-font-body);
  font-size: 0.9375rem;
  font-weight: var(--sp-font-weight-medium);
  line-height: 1.5;
  text-decoration: none;
  border: none;
  border-radius: var(--sp-radius-md);
  cursor: pointer;
  transition: all var(--sp-transition-fast);
  white-space: nowrap;
  min-height: 44px;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}
.sp-btn:focus-visible {
  outline: 2px solid var(--sp-red);
  outline-offset: 2px;
}
.sp-btn:disabled, .sp-btn.disabled {
  opacity: 0.5;
  cursor: not-allowed;
  pointer-events: none;
}

.sp-btn--primary {
  background: var(--sp-gradient-primary);
  color: #ffffff !important;
  box-shadow: var(--sp-shadow-sm);
}
.sp-btn--primary:hover:not(:disabled) {
  filter: brightness(1.05);
  box-shadow: var(--sp-shadow-md);
  transform: translateY(-1px);
  color: #ffffff !important;
}
.sp-btn--primary:active:not(:disabled) {
  transform: translateY(0);
  filter: brightness(0.98);
  color: #ffffff !important;
}

.sp-btn--secondary,
.sp-btn--outline {
  background: var(--sp-card-bg);
  color: var(--sp-text-primary);
  border: 1px solid var(--sp-card-border);
}
.sp-btn--secondary:hover:not(:disabled),
.sp-btn--outline:hover:not(:disabled) {
  background: var(--sp-blue-50);
  border-color: var(--sp-blue-300);
  transform: translateY(-1px);
}
.sp-btn--secondary:active:not(:disabled),
.sp-btn--outline:active:not(:disabled) {
  transform: translateY(0);
}

.sp-btn--ghost {
  background: transparent;
  color: var(--sp-text-primary);
}
.sp-btn--ghost:hover:not(:disabled) {
  background: var(--sp-blue-50);
}

.sp-btn--success {
  background: var(--sp-success);
  color: #ffffff !important;
  font-weight: var(--sp-font-weight-medium);
  box-shadow: var(--sp-shadow-sm);
}
.sp-btn--success:hover:not(:disabled) {
  filter: brightness(1.1);
  box-shadow: var(--sp-shadow-md);
  transform: translateY(-1px);
}
.sp-btn--success:active:not(:disabled) {
  transform: translateY(0);
}

.sp-btn--danger {
  background: var(--sp-danger);
  color: #ffffff !important;
  box-shadow: var(--sp-shadow-sm);
}
.sp-btn--danger:hover:not(:disabled) {
  filter: brightness(1.1);
  box-shadow: var(--sp-shadow-md);
  transform: translateY(-1px);
}
.sp-btn--danger:active:not(:disabled) {
  transform: translateY(0);
}

.sp-btn--warning {
  background: var(--sp-warning);
  color: #ffffff !important;
  box-shadow: var(--sp-shadow-sm);
}
.sp-btn--warning:hover:not(:disabled) {
  filter: brightness(1.1);
  box-shadow: var(--sp-shadow-md);
  transform: translateY(-1px);
}
.sp-btn--warning:active:not(:disabled) {
  transform: translateY(0);
}

.sp-btn--link {
  background: transparent;
  color: var(--sp-blue-600);
  padding: 0;
  min-height: auto;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.sp-btn--link:hover:not(:disabled) {
  color: var(--sp-blue-700);
}

.sp-btn--icon {
  padding: var(--sp-space-2);
  min-width: 44px;
}
.sp-btn--icon i, .sp-btn--icon svg {
  font-size: 1.25rem;
}

.sp-btn--xs {
  padding: var(--sp-space-1) var(--sp-space-2);
  font-size: 0.75rem;
  min-height: 28px;
}

.sp-btn--sm {
  padding: var(--sp-space-2) var(--sp-space-4);
  font-size: 0.875rem;
  min-height: 36px;
}

.sp-btn--lg {
  padding: var(--sp-space-4) var(--sp-space-6);
  font-size: 1rem;
  min-height: 52px;
}

.sp-btn--xl {
  padding: var(--sp-space-5) var(--sp-space-8);
  font-size: 1.125rem;
  min-height: 60px;
}

.sp-btn--loading {
  position: relative;
  color: transparent !important;
  pointer-events: none;
}
.sp-btn--loading::after {
  content: "";
  position: absolute;
  width: 1em;
  height: 1em;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  animation: sp-btn-spin 0.75s linear infinite;
}

@keyframes sp-btn-spin {
  to {
    transform: rotate(360deg);
  }
}
.sp-btn-group {
  display: inline-flex;
}
.sp-btn-group .sp-btn {
  border-radius: 0;
}
.sp-btn-group .sp-btn:first-child {
  border-radius: var(--sp-radius-md) 0 0 var(--sp-radius-md);
}
.sp-btn-group .sp-btn:last-child {
  border-radius: 0 var(--sp-radius-md) var(--sp-radius-md) 0;
}
.sp-btn-group .sp-btn:not(:last-child) {
  border-right: 1px solid rgba(255, 255, 255, 0.2);
}

.sp-card {
  background: var(--sp-card-bg);
  border: 1px solid var(--sp-card-border);
  border-radius: var(--sp-radius-lg);
  box-shadow: var(--sp-shadow-card);
  overflow: visible;
  transition: box-shadow var(--sp-transition-fast), transform var(--sp-transition-fast);
}

.sp-card--hover:hover {
  box-shadow: var(--sp-shadow-md);
  transform: translateY(-2px);
}

.sp-card--clickable {
  cursor: pointer;
}
.sp-card--clickable:hover {
  box-shadow: var(--sp-shadow-md);
  transform: translateY(-2px);
}
.sp-card--clickable:active {
  transform: translateY(0);
}
.sp-card--clickable:focus-visible {
  outline: 2px solid var(--sp-red);
  outline-offset: 2px;
}

.sp-card--animated {
  opacity: 0;
  animation: sp-card-enter 0.4s ease forwards;
}
@media (prefers-reduced-motion: reduce) {
  .sp-card--animated {
    opacity: 1;
    animation: none;
  }
}

@keyframes sp-card-enter {
  from {
    opacity: 0;
    transform: translateY(12px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.sp-cards-stagger > .sp-card {
  opacity: 0;
  animation: sp-card-enter 0.4s ease forwards;
}
.sp-cards-stagger > .sp-card:nth-child(1) {
  animation-delay: 0ms;
}
.sp-cards-stagger > .sp-card:nth-child(2) {
  animation-delay: 50ms;
}
.sp-cards-stagger > .sp-card:nth-child(3) {
  animation-delay: 100ms;
}
.sp-cards-stagger > .sp-card:nth-child(4) {
  animation-delay: 150ms;
}
.sp-cards-stagger > .sp-card:nth-child(5) {
  animation-delay: 200ms;
}
.sp-cards-stagger > .sp-card:nth-child(6) {
  animation-delay: 250ms;
}
.sp-cards-stagger > .sp-card:nth-child(7) {
  animation-delay: 300ms;
}
.sp-cards-stagger > .sp-card:nth-child(8) {
  animation-delay: 350ms;
}
.sp-cards-stagger > .sp-card:nth-child(9) {
  animation-delay: 400ms;
}
.sp-cards-stagger > .sp-card:nth-child(10) {
  animation-delay: 450ms;
}
.sp-cards-stagger > .sp-card:nth-child(11) {
  animation-delay: 500ms;
}
.sp-cards-stagger > .sp-card:nth-child(12) {
  animation-delay: 550ms;
}
@media (prefers-reduced-motion: reduce) {
  .sp-cards-stagger > .sp-card {
    opacity: 1;
    animation: none;
  }
}

.sp-card__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--sp-space-5) var(--sp-space-6);
  background: var(--sp-blue-50);
  border-bottom: 1px solid var(--sp-card-border);
  border-radius: var(--sp-radius-lg) var(--sp-radius-lg) 0 0;
}

.sp-card__title {
  font-size: 1.125rem;
  font-weight: var(--sp-font-weight-medium);
  color: var(--sp-text-primary);
  margin: 0;
}

.sp-card__subtitle {
  font-size: 0.875rem;
  color: var(--sp-text-muted);
  margin: 0;
}

.sp-card__actions {
  display: flex;
  align-items: center;
  gap: var(--sp-space-2);
}

.sp-card__body {
  padding: var(--sp-space-6);
}

.sp-card__body--compact {
  padding: var(--sp-space-4);
}

.sp-card__body--flush {
  padding: 0;
}

.sp-card__footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--sp-space-3);
  padding: var(--sp-space-4) var(--sp-space-6);
  background: var(--sp-blue-50);
  border-top: 1px solid var(--sp-card-border);
  border-radius: 0 0 var(--sp-radius-lg) var(--sp-radius-lg);
}

.sp-card--gradient-header .sp-card__header {
  background: var(--sp-gradient-secondary);
  color: #ffffff;
  border-bottom: none;
}
.sp-card--gradient-header .sp-card__header .sp-card__title {
  color: #ffffff;
}
.sp-card--gradient-header .sp-card__header .sp-card__subtitle {
  color: rgba(255, 255, 255, 0.7);
}

.sp-card--bordered {
  box-shadow: none;
  border: 1px solid var(--sp-blue-200);
}

.sp-card--elevated {
  box-shadow: var(--sp-shadow-lg);
}

.sp-card--flush {
  border-radius: 0;
}
.sp-card--flush .sp-card__header,
.sp-card--flush .sp-card__footer {
  border-radius: 0;
}

.sp-card--success {
  border-left: 4px solid var(--sp-success);
}

.sp-card--warning {
  border-left: 4px solid var(--sp-warning);
}

.sp-card--danger {
  border-left: 4px solid var(--sp-danger);
}

.sp-card--info {
  border-left: 4px solid var(--sp-info);
}

.sp-dropdown {
  position: relative;
  display: inline-block;
}

.sp-dropdown__menu {
  position: absolute;
  top: 100%;
  right: 0;
  margin-top: var(--sp-space-2);
  min-width: 200px;
  background: var(--sp-white);
  border: var(--sp-border-subtle);
  border-radius: 6px;
  box-shadow: var(--sp-shadow-lg);
  z-index: 1000;
  opacity: 0;
  visibility: hidden;
  transform: translateY(-8px) scale(0.98);
  transform-origin: top center;
  transition: opacity 0.15s ease, transform 0.2s cubic-bezier(0.34, 1.56, 0.64, 1), visibility 0.15s;
}
@media (prefers-reduced-motion: reduce) {
  .sp-dropdown__menu {
    transform: translateY(-4px);
    transition: opacity 0.1s ease, visibility 0.1s;
  }
}

.sp-dropdown--open .sp-dropdown__menu {
  opacity: 1;
  visibility: visible;
  transform: translateY(0) scale(1);
}
@media (prefers-reduced-motion: reduce) {
  .sp-dropdown--open .sp-dropdown__menu {
    transform: translateY(0);
  }
}

.sp-dropdown__item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: var(--sp-space-3) var(--sp-space-4);
  font-size: 0.9375rem;
  color: var(--sp-text-primary);
  text-decoration: none;
  transition: background var(--sp-transition-fast);
}
.sp-dropdown__item:hover {
  background: #f0f5fa;
}

.sp-dropdown__divider {
  height: 1px;
  margin: var(--sp-space-2) 0;
  background: #e1ebf4;
}

.sp-empty-state {
  text-align: center;
  padding: var(--sp-space-10) var(--sp-space-6);
}

.sp-empty-state__icon {
  width: 64px;
  height: 64px;
  margin: 0 auto var(--sp-space-5);
  display: flex;
  align-items: center;
  justify-content: center;
  background: #e1ebf4;
  border-radius: 9999px;
  color: var(--sp-text-muted);
  font-size: 1.5rem;
}

.sp-empty-state__title {
  font-size: 1.25rem;
  font-weight: var(--sp-font-weight-medium);
  color: var(--sp-text-dark);
  margin: 0 0 var(--sp-space-3);
}

.sp-empty-state__description {
  font-size: 0.9375rem;
  color: var(--sp-text-secondary);
  max-width: 400px;
  margin: 0 auto var(--sp-space-6);
}

.sp-form-group {
  margin-bottom: var(--sp-space-5);
}

.sp-form-group--half {
  margin-bottom: var(--sp-space-5);
}

.sp-form-label {
  display: block;
  margin-bottom: var(--sp-space-2);
  font-size: 0.9375rem;
  font-weight: var(--sp-font-weight-medium);
  color: var(--sp-text-dark);
}

.sp-form-hint {
  display: block;
  margin-top: var(--sp-space-2);
  font-size: 0.875rem;
  color: var(--sp-text-muted);
}

.sp-required {
  color: var(--sp-danger);
}

.sp-form-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: var(--sp-space-4);
}
@media (max-width: 480px) {
  .sp-form-row {
    grid-template-columns: 1fr;
  }
}

.sp-form-input,
.sp-form-select,
.sp-form-textarea,
.sp-input {
  width: 100%;
  padding: var(--sp-space-3) var(--sp-space-4);
  font-family: var(--sp-font-body);
  font-size: 1rem;
  font-weight: var(--sp-font-weight-light);
  line-height: 1.5;
  color: var(--sp-text-primary);
  background: var(--sp-white);
  border: 1px solid #c3d7e9;
  border-radius: 4px;
  transition: border-color var(--sp-transition-fast), box-shadow var(--sp-transition-fast), background-color var(--sp-transition-fast);
}
.sp-form-input:focus,
.sp-form-select:focus,
.sp-form-textarea:focus,
.sp-input:focus {
  outline: none;
  border-color: var(--sp-red);
  box-shadow: 0 0 0 3px rgba(217, 43, 49, 0.1);
}
.sp-form-input::placeholder,
.sp-form-select::placeholder,
.sp-form-textarea::placeholder,
.sp-input::placeholder {
  color: var(--sp-text-muted);
  transition: opacity var(--sp-transition-fast);
}
.sp-form-input:focus::placeholder,
.sp-form-select:focus::placeholder,
.sp-form-textarea:focus::placeholder,
.sp-input:focus::placeholder {
  opacity: 0.5;
}
.sp-form-input.sp-input--error, .sp-form-input:invalid:not(:placeholder-shown),
.sp-form-select.sp-input--error,
.sp-form-select:invalid:not(:placeholder-shown),
.sp-form-textarea.sp-input--error,
.sp-form-textarea:invalid:not(:placeholder-shown),
.sp-input.sp-input--error,
.sp-input:invalid:not(:placeholder-shown) {
  border-color: var(--sp-danger);
}
.sp-form-input.sp-input--error:focus, .sp-form-input:invalid:not(:placeholder-shown):focus,
.sp-form-select.sp-input--error:focus,
.sp-form-select:invalid:not(:placeholder-shown):focus,
.sp-form-textarea.sp-input--error:focus,
.sp-form-textarea:invalid:not(:placeholder-shown):focus,
.sp-input.sp-input--error:focus,
.sp-input:invalid:not(:placeholder-shown):focus {
  box-shadow: 0 0 0 3px rgba(239, 68, 68, 0.1);
}
.sp-form-input.sp-input--success, .sp-form-input:valid:not(:placeholder-shown),
.sp-form-select.sp-input--success,
.sp-form-select:valid:not(:placeholder-shown),
.sp-form-textarea.sp-input--success,
.sp-form-textarea:valid:not(:placeholder-shown),
.sp-input.sp-input--success,
.sp-input:valid:not(:placeholder-shown) {
  border-color: var(--sp-success);
}
.sp-form-input.sp-input--success:focus, .sp-form-input:valid:not(:placeholder-shown):focus,
.sp-form-select.sp-input--success:focus,
.sp-form-select:valid:not(:placeholder-shown):focus,
.sp-form-textarea.sp-input--success:focus,
.sp-form-textarea:valid:not(:placeholder-shown):focus,
.sp-input.sp-input--success:focus,
.sp-input:valid:not(:placeholder-shown):focus {
  box-shadow: 0 0 0 3px rgba(34, 197, 94, 0.1);
}

.sp-input--textarea {
  resize: vertical;
  min-height: 80px;
}

.sp-input--select {
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath fill='%235e92b8' d='M8 11L3 6h10l-5 5z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right var(--sp-space-3) center;
  padding-right: var(--sp-space-8);
}

.sp-checkbox-group {
  display: flex;
  flex-direction: column;
  gap: var(--sp-space-3);
}

.sp-checkbox {
  display: flex;
  align-items: flex-start;
  gap: var(--sp-space-3);
  cursor: pointer;
}

.sp-checkbox input[type=checkbox],
.sp-checkbox__input {
  width: 20px;
  height: 20px;
  margin: 0;
  accent-color: var(--sp-red);
  cursor: pointer;
  flex-shrink: 0;
}

.sp-checkbox__label {
  font-size: 0.9375rem;
  color: var(--sp-text-primary);
  line-height: 1.4;
  display: flex;
  align-items: center;
  gap: var(--sp-space-2);
}

.sp-radio {
  display: flex;
  align-items: flex-start;
  gap: var(--sp-space-3);
  cursor: pointer;
}

.sp-radio__input {
  width: 20px;
  height: 20px;
  margin: 0;
  accent-color: var(--sp-red);
  cursor: pointer;
}

.sp-radio__label {
  font-size: 0.9375rem;
  color: var(--sp-text-primary);
  line-height: 1.4;
}

.sp-toggle {
  display: flex;
  align-items: center;
  gap: var(--sp-space-3);
  cursor: pointer;
}

.sp-toggle__input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}

.sp-toggle__slider {
  position: relative;
  width: 48px;
  height: 24px;
  background: #c3d7e9;
  border-radius: 9999px;
  transition: background 0.2s ease, box-shadow 0.2s ease;
}
.sp-toggle__slider::before {
  content: "";
  position: absolute;
  top: 2px;
  left: 2px;
  width: 20px;
  height: 20px;
  background: var(--sp-white);
  border-radius: 50%;
  box-shadow: var(--sp-shadow-sm);
  transition: transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1);
}
@media (prefers-reduced-motion: reduce) {
  .sp-toggle__slider::before {
    transition: transform 0.1s ease;
  }
}

.sp-toggle__input:checked + .sp-toggle__slider {
  background: var(--sp-gradient-primary);
}
.sp-toggle__input:checked + .sp-toggle__slider::before {
  transform: translateX(24px);
}

.sp-toggle__input:focus-visible + .sp-toggle__slider {
  box-shadow: 0 0 0 2px var(--sp-card-bg), 0 0 0 4px var(--sp-red);
}

.sp-toggle__label {
  font-size: 0.9375rem;
  color: var(--sp-text-primary);
}

.sp-ai-suggestion {
  background: #f0f5fa;
  border: 1px dashed #94b8d4;
  border-radius: 4px;
  padding: var(--sp-space-4);
  margin-top: var(--sp-space-4);
}

.sp-ai-suggestion__header {
  display: flex;
  align-items: center;
  gap: var(--sp-space-2);
  font-size: 0.875rem;
  color: #2d5573;
  margin-bottom: var(--sp-space-3);
}
.sp-ai-suggestion__header i {
  font-size: 1rem;
}

.sp-input-mobile {
  width: 100%;
  min-height: 48px;
  padding: 12px 16px;
  font-size: 16px;
  border: 1px solid #c3d7e9;
  border-radius: 4px;
  background-color: var(--sp-white);
  touch-action: manipulation;
}
.sp-input-mobile:focus {
  outline: none;
  border-color: var(--sp-red);
  box-shadow: 0 0 0 2px rgba(217, 43, 49, 0.2);
}
.sp-input-mobile::placeholder {
  color: var(--sp-text-secondary);
}

.sp-textarea-mobile {
  width: 100%;
  min-height: 100px;
  padding: 12px 16px;
  font-size: 16px;
  border: 1px solid #c3d7e9;
  border-radius: 4px;
  background-color: var(--sp-white);
  touch-action: manipulation;
  resize: vertical;
}
.sp-textarea-mobile:focus {
  outline: none;
  border-color: var(--sp-red);
  box-shadow: 0 0 0 2px rgba(217, 43, 49, 0.2);
}

.sp-select-mobile {
  width: 100%;
  min-height: 48px;
  padding: 12px 40px 12px 16px;
  font-size: 16px;
  border: 1px solid #c3d7e9;
  border-radius: 4px;
  background-color: var(--sp-white);
  touch-action: manipulation;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 16 16'%3E%3Cpath fill='%236c757d' d='M8 11L3 6h10l-5 5z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
}
.sp-select-mobile:focus {
  outline: none;
  border-color: var(--sp-red);
  box-shadow: 0 0 0 2px rgba(217, 43, 49, 0.2);
}

.sp-checkbox-mobile {
  display: flex;
  align-items: center;
  min-height: 44px;
  padding: 8px 0;
  cursor: pointer;
  touch-action: manipulation;
}
.sp-checkbox-mobile input[type=checkbox],
.sp-checkbox-mobile input[type=radio] {
  width: 20px;
  height: 20px;
  margin-right: 12px;
  cursor: pointer;
}
.sp-checkbox-mobile label {
  cursor: pointer;
  user-select: none;
}

@keyframes sp-shake {
  0%, 100% {
    transform: translateX(0);
  }
  10%, 30%, 50%, 70%, 90% {
    transform: translateX(-4px);
  }
  20%, 40%, 60%, 80% {
    transform: translateX(4px);
  }
}
.sp-input--shake {
  animation: sp-shake 0.4s ease;
}
@media (prefers-reduced-motion: reduce) {
  .sp-input--shake {
    animation: none;
  }
}

.sp-input-wrapper--success {
  position: relative;
}
.sp-input-wrapper--success::after {
  content: "✓";
  position: absolute;
  right: var(--sp-space-3);
  top: 50%;
  transform: translateY(-50%) scale(0);
  color: var(--sp-success);
  font-weight: bold;
  animation: sp-input-check 0.3s ease forwards;
}
@media (prefers-reduced-motion: reduce) {
  .sp-input-wrapper--success::after {
    transform: translateY(-50%) scale(1);
    animation: none;
  }
}

@keyframes sp-input-check {
  0% {
    transform: translateY(-50%) scale(0);
    opacity: 0;
  }
  60% {
    transform: translateY(-50%) scale(1.2);
  }
  100% {
    transform: translateY(-50%) scale(1);
    opacity: 1;
  }
}
.sp-journey-tabs {
  background: var(--sp-white);
  position: relative;
  z-index: 5;
  margin-top: -30px;
  box-shadow: var(--sp-shadow-sm);
}

.sp-journey-tabs__list {
  display: flex;
  gap: var(--sp-space-1);
  padding: var(--sp-space-3) var(--sp-content-padding);
  margin: 0;
  list-style: none;
  max-width: var(--sp-content-max-width);
  margin-left: auto;
  margin-right: auto;
  justify-content: flex-start;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.sp-journey-tabs__list::-webkit-scrollbar {
  display: none;
}

.sp-journey-tabs__item {
  flex-shrink: 0;
}

.sp-journey-tabs__link {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: var(--sp-space-4) var(--sp-space-5);
  font-size: 1rem;
  font-weight: var(--sp-font-weight-medium);
  color: var(--sp-text-secondary);
  text-decoration: none;
  background: #f0f5fa;
  border-radius: 6px;
  transition: all var(--sp-transition-fast);
  white-space: nowrap;
  border: 1px solid transparent;
}
.sp-journey-tabs__link:hover {
  color: var(--sp-text-dark);
  background: #e1ebf4;
  border-color: #c3d7e9;
}
.sp-journey-tabs__link:focus-visible {
  outline: 2px solid var(--sp-red);
  outline-offset: 2px;
}

.sp-journey-tabs__link--active {
  color: var(--sp-white);
  background: var(--sp-gradient-primary);
  box-shadow: var(--sp-shadow-sm);
}
.sp-journey-tabs__link--active:hover {
  color: var(--sp-white);
}

.sp-journey-tabs__icon {
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.25rem;
  background: rgba(255, 255, 255, 0.2);
  border-radius: 4px;
  transition: all var(--sp-transition-fast);
}
.sp-journey-tabs__icon img, .sp-journey-tabs__icon svg {
  width: 24px;
  height: 24px;
}

.sp-journey-tabs__link:not(.sp-journey-tabs__link--active) .sp-journey-tabs__icon {
  background: var(--sp-white);
  color: #3d6f94;
}

.sp-journey-tabs__title {
  font-size: 0.9375rem;
}

.sp-journey-tabs__badge {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  height: 20px;
  padding: 0 6px;
  font-size: 0.6875rem;
  font-weight: var(--sp-font-weight-semibold);
  background: rgba(255, 255, 255, 0.3);
  border-radius: 9999px;
}

.sp-journey-tabs__link:not(.sp-journey-tabs__link--active) .sp-journey-tabs__badge {
  background: #c3d7e9;
  color: #1e3a52;
}

@media (max-width: 768px) {
  .sp-journey-tabs__list {
    padding: var(--sp-space-2) var(--sp-space-3);
    gap: var(--sp-space-2);
  }
  .sp-journey-tabs__link {
    padding: var(--sp-space-3) var(--sp-space-4);
    font-size: 0.875rem;
  }
  .sp-journey-tabs__icon {
    width: 32px;
    height: 32px;
    font-size: 1rem;
  }
  .sp-journey-tabs__title {
    font-size: 0.8125rem;
  }
}
.dark .sp-journey-tabs,
[data-theme=dark] .sp-journey-tabs {
  background: var(--sp-card-bg);
}
.dark .sp-journey-tabs__link,
[data-theme=dark] .sp-journey-tabs__link {
  background: rgba(94, 146, 184, 0.12);
  color: var(--sp-text-secondary);
  border-color: transparent;
}
.dark .sp-journey-tabs__link:hover,
[data-theme=dark] .sp-journey-tabs__link:hover {
  background: rgba(94, 146, 184, 0.2);
  color: var(--sp-text-primary);
  border-color: rgba(148, 184, 212, 0.3);
}
.dark .sp-journey-tabs__link--active,
[data-theme=dark] .sp-journey-tabs__link--active {
  color: var(--sp-white);
  background: var(--sp-gradient-primary);
  border-color: transparent;
}
.dark .sp-journey-tabs__link--active:hover,
[data-theme=dark] .sp-journey-tabs__link--active:hover {
  color: var(--sp-white);
  background: var(--sp-gradient-primary);
  border-color: transparent;
}
.dark .sp-journey-tabs__link:not(.sp-journey-tabs__link--active) .sp-journey-tabs__icon,
[data-theme=dark] .sp-journey-tabs__link:not(.sp-journey-tabs__link--active) .sp-journey-tabs__icon {
  background: rgba(94, 146, 184, 0.2);
  color: var(--sp-text-secondary);
}
.dark .sp-journey-tabs__link:not(.sp-journey-tabs__link--active) .sp-journey-tabs__badge,
[data-theme=dark] .sp-journey-tabs__link:not(.sp-journey-tabs__link--active) .sp-journey-tabs__badge {
  background: rgba(94, 146, 184, 0.3);
  color: var(--sp-text-secondary);
}

.sp-modal-backdrop {
  position: fixed;
  inset: 0;
  background: rgba(4, 22, 36, 0.5);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
  padding: var(--sp-space-4);
}

.sp-modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(4, 22, 36, 0.5);
  backdrop-filter: blur(2px);
  display: flex;
  align-items: center;
  justify-content: center;
  z-index: 9999;
  opacity: 0;
  visibility: hidden;
  transition: opacity var(--sp-transition-base), visibility var(--sp-transition-base);
}
@media (prefers-reduced-motion: reduce) {
  .sp-modal-overlay {
    backdrop-filter: none;
    transition-duration: 0.1s;
  }
}

.sp-modal-overlay--open {
  opacity: 1;
  visibility: visible;
}

.sp-modal {
  width: 100%;
  max-width: 500px;
  max-height: 90vh;
  background: var(--sp-white);
  border-radius: 6px;
  box-shadow: var(--sp-shadow-lg);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transform: scale(0.95) translateY(10px);
  opacity: 0;
  transition: transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1), opacity 0.2s ease;
}
@media (prefers-reduced-motion: reduce) {
  .sp-modal {
    transform: none;
    transition: opacity 0.1s ease;
  }
}
.sp-modal-overlay--open .sp-modal {
  transform: scale(1) translateY(0);
  opacity: 1;
}

.sp-modal--sm {
  max-width: 400px;
}

.sp-modal--lg {
  max-width: 700px;
}

.sp-modal-overlay--open .sp-modal {
  transform: scale(1);
}

.sp-modal__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-space-3);
  padding: var(--sp-space-5) var(--sp-space-6);
  border-bottom: var(--sp-border-subtle);
  flex-shrink: 0;
}

.sp-modal__header--danger {
  background: var(--sp-danger-light);
  border-bottom-color: rgba(239, 68, 68, 0.2);
}
.sp-modal__header--danger .sp-modal__title {
  color: var(--sp-danger);
}

.sp-modal__title {
  font-family: var(--sp-font-heading);
  font-size: 1.25rem;
  font-weight: var(--sp-font-weight-semibold);
  color: var(--sp-text-dark);
  margin: 0;
  display: flex;
  align-items: center;
  gap: 8px;
}

.sp-modal__close {
  padding: var(--sp-space-2);
  background: none;
  border: none;
  color: var(--sp-text-muted);
  cursor: pointer;
  border-radius: 4px;
  transition: all var(--sp-transition-fast);
  flex-shrink: 0;
}
.sp-modal__close:hover {
  background: #f0f5fa;
  color: var(--sp-text-dark);
}

.sp-modal__body {
  padding: var(--sp-space-6);
  overflow-y: auto;
  flex: 1;
}

.sp-modal__footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--sp-space-3);
  padding: var(--sp-space-4) var(--sp-space-6);
  border-top: var(--sp-border-subtle);
  background: #f0f5fa;
  flex-shrink: 0;
}

.sp-modal__footer--center {
  justify-content: center;
}

.sp-module {
  position: relative;
}
.sp-module.is-complete::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
  width: 4px;
  background: var(--sp-success);
  border-radius: 2px 0 0 2px;
}
.sp-module.is-required::after {
  content: "*";
  position: absolute;
  top: var(--sp-space-4);
  right: var(--sp-space-4);
  color: var(--sp-red);
  font-size: var(--sp-font-size-lg);
  font-weight: var(--sp-font-weight-bold);
}

.sp-module--card {
  background: var(--sp-card-bg);
  border-radius: 6px;
  box-shadow: var(--sp-shadow-card);
  border: 1px solid var(--sp-card-border);
  padding: var(--sp-space-6);
  margin-bottom: var(--sp-space-6);
}
@media (max-width: 576px) {
  .sp-module--card {
    padding: var(--sp-space-4);
    border-radius: 4px;
  }
}

.sp-module--flat {
  padding: var(--sp-space-4) 0;
  border-bottom: 1px solid var(--sp-card-border);
}
.sp-module--flat:last-child {
  border-bottom: none;
}

.sp-module--compact {
  padding: var(--sp-space-4);
}
.sp-module--compact .sp-module__header {
  margin-bottom: var(--sp-space-3);
}
.sp-module--compact .sp-module__content {
  font-size: var(--sp-font-size-sm);
}

.sp-module__header {
  margin-bottom: var(--sp-space-4);
}

.sp-module__title-row {
  display: flex;
  align-items: center;
  gap: var(--sp-space-2);
  margin-bottom: var(--sp-space-2);
}

.sp-module__icon {
  flex-shrink: 0;
  color: var(--sp-red);
  font-size: 1.25rem;
}

.sp-module__title {
  font-family: var(--sp-font-family-heading);
  font-size: var(--sp-font-size-lg);
  font-weight: var(--sp-font-weight-semibold);
  color: var(--sp-text-primary);
  margin: 0;
  line-height: var(--sp-line-height-tight);
}

.sp-module__required {
  color: var(--sp-red);
  font-size: var(--sp-font-size-sm);
  font-weight: var(--sp-font-weight-bold);
  margin-left: var(--sp-space-1);
}

.sp-module__description {
  font-size: var(--sp-font-size-base);
  color: var(--sp-text-secondary);
  line-height: var(--sp-line-height-relaxed);
  margin: 0;
}

.sp-module__footer {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: var(--sp-space-4);
  padding-top: var(--sp-space-4);
  border-top: 1px solid var(--sp-card-border);
}

.sp-module__actions {
  display: flex;
  gap: var(--sp-space-2);
}

.sp-module__meta {
  font-size: var(--sp-font-size-sm);
  color: var(--sp-text-muted);
}

.sp-module--reflection,
.sp-module--question {
  border-left: 4px solid var(--sp-module-reflection-border, #f59e0b);
}
.sp-module--reflection .sp-module__icon,
.sp-module--question .sp-module__icon {
  color: var(--sp-module-reflection-text, #b45309);
}

.sp-module--ai {
  border-left: 4px solid var(--sp-module-ai-border, #8b5cf6);
}
.sp-module--ai .sp-module__icon {
  color: var(--sp-module-ai-text, #7c3aed);
}

.sp-module--goal,
.sp-module--planning {
  border-left: 4px solid var(--sp-module-goal-border, #3b82f6);
}
.sp-module--goal .sp-module__icon,
.sp-module--planning .sp-module__icon {
  color: var(--sp-module-goal-text, #2563eb);
}

.sp-module--content {
  border-left: 4px solid var(--sp-module-content-border, #10b981);
}
.sp-module--content .sp-module__icon {
  color: var(--sp-module-content-text, #059669);
}

.sp-module--audio {
  border-left: 4px solid var(--sp-module-audio-border, #ec4899);
}
.sp-module--audio .sp-module__icon {
  color: var(--sp-module-audio-text, #db2777);
}

.sp-module--video {
  border-left: 4px solid var(--sp-red);
}
.sp-module--video .sp-module__icon {
  color: var(--sp-red);
}

.sp-module--assessment {
  border-left: 4px solid var(--sp-module-assessment-border, #6366f1);
}
.sp-module--assessment .sp-module__icon {
  color: var(--sp-module-assessment-text, #4f46e5);
}

.sp-module--selection {
  border-left: 4px solid var(--sp-module-selection-border, #06b6d4);
}
.sp-module--selection .sp-module__icon {
  color: var(--sp-module-selection-text, #0891b2);
}

.progressive-hidden {
  opacity: 0;
  transform: translateY(20px);
  transition: opacity 0.3s ease, transform 0.3s ease;
}

.progressive-visible {
  opacity: 1;
  transform: translateY(0);
}

.progressive-next-container {
  margin-top: var(--sp-space-4);
  text-align: center;
}

.btn-show-next-section {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-space-2);
  padding: var(--sp-space-3) var(--sp-space-6);
  background: var(--sp-gradient-secondary);
  color: var(--sp-text-on-dark);
  border: none;
  border-radius: 6px;
  font-weight: var(--sp-font-weight-medium);
  cursor: pointer;
  transition: all var(--sp-transition-base);
  box-shadow: var(--sp-shadow-md);
}
.btn-show-next-section:hover {
  transform: translateY(-2px);
  box-shadow: var(--sp-shadow-lg);
}
.btn-show-next-section i {
  transition: transform 0.2s ease;
}
.btn-show-next-section:hover i {
  transform: translateY(2px);
}

.sp-modules--animated .sp-module {
  opacity: 0;
  transform: translateY(20px);
  animation: sp-module-enter 0.4s ease forwards;
}
.sp-modules--animated .sp-module:nth-child(1) {
  animation-delay: 0.1s;
}
.sp-modules--animated .sp-module:nth-child(2) {
  animation-delay: 0.2s;
}
.sp-modules--animated .sp-module:nth-child(3) {
  animation-delay: 0.3s;
}
.sp-modules--animated .sp-module:nth-child(4) {
  animation-delay: 0.4s;
}
.sp-modules--animated .sp-module:nth-child(5) {
  animation-delay: 0.5s;
}
.sp-modules--animated .sp-module:nth-child(6) {
  animation-delay: 0.6s;
}
.sp-modules--animated .sp-module:nth-child(7) {
  animation-delay: 0.7s;
}
.sp-modules--animated .sp-module:nth-child(8) {
  animation-delay: 0.8s;
}
.sp-modules--animated .sp-module:nth-child(9) {
  animation-delay: 0.9s;
}
.sp-modules--animated .sp-module:nth-child(10) {
  animation-delay: 1s;
}

@keyframes sp-module-enter {
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.sp-module--just-completed {
  animation: sp-module-complete 0.5s ease;
}

@keyframes sp-module-complete {
  0%, 100% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.02);
    box-shadow: 0 0 20px rgba(16, 185, 129, 0.3);
  }
}
.dark .sp-module--card, [data-theme=dark] .sp-module--card {
  background: var(--sp-card-bg);
  border-color: var(--sp-card-border);
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.3);
}
.dark .sp-module--flat, [data-theme=dark] .sp-module--flat {
  border-bottom-color: var(--sp-card-border);
}
.dark .sp-module__title, [data-theme=dark] .sp-module__title {
  color: var(--sp-text-primary);
}
.dark .sp-module__description, [data-theme=dark] .sp-module__description {
  color: var(--sp-text-secondary);
}
.dark .sp-module__footer, [data-theme=dark] .sp-module__footer {
  border-top-color: var(--sp-card-border);
}
.dark .sp-module__meta, [data-theme=dark] .sp-module__meta {
  color: var(--sp-text-muted);
}
.dark .sp-module--reflection,
.dark .sp-module--question, [data-theme=dark] .sp-module--reflection,
[data-theme=dark] .sp-module--question {
  border-left-color: #fbbf24;
}
.dark .sp-module--reflection .sp-module__icon,
.dark .sp-module--question .sp-module__icon, [data-theme=dark] .sp-module--reflection .sp-module__icon,
[data-theme=dark] .sp-module--question .sp-module__icon {
  color: #fcd34d;
}
.dark .sp-module--ai, [data-theme=dark] .sp-module--ai {
  border-left-color: #a78bfa;
}
.dark .sp-module--ai .sp-module__icon, [data-theme=dark] .sp-module--ai .sp-module__icon {
  color: #c4b5fd;
}
.dark .sp-module--goal,
.dark .sp-module--planning, [data-theme=dark] .sp-module--goal,
[data-theme=dark] .sp-module--planning {
  border-left-color: #60a5fa;
}
.dark .sp-module--goal .sp-module__icon,
.dark .sp-module--planning .sp-module__icon, [data-theme=dark] .sp-module--goal .sp-module__icon,
[data-theme=dark] .sp-module--planning .sp-module__icon {
  color: #93c5fd;
}
.dark .sp-module--content, [data-theme=dark] .sp-module--content {
  border-left-color: #34d399;
}
.dark .sp-module--content .sp-module__icon, [data-theme=dark] .sp-module--content .sp-module__icon {
  color: #6ee7b7;
}
.dark .sp-module--audio, [data-theme=dark] .sp-module--audio {
  border-left-color: #f472b6;
}
.dark .sp-module--audio .sp-module__icon, [data-theme=dark] .sp-module--audio .sp-module__icon {
  color: #f9a8d4;
}
.dark .sp-module--assessment, [data-theme=dark] .sp-module--assessment {
  border-left-color: #818cf8;
}
.dark .sp-module--assessment .sp-module__icon, [data-theme=dark] .sp-module--assessment .sp-module__icon {
  color: #a5b4fc;
}
.dark .sp-module--selection, [data-theme=dark] .sp-module--selection {
  border-left-color: #22d3ee;
}
.dark .sp-module--selection .sp-module__icon, [data-theme=dark] .sp-module--selection .sp-module__icon {
  color: #67e8f9;
}
.dark .btn-show-next-section, [data-theme=dark] .btn-show-next-section {
  background: var(--sp-gradient-secondary);
  box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.4);
}

@media (max-width: 576px) {
  .sp-module__header {
    margin-bottom: var(--sp-space-3);
  }
  .sp-module__title {
    font-size: var(--sp-font-size-base);
  }
  .sp-module__description {
    font-size: var(--sp-font-size-sm);
  }
  .sp-module__footer {
    flex-direction: column;
    gap: var(--sp-space-3);
    align-items: stretch;
  }
  .sp-module__footer .sp-module__actions {
    order: -1;
    justify-content: center;
  }
}
@media (prefers-reduced-motion: reduce) {
  .sp-modules--animated .sp-module {
    animation: none;
    opacity: 1;
    transform: none;
  }
  .progressive-hidden {
    transition: none;
  }
  .btn-show-next-section {
    transition: none;
  }
  .btn-show-next-section:hover {
    transform: none;
  }
  .sp-module--just-completed {
    animation: none;
  }
}
.sp-nav {
  background: var(--sp-white);
  position: relative;
  border-bottom: none !important;
}

.sp-nav,
.sp-nav *,
nav,
nav *,
header nav,
[role=banner] nav,
.navbar,
.navbar * {
  border-bottom-width: 0 !important;
  border-bottom-style: none !important;
}

.sp-nav--diamond {
  margin-bottom: 30px;
}
.sp-nav--diamond::after {
  content: "";
  position: absolute;
  right: calc(50% - var(--sp-content-max-width) / 2 + var(--sp-content-padding) + 40px);
  bottom: -6px;
  width: 40px;
  height: 40px;
  background: var(--sp-white);
  transform: rotate(45deg) translateX(50%);
  z-index: 10;
}
@media (max-width: 1248px) {
  .sp-nav--diamond::after {
    right: calc(var(--sp-content-padding) + 40px);
  }
}

.sp-nav__inner {
  width: 100%;
  padding: 0 var(--sp-content-padding);
}

.sp-nav__container {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  margin: 0 auto;
  height: 72px;
  min-width: 0;
}

.sp-nav__brand {
  display: flex;
  align-items: center;
  text-decoration: none;
  flex-shrink: 0;
}

.sp-nav__logo {
  height: 44px;
  width: auto;
}

.sp-nav__right {
  display: flex;
  align-items: center;
  gap: var(--sp-space-2);
}

.sp-nav__divider {
  width: 1px;
  height: 32px;
  background: #e1ebf4;
  margin: 0 var(--sp-space-2);
}

.sp-nav__program {
  display: flex;
  align-items: center;
}
@media (max-width: 576px) {
  .sp-nav__program {
    display: none;
  }
}

.sp-nav__program-btn {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: var(--sp-space-2) var(--sp-space-4);
  background: transparent;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  transition: all var(--sp-transition-fast);
}
.sp-nav__program-btn:hover {
  background: #f0f5fa;
}

.sp-nav__program-info {
  text-align: right;
}

.sp-nav__program-name {
  display: block;
  font-size: 0.9375rem;
  font-weight: var(--sp-font-weight-medium);
  color: var(--sp-text-dark);
  line-height: 1.3;
}

.sp-nav__program-code {
  display: block;
  font-size: 0.75rem;
  color: var(--sp-text-muted);
  line-height: 1.3;
}

.sp-nav__program-chevron {
  font-size: 0.75rem;
  color: var(--sp-text-muted);
  transition: transform var(--sp-transition-fast);
}

.sp-nav__program-btn[aria-expanded=true] .sp-nav__program-chevron {
  transform: rotate(180deg);
}

.sp-nav__program-dropdown {
  position: absolute;
  right: 0;
  top: 100%;
  margin-top: var(--sp-space-2);
  min-width: 280px;
  background: var(--sp-white);
  border-radius: 6px;
  box-shadow: var(--sp-shadow-lg);
  z-index: 100;
  padding: var(--sp-space-2) 0;
}

.sp-nav__theme-toggle {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  font-size: 1.125rem;
  color: var(--sp-text-secondary);
  background: transparent;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  transition: all var(--sp-transition-fast);
}
.sp-nav__theme-toggle:hover {
  background: #f0f5fa;
  color: var(--sp-text-dark);
}
.sp-nav__theme-toggle:focus-visible {
  outline: none;
  box-shadow: 0 0 0 2px rgba(94, 146, 184, 0.4);
}
.sp-nav__theme-toggle i {
  transition: transform var(--sp-transition-base);
}
.sp-nav__theme-toggle:hover i {
  transform: rotate(15deg);
}

.sp-nav__notification {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  font-size: 1.25rem;
  color: var(--sp-text-secondary);
  border-radius: 4px;
  transition: all var(--sp-transition-fast);
}
.sp-nav__notification:hover {
  background: #f0f5fa;
  color: var(--sp-text-dark);
}

.sp-nav__notification-badge {
  position: absolute;
  top: 4px;
  right: 4px;
  min-width: 18px;
  height: 18px;
  padding: 0 5px;
  font-size: 0.6875rem;
  font-weight: var(--sp-font-weight-semibold);
  color: var(--sp-white);
  background: var(--sp-red);
  border-radius: 9999px;
  display: flex;
  align-items: center;
  justify-content: center;
}

.sp-nav__avatar-btn {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: var(--sp-space-2);
  background: transparent;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  transition: all var(--sp-transition-fast);
}
.sp-nav__avatar-btn:hover {
  background: #f0f5fa;
}

.sp-nav__avatar {
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--sp-gradient-primary);
  color: var(--sp-white);
  font-size: 0.875rem;
  font-weight: var(--sp-font-weight-medium);
  border-radius: 9999px;
  box-shadow: 0 2px 4px rgba(217, 43, 49, 0.2);
}

.sp-nav__avatar-chevron {
  font-size: 0.75rem;
  color: var(--sp-text-muted);
  transition: transform var(--sp-transition-fast);
}

.sp-nav__avatar-btn[aria-expanded=true] .sp-nav__avatar-chevron {
  transform: rotate(180deg);
}

.sp-nav__menu {
  position: absolute;
  right: 0;
  top: 100%;
  margin-top: var(--sp-space-2);
  width: 280px;
  background: var(--sp-white);
  border-radius: 6px;
  box-shadow: var(--sp-shadow-lg);
  z-index: 100;
  overflow: hidden;
}

.sp-nav__menu-header {
  display: flex;
  flex-direction: column;
  padding: var(--sp-space-5);
  background: linear-gradient(to right, var(--sp-blue-700), var(--sp-blue-600)) !important;
  color: var(--sp-white) !important;
  background-image: linear-gradient(to right, var(--sp-blue-700), var(--sp-blue-600)) !important;
}

.sp-nav__menu-avatar {
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--sp-white);
  color: var(--sp-blue-700);
  font-size: 1rem;
  font-weight: var(--sp-font-weight-medium);
  border-radius: 9999px;
}

.sp-nav__menu-name {
  font-weight: var(--sp-font-weight-medium);
  color: var(--sp-white);
}

.sp-nav__menu-role {
  font-size: 0.8125rem;
  color: rgba(255, 255, 255, 0.7);
}

.sp-nav__menu-section {
  padding: var(--sp-space-2) 0;
}

.sp-nav__menu-label {
  padding: var(--sp-space-2) var(--sp-space-4);
  font-size: 0.6875rem;
  font-weight: var(--sp-font-weight-medium);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--sp-text-muted);
}

.sp-nav__menu-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: var(--sp-space-2) var(--sp-space-4);
  font-size: 0.9375rem;
  color: var(--sp-text-primary);
  text-decoration: none;
  transition: background var(--sp-transition-fast);
}
.sp-nav__menu-item:hover {
  background: #f0f5fa;
  color: var(--sp-text-dark);
}
.sp-nav__menu-item i {
  width: 18px;
  color: var(--sp-text-muted);
}

.sp-nav__menu-item--full {
  width: 100%;
  border: none;
  background: transparent;
  cursor: pointer;
  font-family: inherit;
  text-align: left;
}

.sp-nav__dropdown-label {
  padding: var(--sp-space-2) var(--sp-space-4);
  font-size: 0.6875rem;
  font-weight: var(--sp-font-weight-medium);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--sp-text-muted);
}

.sp-nav__dropdown-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: var(--sp-space-2) var(--sp-space-4);
  font-size: 0.9375rem;
  color: var(--sp-text-primary);
  text-decoration: none;
  transition: background var(--sp-transition-fast);
}
.sp-nav__dropdown-item:hover {
  background: #f0f5fa;
}

.sp-nav__dropdown-item--active {
  color: var(--sp-red);
  font-weight: var(--sp-font-weight-medium);
}

.sp-nav__dropdown-item-code {
  font-size: 0.6875rem;
  color: var(--sp-text-muted);
}

.sp-mobile-menu-item {
  display: flex;
  align-items: center;
  gap: 12px;
  min-height: 48px;
  padding: 12px 16px;
  color: var(--sp-text-primary);
  text-decoration: none;
  border-radius: var(--sp-radius-md);
  touch-action: manipulation;
  transition: background-color var(--sp-transition-fast);
}
.sp-mobile-menu-item:hover, .sp-mobile-menu-item:focus {
  background-color: var(--sp-blue-50);
}
.sp-mobile-menu-item:active {
  background-color: var(--sp-blue-100);
}
.sp-mobile-menu-item i {
  font-size: 1.25rem;
  color: var(--sp-text-secondary);
}

#notification-drawer {
  transform: translateX(-100%);
  transition: transform 0.3s cubic-bezier(0.4, 0, 0.2, 1);
  background: var(--sp-card-bg);
}
#notification-drawer.open {
  transform: translateX(0);
}
.dark #notification-drawer, .dark-mode #notification-drawer, [data-theme=dark] #notification-drawer {
  box-shadow: 4px 0 24px rgba(0, 0, 0, 0.4);
}

#notification-drawer-overlay {
  transition: opacity 0.3s ease;
}
#notification-drawer-overlay.hidden {
  display: none;
}
#notification-drawer-overlay.open {
  display: block;
  opacity: 1;
}

.sp-mobile-footer {
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  background: var(--sp-card-bg);
  border-top: 1px solid var(--sp-card-border);
  box-shadow: 0 -2px 10px rgba(4, 22, 36, 0.08);
  z-index: var(--sp-z-fixed);
  padding-bottom: env(safe-area-inset-bottom);
}
@media (min-width: 768px) {
  .sp-mobile-footer {
    display: none;
  }
}
.dark .sp-mobile-footer, .dark-mode .sp-mobile-footer, [data-theme=dark] .sp-mobile-footer {
  box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.3);
}

.sp-mobile-footer__nav {
  display: flex;
  justify-content: space-around;
  align-items: center;
  height: 64px;
}

.sp-mobile-footer__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  flex: 1;
  padding: var(--sp-space-2) var(--sp-space-1);
  color: var(--sp-text-muted);
  text-decoration: none;
  background: none;
  border: none;
  cursor: pointer;
  transition: color var(--sp-transition-fast);
}
.sp-mobile-footer__item:hover, .sp-mobile-footer__item:focus {
  color: var(--sp-text-primary);
}
.sp-mobile-footer__item--active {
  color: var(--sp-red);
}
.sp-mobile-footer__item--active .sp-mobile-footer__icon {
  color: var(--sp-red);
}

.sp-mobile-footer__icon {
  font-size: 1.25rem;
  margin-bottom: var(--sp-space-1);
}

.sp-mobile-footer__label {
  font-size: 0.6875rem;
  font-weight: var(--sp-font-weight-medium);
}

.sp-bottom-sheet {
  position: fixed;
  bottom: 64px;
  left: 0;
  right: 0;
  max-height: 70vh;
  background: var(--sp-card-bg);
  border-radius: var(--sp-radius-xl) var(--sp-radius-xl) 0 0;
  box-shadow: 0 -4px 20px rgba(4, 22, 36, 0.15);
  z-index: var(--sp-z-drawer);
  overflow-y: auto;
  padding-bottom: env(safe-area-inset-bottom);
}
.dark .sp-bottom-sheet, .dark-mode .sp-bottom-sheet, [data-theme=dark] .sp-bottom-sheet {
  box-shadow: 0 -4px 20px rgba(0, 0, 0, 0.4);
}

.sp-bottom-sheet__handle {
  display: flex;
  justify-content: center;
  padding: var(--sp-space-3) 0;
}

.sp-bottom-sheet__handle-bar {
  width: 40px;
  height: 4px;
  background: var(--sp-blue-200);
  border-radius: 2px;
}

.sp-bottom-sheet__content {
  padding: 0 var(--sp-space-4) var(--sp-space-4);
}

.sp-bottom-sheet__section {
  margin-bottom: var(--sp-space-5);
}

.sp-bottom-sheet__section-title {
  font-size: 0.75rem;
  font-weight: var(--sp-font-weight-medium);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--sp-text-muted);
  margin-bottom: var(--sp-space-3);
}

.sp-bottom-sheet__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: var(--sp-space-2);
}

.sp-bottom-sheet__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: var(--sp-space-4) var(--sp-space-2);
  background: var(--sp-blue-50);
  border-radius: var(--sp-radius-md);
  text-decoration: none;
  color: var(--sp-text-primary);
  transition: background-color var(--sp-transition-fast);
}
.sp-bottom-sheet__item:hover, .sp-bottom-sheet__item:active {
  background: var(--sp-blue-100);
}

.sp-bottom-sheet__icon {
  font-size: 1.5rem;
  color: var(--sp-blue-600);
  margin-bottom: var(--sp-space-2);
}

.sp-bottom-sheet__label {
  font-size: 0.8125rem;
  font-weight: var(--sp-font-weight-medium);
}

.sp-bottom-sheet__list {
  display: flex;
  flex-direction: column;
}

.sp-bottom-sheet__list-item {
  display: flex;
  align-items: center;
  gap: var(--sp-space-3);
  padding: var(--sp-space-3) var(--sp-space-2);
  color: var(--sp-text-primary);
  text-decoration: none;
  background: none;
  border: none;
  width: 100%;
  text-align: left;
  font: inherit;
  cursor: pointer;
  border-radius: var(--sp-radius-md);
  transition: background-color var(--sp-transition-fast);
}
.sp-bottom-sheet__list-item:hover, .sp-bottom-sheet__list-item:active {
  background: var(--sp-blue-50);
}
.sp-bottom-sheet__list-item i {
  color: var(--sp-text-secondary);
  width: 20px;
}
.sp-bottom-sheet__list-item--danger {
  color: var(--sp-danger);
}
.sp-bottom-sheet__list-item--danger i {
  color: var(--sp-danger);
}

.sp-bottom-sheet__backdrop {
  position: fixed;
  inset: 0;
  bottom: 64px;
  background: rgba(0, 0, 0, 0.5);
  z-index: calc(var(--sp-z-drawer) - 1);
}

.sp-bottom-sheet__transition-enter {
  transition: transform 0.2s ease-out;
}

.sp-bottom-sheet__transition-enter-start {
  transform: translateY(100%);
}

.sp-bottom-sheet__transition-enter-end {
  transform: translateY(0);
}

.sp-bottom-sheet__transition-leave {
  transition: transform 0.15s ease-in;
}

.sp-bottom-sheet__transition-leave-start {
  transform: translateY(0);
}

.sp-bottom-sheet__transition-leave-end {
  transform: translateY(100%);
}

#notifications-host {
  position: fixed;
  top: 0;
  right: 0;
  padding: var(--sp-space-4);
  z-index: 1055;
  pointer-events: none;
}
#notifications-host > * {
  pointer-events: auto;
}

.toast {
  display: flex;
  align-items: flex-start;
  gap: var(--sp-space-4);
  min-width: 360px;
  max-width: 480px;
  padding: var(--sp-space-5);
  background: var(--sp-white);
  border-radius: var(--sp-radius-lg);
  box-shadow: 0 10px 40px rgba(4, 22, 36, 0.15), 0 2px 8px rgba(4, 22, 36, 0.08);
  border-left: 4px solid var(--sp-blue-500);
  animation: toast-slide-in 0.3s ease-out;
  margin-bottom: var(--sp-space-3);
}
@media (max-width: 576px) {
  .toast {
    min-width: 280px;
    max-width: calc(100vw - 32px);
  }
}

@keyframes toast-slide-in {
  from {
    opacity: 0;
    transform: translateX(20px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
.toast-success {
  border-left-color: var(--sp-success);
}

.toast-warning {
  border-left-color: var(--sp-warning);
}

.toast-danger {
  border-left-color: var(--sp-danger);
}

.toast-info {
  border-left-color: var(--sp-blue-500);
}

.toast-icon {
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  border-radius: var(--sp-radius-full);
  background: var(--sp-blue-100);
  color: var(--sp-blue-600);
}

.toast-success .toast-icon {
  background: var(--sp-success-light);
  color: var(--sp-success);
}

.toast-warning .toast-icon {
  background: var(--sp-warning-light);
  color: var(--sp-warning);
}

.toast-danger .toast-icon {
  background: var(--sp-danger-light);
  color: var(--sp-danger);
}

.toast-info .toast-icon {
  background: var(--sp-blue-100);
  color: var(--sp-blue-600);
}

.toast-content {
  flex: 1;
  padding-top: 2px;
}

.toast-title {
  font-size: 1rem;
  font-weight: var(--sp-font-weight-semibold);
  color: var(--sp-blue-900);
  margin: 0 0 4px;
}

.toast-message {
  font-size: 0.875rem;
  color: var(--sp-blue-600);
  margin: 0;
  line-height: 1.5;
}

.toast-actions {
  display: flex;
  gap: var(--sp-space-2);
  margin-top: var(--sp-space-3);
}

.toast-action {
  padding: 6px 12px;
  font-size: 0.8125rem;
  font-weight: var(--sp-font-weight-medium);
  border-radius: var(--sp-radius-sm);
  border: none;
  cursor: pointer;
  transition: all var(--sp-transition-fast);
}

#notification-drawer {
  transform: translateX(-100%);
  transition: transform 0.3s ease;
}
#notification-drawer.open {
  transform: translateX(0);
}

#notification-drawer-overlay.open {
  display: block !important;
  opacity: 1 !important;
}

#notification-drawer > div:first-child {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--sp-space-4) var(--sp-space-5);
  border-bottom: 1px solid var(--sp-blue-100);
}
#notification-drawer > div:first-child h3 {
  font-size: 1.125rem;
  font-weight: var(--sp-font-weight-semibold);
  color: var(--sp-blue-800);
  margin: 0;
}
#notification-drawer > div:first-child p {
  font-size: 0.75rem;
  color: var(--sp-blue-500);
  margin: 0;
}
#notification-drawer > div:first-child button {
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--sp-blue-400);
  background: transparent;
  border: none;
  border-radius: var(--sp-radius-md);
  cursor: pointer;
  transition: background var(--sp-transition-fast);
}
#notification-drawer > div:first-child button:hover {
  background: var(--sp-blue-50);
}

.notification-drawer-tabs,
.notification-tab {
  display: flex;
  border-bottom: 1px solid var(--sp-blue-100);
}
.notification-drawer-tabs button, .notification-drawer-tabs.notification-tab,
.notification-tab button,
.notification-tab.notification-tab {
  flex: 1;
  padding: var(--sp-space-3) var(--sp-space-4);
  font-size: 0.875rem;
  font-weight: var(--sp-font-weight-medium);
  color: var(--sp-blue-500);
  background: transparent;
  border: none;
  border-bottom: 2px solid transparent;
  cursor: pointer;
  transition: all var(--sp-transition-fast);
}
.notification-drawer-tabs button:hover, .notification-drawer-tabs.notification-tab:hover,
.notification-tab button:hover,
.notification-tab.notification-tab:hover {
  color: var(--sp-blue-700);
}
.notification-drawer-tabs button.active, .notification-drawer-tabs.notification-tab.active,
.notification-tab button.active,
.notification-tab.notification-tab.active {
  color: var(--sp-red);
  border-bottom-color: var(--sp-red);
}

.notification-tab {
  flex: 1;
  padding: var(--sp-space-3) var(--sp-space-4);
  font-size: 0.875rem;
  font-weight: var(--sp-font-weight-medium);
  color: var(--sp-blue-500);
  background: transparent;
  border: none;
  border-bottom: 2px solid transparent;
  cursor: pointer;
  transition: all var(--sp-transition-fast);
}
.notification-tab:hover {
  color: var(--sp-blue-700);
}
.notification-tab.active {
  color: var(--sp-red);
  border-bottom-color: var(--sp-red);
}

.notification-item {
  padding: var(--sp-space-4) var(--sp-space-5);
  border-bottom: 1px solid var(--sp-blue-50);
  transition: background-color 0.15s ease;
  cursor: pointer;
}
.notification-item:hover {
  background-color: var(--sp-blue-50);
}
.notification-item.unread {
  background-color: rgba(var(--sp-blue-50), 0.5);
}

.notification-item-content {
  display: flex;
  gap: var(--sp-space-3);
}
.notification-item-content .notification-icon {
  width: 40px;
  height: 40px;
  border-radius: var(--sp-radius-full);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  background: var(--sp-blue-100);
  color: var(--sp-blue-600);
}
.notification-item-content .notification-text {
  flex: 1;
  min-width: 0;
}
.notification-item-content .notification-text .notification-title {
  font-size: 0.875rem;
  font-weight: var(--sp-font-weight-medium);
  color: var(--sp-blue-800);
  margin: 0 0 2px;
}
.notification-item-content .notification-text .notification-message {
  font-size: 0.75rem;
  color: var(--sp-blue-500);
  margin: 0 0 6px;
}
.notification-item-content .notification-text .notification-time {
  font-size: 0.75rem;
  color: var(--sp-blue-400);
  margin: 0;
}
.notification-item-content .notification-indicator {
  width: 8px;
  height: 8px;
  border-radius: var(--sp-radius-full);
  background: var(--sp-red);
  flex-shrink: 0;
  margin-top: 4px;
}

.notification-drawer-content {
  overflow-y: auto;
  height: calc(100vh - 180px);
  max-height: calc(100vh - 180px);
}

#notification-drawer > div:nth-child(2) {
  display: flex;
  border-bottom: 1px solid var(--sp-blue-100);
}

.dark #notification-drawer,
[data-theme=dark] #notification-drawer {
  background: var(--sp-card-bg);
  border-right: 1px solid var(--sp-card-border);
}
.dark .notification-item:hover,
[data-theme=dark] .notification-item:hover {
  background-color: rgba(148, 184, 212, 0.1);
}
.dark .toast,
[data-theme=dark] .toast {
  background: var(--sp-card-bg);
  border-left-color: var(--sp-blue-500);
}

.sp-progress {
  height: 8px;
  background: #e1ebf4;
  border-radius: 2px;
  overflow: hidden;
}

.sp-progress__bar {
  height: 100%;
  background: var(--sp-gradient-primary);
  border-radius: 2px;
  transition: width var(--sp-transition-base);
}

.sp-progress__bar--success {
  background: linear-gradient(90deg, #10b981, #34d399);
}

.sp-progress__bar--warning {
  background: linear-gradient(90deg, #f59e0b, #fbbf24);
}

.sp-progress-card {
  background: var(--sp-white);
  border-radius: 6px;
  box-shadow: var(--sp-shadow-card);
  padding: var(--sp-space-5);
}

.sp-progress-card__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--sp-space-4);
}

.sp-progress-card__title {
  display: flex;
  align-items: center;
  gap: var(--sp-space-2);
  font-family: var(--sp-font-heading);
  font-size: 1.125rem;
  font-weight: var(--sp-font-weight-semibold);
  color: var(--sp-text-dark);
  margin: 0;
}
.sp-progress-card__title i {
  color: #3d6f94;
}

.sp-progress-card__percentage {
  font-family: var(--sp-font-heading);
  font-size: 1.5rem;
  font-weight: var(--sp-font-weight-bold);
  color: #5e92b8;
}

.sp-progress-card__bar {
  height: 10px;
  background: #e1ebf4;
  border-radius: 9999px;
  overflow: hidden;
}

.sp-progress-card__fill {
  height: 100%;
  background: var(--sp-gradient-primary);
  border-radius: 9999px;
  transition: width 0.5s ease;
}

.sp-progress-card__fill--success {
  background: var(--sp-success);
}

.sp-slider {
  position: relative;
  padding: var(--sp-space-6) 0;
}

.sp-slider__track {
  position: relative;
  height: 10px;
  background: #e1ebf4;
  border-radius: 2px;
}

.sp-slider__fill {
  position: absolute;
  top: 0;
  left: 0;
  height: 100%;
  background: var(--sp-gradient-primary);
  border-radius: 2px;
}

.sp-slider__ticks {
  position: absolute;
  top: 50%;
  left: 0;
  right: 0;
  display: flex;
  justify-content: space-between;
  transform: translateY(-50%);
  padding: 0 2px;
}

.sp-slider__tick {
  width: 12px;
  height: 12px;
  background: #c3d7e9;
  border-radius: 2px;
  cursor: pointer;
  transition: all var(--sp-transition-fast);
}

.sp-slider__tick--active {
  background: var(--sp-red);
  transform: scale(1.2);
}

.sp-slider__labels {
  display: flex;
  justify-content: space-between;
  margin-top: var(--sp-space-3);
  font-size: 0.75rem;
  color: var(--sp-text-muted);
}

.sp-slider-inline {
  display: inline-flex;
  align-items: center;
  width: 8rem;
  height: 8px;
  background: #e1ebf4;
  border-radius: 2px;
  overflow: hidden;
}

.sp-slider-inline__fill {
  height: 100%;
  background: var(--sp-gradient-primary);
  border-radius: 2px;
}

.sp-stepper {
  display: flex;
  gap: 1.5rem;
  width: 100%;
  padding: 0.75rem;
  margin: 1.5rem 0;
}

.sp-stepper__dash {
  flex: 1;
  height: 6px;
  background: rgba(255, 255, 255, 0.25);
  border-radius: 2px;
  transition: background var(--sp-transition-base);
}

.sp-stepper__dash--completed {
  background: var(--sp-white);
}

.sp-stepper--light .sp-stepper__dash {
  background: #c3d7e9;
}
.sp-stepper--light .sp-stepper__dash--completed {
  background: var(--sp-gradient-primary);
}

.sp-stepper-mobile {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
}

.sp-stepper-mobile__dot {
  width: 12px;
  height: 12px;
  border-radius: 50%;
  background-color: #c3d7e9;
  touch-action: manipulation;
}
@media (min-width: 576px) {
  .sp-stepper-mobile__dot {
    width: 10px;
    height: 10px;
  }
}

.sp-stepper-mobile__dot--active {
  background-color: var(--sp-red);
}

.sp-stepper-mobile__dot--completed {
  background-color: var(--sp-success);
}

.sp-table {
  width: 100%;
  border-collapse: collapse;
}

.sp-table th {
  padding: var(--sp-space-3) var(--sp-space-4);
  font-size: 0.75rem;
  font-weight: var(--sp-font-weight-medium);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--sp-text-muted);
  background: #f0f5fa;
  border-bottom: var(--sp-border-light);
  text-align: left;
}

.sp-table td {
  padding: var(--sp-space-4);
  font-size: 0.9375rem;
  color: var(--sp-text-primary);
  border-bottom: var(--sp-border-subtle);
}

.sp-table tbody tr {
  transition: background-color var(--sp-transition-fast);
}
.sp-table tbody tr:hover {
  background: #f0f5fa;
}

.sp-table--animated tbody tr {
  opacity: 0;
  animation: sp-row-enter 0.3s ease forwards;
}
.sp-table--animated tbody tr:nth-child(1) {
  animation-delay: 0ms;
}
.sp-table--animated tbody tr:nth-child(2) {
  animation-delay: 30ms;
}
.sp-table--animated tbody tr:nth-child(3) {
  animation-delay: 60ms;
}
.sp-table--animated tbody tr:nth-child(4) {
  animation-delay: 90ms;
}
.sp-table--animated tbody tr:nth-child(5) {
  animation-delay: 120ms;
}
.sp-table--animated tbody tr:nth-child(6) {
  animation-delay: 150ms;
}
.sp-table--animated tbody tr:nth-child(7) {
  animation-delay: 180ms;
}
.sp-table--animated tbody tr:nth-child(8) {
  animation-delay: 210ms;
}
.sp-table--animated tbody tr:nth-child(9) {
  animation-delay: 240ms;
}
.sp-table--animated tbody tr:nth-child(10) {
  animation-delay: 270ms;
}
.sp-table--animated tbody tr:nth-child(11) {
  animation-delay: 300ms;
}
.sp-table--animated tbody tr:nth-child(12) {
  animation-delay: 330ms;
}
.sp-table--animated tbody tr:nth-child(13) {
  animation-delay: 360ms;
}
.sp-table--animated tbody tr:nth-child(14) {
  animation-delay: 390ms;
}
.sp-table--animated tbody tr:nth-child(15) {
  animation-delay: 420ms;
}
.sp-table--animated tbody tr:nth-child(16) {
  animation-delay: 450ms;
}
.sp-table--animated tbody tr:nth-child(17) {
  animation-delay: 480ms;
}
.sp-table--animated tbody tr:nth-child(18) {
  animation-delay: 510ms;
}
.sp-table--animated tbody tr:nth-child(19) {
  animation-delay: 540ms;
}
.sp-table--animated tbody tr:nth-child(20) {
  animation-delay: 570ms;
}
@media (prefers-reduced-motion: reduce) {
  .sp-table--animated tbody tr {
    opacity: 1;
    animation: none;
  }
}

@keyframes sp-row-enter {
  from {
    opacity: 0;
    transform: translateX(-8px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
.sp-list--animated > li {
  opacity: 0;
  animation: sp-list-item-enter 0.3s ease forwards;
}
.sp-list--animated > li:nth-child(1) {
  animation-delay: 0ms;
}
.sp-list--animated > li:nth-child(2) {
  animation-delay: 40ms;
}
.sp-list--animated > li:nth-child(3) {
  animation-delay: 80ms;
}
.sp-list--animated > li:nth-child(4) {
  animation-delay: 120ms;
}
.sp-list--animated > li:nth-child(5) {
  animation-delay: 160ms;
}
.sp-list--animated > li:nth-child(6) {
  animation-delay: 200ms;
}
.sp-list--animated > li:nth-child(7) {
  animation-delay: 240ms;
}
.sp-list--animated > li:nth-child(8) {
  animation-delay: 280ms;
}
.sp-list--animated > li:nth-child(9) {
  animation-delay: 320ms;
}
.sp-list--animated > li:nth-child(10) {
  animation-delay: 360ms;
}
.sp-list--animated > li:nth-child(11) {
  animation-delay: 400ms;
}
.sp-list--animated > li:nth-child(12) {
  animation-delay: 440ms;
}
.sp-list--animated > li:nth-child(13) {
  animation-delay: 480ms;
}
.sp-list--animated > li:nth-child(14) {
  animation-delay: 520ms;
}
.sp-list--animated > li:nth-child(15) {
  animation-delay: 560ms;
}
.sp-list--animated > li:nth-child(16) {
  animation-delay: 600ms;
}
.sp-list--animated > li:nth-child(17) {
  animation-delay: 640ms;
}
.sp-list--animated > li:nth-child(18) {
  animation-delay: 680ms;
}
.sp-list--animated > li:nth-child(19) {
  animation-delay: 720ms;
}
.sp-list--animated > li:nth-child(20) {
  animation-delay: 760ms;
}
@media (prefers-reduced-motion: reduce) {
  .sp-list--animated > li {
    opacity: 1;
    animation: none;
  }
}

@keyframes sp-list-item-enter {
  from {
    opacity: 0;
    transform: translateY(8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.sp-dashboard-layout {
  display: grid;
  grid-template-columns: 1fr;
  gap: 20px;
}
@media (min-width: 992px) {
  .sp-dashboard-layout {
    grid-template-columns: 1fr 360px;
    gap: 24px;
    align-items: start;
  }
}

.sp-grid-responsive {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}
@media (min-width: 768px) {
  .sp-grid-responsive {
    grid-template-columns: repeat(2, 1fr);
    gap: 24px;
  }
}
@media (min-width: 992px) {
  .sp-grid-responsive {
    grid-template-columns: repeat(3, 1fr);
  }
}

.sp-hero {
  position: relative;
  width: 100%;
  min-height: 320px;
  display: flex;
  flex-direction: column;
  justify-content: flex-end;
  overflow: visible;
  margin-top: -30px;
}

.sp-hero__bg {
  position: absolute;
  inset: 0;
  background-size: cover;
  background-position: center;
  z-index: 0;
}

.sp-hero--gradient .sp-hero__bg {
  background: linear-gradient(135deg, #8B1E3F 0%, #D92B31 40%, #F54725 70%, #E8A87C 100%);
}

.sp-hero__overlay {
  display: none;
}

.sp-hero__content {
  position: relative;
  z-index: 2;
  padding: var(--sp-space-8) var(--sp-content-padding);
  padding-bottom: var(--sp-space-10);
  max-width: var(--sp-content-max-width);
  margin: 0 auto;
  width: 100%;
}

.sp-hero__logo {
  max-height: 48px;
  margin-bottom: var(--sp-space-4);
}

.sp-hero__title {
  font-family: var(--sp-font-heading);
  font-size: 2.5rem;
  font-weight: var(--sp-font-weight-bold);
  color: var(--sp-white);
  margin: 0 0 var(--sp-space-2);
  line-height: 1.15;
  text-shadow: 0 2px 4px rgba(0, 0, 0, 0.2);
}

.sp-hero__subtitle {
  font-size: 1.125rem;
  color: var(--sp-white);
  margin: 0;
  max-width: 500px;
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
}

.sp-hero__meta,
.sp-hero__actions {
  display: none;
}

@media (max-width: 768px) {
  .sp-hero {
    min-height: 240px;
  }
  .sp-hero__title {
    font-size: 1.75rem;
  }
  .sp-hero__subtitle {
    font-size: 1rem;
  }
  .sp-hero::before {
    width: 40px;
    height: 40px;
    right: 5%;
  }
}
.sp-dashboard-card {
  background: var(--sp-white);
  border-radius: 6px;
  box-shadow: var(--sp-shadow-card);
  padding: var(--sp-space-6);
  margin-bottom: var(--sp-space-4);
}

.sp-dashboard-card__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: var(--sp-space-4);
}

.sp-dashboard-card__title {
  font-family: var(--sp-font-heading);
  font-size: 1.25rem;
  font-weight: var(--sp-font-weight-semibold);
  color: #0f2438;
  margin: 0 0 var(--sp-space-2);
}

.sp-dashboard-card__description {
  font-size: 0.9375rem;
  color: var(--sp-text-secondary);
  margin: 0;
  line-height: 1.5;
}

.sp-dashboard-card__percentage {
  font-family: var(--sp-font-heading);
  font-size: 3rem;
  font-weight: var(--sp-font-weight-bold);
  color: #94b8d4;
  line-height: 1;
}

.sp-dashboard-card__actions {
  margin-top: var(--sp-space-4);
}

.sp-dashboard-card__illustration {
  max-width: 120px;
  height: auto;
}

.sp-dashboard-card--with-illustration {
  display: flex;
  align-items: center;
  gap: var(--sp-space-6);
}

.sp-dashboard-card--with-illustration .sp-dashboard-card__content {
  flex: 1;
}

.sp-goals-card {
  background: var(--sp-white);
  border-radius: 6px;
  box-shadow: var(--sp-shadow-card);
  padding: var(--sp-space-6);
}

.sp-goals-card__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--sp-space-5);
}

.sp-goals-card__title {
  font-family: var(--sp-font-heading);
  font-size: 1.125rem;
  font-weight: var(--sp-font-weight-semibold);
  color: #0f2438;
  margin: 0;
}

.sp-goals-card__list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.sp-goals-card__item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--sp-space-3) 0;
  border-bottom: 1px solid #e1ebf4;
}
.sp-goals-card__item:last-child {
  border-bottom: none;
}

.sp-goals-card__item-title {
  font-size: 0.9375rem;
  color: var(--sp-text-primary);
}

.sp-goals-card__item-status {
  font-size: 0.875rem;
}

.sp-widget {
  background: var(--sp-card-bg);
  border-radius: 6px;
  box-shadow: var(--sp-shadow-card);
  overflow: hidden;
}

.sp-widget__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--sp-space-5) var(--sp-space-5);
  cursor: pointer;
  gap: var(--sp-space-3);
}

.sp-widget__header-clickable {
  cursor: pointer;
  transition: background-color var(--sp-transition-fast);
  border-radius: 4px;
  margin: calc(var(--sp-space-2) * -1);
  padding: var(--sp-space-2);
}
.sp-widget__header-clickable:hover {
  background: rgba(94, 146, 184, 0.05);
}

.sp-getting-started__header-right {
  display: flex;
  align-items: center;
  gap: var(--sp-space-3);
  flex-shrink: 0;
}

.sp-widget__header-left {
  display: flex;
  align-items: center;
  gap: 12px;
}

.sp-widget__icon {
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--sp-gradient-primary);
  border-radius: 4px;
  color: var(--sp-white);
  font-size: 0.875rem;
}

.sp-widget__icon--secondary {
  background: var(--sp-gradient-secondary);
}

.sp-widget__icon--success {
  background: linear-gradient(135deg, #10b981, #34d399);
}

.sp-widget__icon--warning {
  background: linear-gradient(135deg, #f59e0b, #fbbf24);
}

.sp-widget__title {
  font-size: 0.9375rem;
  font-weight: var(--sp-font-weight-medium);
  color: var(--sp-text-dark);
  margin: 0;
}

.sp-widget__toggle {
  color: var(--sp-text-muted);
  transition: transform var(--sp-transition-fast);
}

.sp-widget__toggle--expanded {
  transform: rotate(180deg);
}

.sp-widget__body {
  padding: var(--sp-space-5);
}

.sp-widget__footer {
  padding: var(--sp-space-4) var(--sp-space-5);
  background: #f0f5fa;
}

.sp-dashboard-hero {
  background: var(--sp-gradient-secondary);
  border-radius: 8px;
  padding: var(--sp-space-8) var(--sp-space-6);
  margin-bottom: var(--sp-space-6);
  color: var(--sp-white);
  position: relative;
  overflow: hidden;
}
.sp-dashboard-hero::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  width: 40%;
  background: linear-gradient(90deg, transparent, rgba(255, 255, 255, 0.03));
  pointer-events: none;
}

.sp-dashboard-hero__content {
  position: relative;
  z-index: 1;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-space-6);
  flex-wrap: wrap;
}

.sp-dashboard-hero__text {
  flex: 1;
  min-width: 280px;
}

.sp-dashboard-hero__greeting {
  font-family: var(--sp-font-heading);
  font-size: 1.75rem;
  font-weight: var(--sp-font-weight-semibold);
  margin: 0 0 var(--sp-space-2);
  color: inherit;
}
@media (min-width: 768px) {
  .sp-dashboard-hero__greeting {
    font-size: 2rem;
  }
}

.sp-dashboard-hero__subtitle {
  font-size: 1rem;
  opacity: 0.85;
  margin: 0;
  font-weight: var(--sp-font-weight-light);
}

.sp-dashboard-hero__stats {
  display: flex;
  gap: var(--sp-space-4);
  flex-wrap: wrap;
}

.sp-dashboard-hero__stat {
  text-align: center;
  padding: var(--sp-space-3) var(--sp-space-4);
  background: rgba(255, 255, 255, 0.1);
  border-radius: 6px;
  backdrop-filter: blur(4px);
  min-width: 100px;
}

.sp-dashboard-hero__stat-value {
  font-family: var(--sp-font-heading);
  font-size: 1.5rem;
  font-weight: var(--sp-font-weight-bold);
  line-height: 1.2;
  margin-bottom: var(--sp-space-1);
}

.sp-dashboard-hero__stat-label {
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.05em;
  opacity: 0.75;
}

.sp-stat-cards {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--sp-space-4);
  margin-bottom: var(--sp-space-6);
}
@media (min-width: 768px) {
  .sp-stat-cards {
    grid-template-columns: repeat(4, 1fr);
  }
}

.sp-stat-card {
  padding: var(--sp-space-5);
  background: var(--sp-card-bg);
  border-radius: 6px;
  box-shadow: var(--sp-shadow-card);
  transition: box-shadow var(--sp-transition-fast), transform var(--sp-transition-fast);
}
.sp-stat-card:hover {
  box-shadow: var(--sp-shadow-md);
  transform: translateY(-2px);
}

.sp-stat-card__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: var(--sp-space-4);
}

.sp-stat-card__icon {
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #f0f5fa;
  border-radius: 4px;
  color: #2d5573;
}
.sp-stat-card__icon svg, .sp-stat-card__icon i {
  width: 24px;
  height: 24px;
  font-size: 1.25rem;
}

.sp-stat-card__icon--primary {
  background: rgba(217, 43, 49, 0.08);
  color: var(--sp-red);
}

.sp-stat-card__icon--success {
  background: var(--sp-success-light);
  color: var(--sp-success);
}

.sp-stat-card__icon--warning {
  background: var(--sp-warning-light);
  color: var(--sp-warning);
}

.sp-stat-card__trend {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-space-1);
  padding: var(--sp-space-1) var(--sp-space-2);
  font-size: 0.75rem;
  font-weight: var(--sp-font-weight-semibold);
  border-radius: 2px;
}

.sp-stat-card__trend--up {
  color: var(--sp-success);
  background: var(--sp-success-light);
}

.sp-stat-card__trend--down {
  color: var(--sp-danger);
  background: var(--sp-danger-light);
}

.sp-stat-card__value {
  font-family: var(--sp-font-heading);
  font-size: 2rem;
  font-weight: var(--sp-font-weight-bold);
  color: var(--sp-text-dark);
  line-height: 1.2;
  margin-bottom: var(--sp-space-2);
}

.sp-stat-card__label {
  font-size: 0.875rem;
  color: var(--sp-text-muted);
}

.sp-dashboard-tabs {
  display: flex;
  border-bottom: 1px solid #e1ebf4;
  margin-bottom: var(--sp-space-6);
  gap: var(--sp-space-1);
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
  scrollbar-width: none;
}
.sp-dashboard-tabs::-webkit-scrollbar {
  display: none;
}

.sp-dashboard-tab {
  padding: var(--sp-space-3) var(--sp-space-4);
  font-size: 0.9375rem;
  font-weight: var(--sp-font-weight-medium);
  color: var(--sp-text-secondary);
  background: transparent;
  border: none;
  border-bottom: 2px solid transparent;
  cursor: pointer;
  white-space: nowrap;
  transition: color var(--sp-transition-fast), border-color var(--sp-transition-fast);
}
.sp-dashboard-tab:hover {
  color: var(--sp-text-dark);
}
.sp-dashboard-tab--active {
  color: var(--sp-red);
  border-bottom-color: var(--sp-red);
}

.sp-dashboard-section {
  margin-bottom: var(--sp-space-6);
}

.sp-dashboard-section__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--sp-space-4);
}

.sp-dashboard-section__title {
  font-family: var(--sp-font-heading);
  font-size: 1.125rem;
  font-weight: var(--sp-font-weight-semibold);
  color: var(--sp-text-dark);
  margin: 0;
}

.sp-dashboard-section__grid {
  display: grid;
  gap: var(--sp-space-4);
}

.sp-dashboard-section__grid--2col {
  grid-template-columns: 1fr;
}
@media (min-width: 768px) {
  .sp-dashboard-section__grid--2col {
    grid-template-columns: repeat(2, 1fr);
  }
}

.sp-dashboard-section__grid--3col {
  grid-template-columns: 1fr;
}
@media (min-width: 768px) {
  .sp-dashboard-section__grid--3col {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 992px) {
  .sp-dashboard-section__grid--3col {
    grid-template-columns: repeat(3, 1fr);
  }
}

.sp-dashboard-section__full-width {
  grid-column: 1/-1;
}

.sp-dashboard-card--compact {
  padding: var(--sp-space-4);
  transition: box-shadow var(--sp-transition-fast), transform var(--sp-transition-fast);
}
.sp-dashboard-card--compact:hover {
  box-shadow: var(--sp-shadow-md);
  transform: translateY(-2px);
}
.sp-dashboard-card--compact .sp-dashboard-card__title {
  font-size: 1rem;
  margin-bottom: var(--sp-space-1);
  display: flex;
  align-items: center;
  gap: 8px;
}
.sp-dashboard-card--compact .sp-dashboard-card__title i {
  font-size: 1rem;
}
.sp-dashboard-card--compact .sp-dashboard-card__description {
  font-size: 0.875rem;
  margin-bottom: var(--sp-space-3);
}

.sp-sidebar-card {
  background: var(--sp-card-bg);
  border-radius: 6px;
  box-shadow: var(--sp-shadow-card);
  padding: var(--sp-space-5);
  margin-bottom: var(--sp-space-4);
  transition: box-shadow var(--sp-transition-fast), transform var(--sp-transition-fast);
}
.sp-sidebar-card:hover {
  box-shadow: var(--sp-shadow-md);
  transform: translateY(-2px);
}

.sp-sidebar-card__header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: var(--sp-space-3);
}

.sp-sidebar-card__icon {
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 6px;
  font-size: 1.125rem;
  flex-shrink: 0;
}
.sp-sidebar-card__icon--ai {
  background: linear-gradient(135deg, #8b5cf6, #7c3aed);
  color: var(--sp-white);
}
.sp-sidebar-card__icon--matching {
  background: linear-gradient(135deg, #3b82f6, #1d4ed8);
  color: var(--sp-white);
}
.sp-sidebar-card__icon--primary {
  background: var(--sp-gradient-primary);
  color: var(--sp-white);
}

.sp-sidebar-card__title {
  font-family: var(--sp-font-heading);
  font-size: 1rem;
  font-weight: var(--sp-font-weight-semibold);
  color: var(--sp-text-dark);
  margin: 0;
}

.sp-sidebar-card__description {
  font-size: 0.875rem;
  color: var(--sp-text-secondary);
  line-height: 1.5;
  margin: 0 0 var(--sp-space-4);
}

.sp-sidebar-card__actions {
  display: flex;
  gap: var(--sp-space-2);
}

@keyframes sp-sparkle-pulse {
  0%, 100% {
    opacity: 1;
    transform: scale(1);
  }
  50% {
    opacity: 0.7;
    transform: scale(1.1);
  }
}
.sp-sidebar-card__icon--ai .fa-sparkles {
  animation: sp-sparkle-pulse 2s ease-in-out infinite;
}

.sp-dashboard__sidebar {
  display: flex;
  flex-direction: column;
  gap: var(--sp-space-4);
}

.sp-sidebar--sticky {
  position: sticky;
  top: var(--sp-space-4);
  height: fit-content;
}

@keyframes sp-widget-fade-up {
  from {
    opacity: 0;
    transform: translateY(16px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.sp-dashboard--animated .sp-widget,
.sp-dashboard--animated .sp-sidebar-card,
.sp-dashboard--animated .sp-whats-next,
.sp-dashboard--animated .sp-getting-started {
  opacity: 0;
  animation: sp-widget-fade-up 0.4s ease forwards;
}
.sp-dashboard--animated .sp-dashboard-section:nth-child(1) .sp-widget,
.sp-dashboard--animated .sp-dashboard-section:nth-child(1) .sp-whats-next,
.sp-dashboard--animated .sp-dashboard-section:nth-child(1) .sp-getting-started {
  animation-delay: 0.1s;
}
.sp-dashboard--animated .sp-dashboard-section:nth-child(2) .sp-widget,
.sp-dashboard--animated .sp-dashboard-section:nth-child(2) .sp-whats-next,
.sp-dashboard--animated .sp-dashboard-section:nth-child(2) .sp-getting-started {
  animation-delay: 0.2s;
}
.sp-dashboard--animated .sp-dashboard-section:nth-child(3) .sp-widget,
.sp-dashboard--animated .sp-dashboard-section:nth-child(3) .sp-whats-next,
.sp-dashboard--animated .sp-dashboard-section:nth-child(3) .sp-getting-started {
  animation-delay: 0.3s;
}
.sp-dashboard--animated .sp-dashboard-section:nth-child(4) .sp-widget,
.sp-dashboard--animated .sp-dashboard-section:nth-child(4) .sp-whats-next,
.sp-dashboard--animated .sp-dashboard-section:nth-child(4) .sp-getting-started {
  animation-delay: 0.4s;
}
.sp-dashboard--animated .sp-dashboard-section:nth-child(5) .sp-widget,
.sp-dashboard--animated .sp-dashboard-section:nth-child(5) .sp-whats-next,
.sp-dashboard--animated .sp-dashboard-section:nth-child(5) .sp-getting-started {
  animation-delay: 0.5s;
}
.sp-dashboard--animated .sp-dashboard-section:nth-child(6) .sp-widget,
.sp-dashboard--animated .sp-dashboard-section:nth-child(6) .sp-whats-next,
.sp-dashboard--animated .sp-dashboard-section:nth-child(6) .sp-getting-started {
  animation-delay: 0.6s;
}
.sp-dashboard--animated .sp-dashboard-section:nth-child(7) .sp-widget,
.sp-dashboard--animated .sp-dashboard-section:nth-child(7) .sp-whats-next,
.sp-dashboard--animated .sp-dashboard-section:nth-child(7) .sp-getting-started {
  animation-delay: 0.7s;
}
.sp-dashboard--animated .sp-dashboard-section:nth-child(8) .sp-widget,
.sp-dashboard--animated .sp-dashboard-section:nth-child(8) .sp-whats-next,
.sp-dashboard--animated .sp-dashboard-section:nth-child(8) .sp-getting-started {
  animation-delay: 0.8s;
}
.sp-dashboard--animated .sp-dashboard-section:nth-child(9) .sp-widget,
.sp-dashboard--animated .sp-dashboard-section:nth-child(9) .sp-whats-next,
.sp-dashboard--animated .sp-dashboard-section:nth-child(9) .sp-getting-started {
  animation-delay: 0.9s;
}
.sp-dashboard--animated .sp-dashboard-section:nth-child(10) .sp-widget,
.sp-dashboard--animated .sp-dashboard-section:nth-child(10) .sp-whats-next,
.sp-dashboard--animated .sp-dashboard-section:nth-child(10) .sp-getting-started {
  animation-delay: 1s;
}
.sp-dashboard--animated .sp-dashboard-section:nth-child(11) .sp-widget,
.sp-dashboard--animated .sp-dashboard-section:nth-child(11) .sp-whats-next,
.sp-dashboard--animated .sp-dashboard-section:nth-child(11) .sp-getting-started {
  animation-delay: 1.1s;
}
.sp-dashboard--animated .sp-dashboard-section:nth-child(12) .sp-widget,
.sp-dashboard--animated .sp-dashboard-section:nth-child(12) .sp-whats-next,
.sp-dashboard--animated .sp-dashboard-section:nth-child(12) .sp-getting-started {
  animation-delay: 1.2s;
}
.sp-dashboard--animated .sp-dashboard__sidebar .sp-sidebar-card:nth-child(1) {
  animation-delay: 0.2s;
}
.sp-dashboard--animated .sp-dashboard__sidebar .sp-sidebar-card:nth-child(2) {
  animation-delay: 0.3s;
}

@keyframes sp-hero-fade-in {
  from {
    opacity: 0;
    transform: translateY(-8px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.sp-dashboard-hero {
  animation: sp-hero-fade-in 0.5s ease;
}

@keyframes sp-stat-scale-in {
  from {
    opacity: 0;
    transform: scale(0.95);
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}
.sp-stat-cards .sp-stat-card {
  opacity: 0;
  animation: sp-stat-scale-in 0.3s ease forwards;
}
.sp-stat-cards .sp-stat-card:nth-child(1) {
  animation-delay: 0.18s;
}
.sp-stat-cards .sp-stat-card:nth-child(2) {
  animation-delay: 0.26s;
}
.sp-stat-cards .sp-stat-card:nth-child(3) {
  animation-delay: 0.34s;
}
.sp-stat-cards .sp-stat-card:nth-child(4) {
  animation-delay: 0.42s;
}

@keyframes sp-progress-grow {
  from {
    transform: scaleX(0);
    transform-origin: left;
  }
  to {
    transform: scaleX(1);
    transform-origin: left;
  }
}
.sp-getting-started__progress-fill,
.sp-package-progress__bar-fill,
.sp-tasks-widget__progress-fill,
.sp-goals-widget__progress-fill {
  animation: sp-progress-grow 0.8s ease-out;
}

.sp-widget__toggle {
  transition: transform var(--sp-transition-fast);
}

@keyframes sp-count-up-pulse {
  0% {
    transform: scale(1);
  }
  50% {
    transform: scale(1.05);
  }
  100% {
    transform: scale(1);
  }
}
.sp-stat-card__value,
.sp-dashboard-hero__stat-value {
  animation: sp-count-up-pulse 0.6s ease;
  animation-delay: 0.4s;
  animation-fill-mode: both;
}

@media (prefers-reduced-motion: reduce) {
  .sp-dashboard--animated .sp-widget,
  .sp-dashboard--animated .sp-sidebar-card,
  .sp-dashboard--animated .sp-whats-next,
  .sp-dashboard--animated .sp-getting-started {
    opacity: 1;
    animation: none;
  }
  .sp-dashboard-hero,
  .sp-stat-card,
  .sp-getting-started__progress-fill,
  .sp-package-progress__bar-fill,
  .sp-tasks-widget__progress-fill,
  .sp-goals-widget__progress-fill,
  .sp-stat-card__value,
  .sp-dashboard-hero__stat-value {
    animation: none;
    opacity: 1;
    transform: none;
  }
}
.dark .sp-dashboard-hero,
[data-theme=dark] .sp-dashboard-hero {
  background: linear-gradient(135deg, #1e293b, #0f2438);
}
.dark .sp-stat-card,
[data-theme=dark] .sp-stat-card {
  background: var(--sp-card-bg);
}
.dark .sp-stat-card__icon,
[data-theme=dark] .sp-stat-card__icon {
  background: rgba(94, 146, 184, 0.15);
  color: var(--sp-blue-500);
}
.dark .sp-dashboard-tabs,
[data-theme=dark] .sp-dashboard-tabs {
  border-bottom-color: rgba(148, 184, 212, 0.15);
}
.dark .sp-dashboard-tab:hover,
[data-theme=dark] .sp-dashboard-tab:hover {
  color: var(--sp-text-primary);
}
.dark .sp-dashboard-tab--active,
[data-theme=dark] .sp-dashboard-tab--active {
  color: var(--sp-red);
}
.dark .sp-widget__footer,
[data-theme=dark] .sp-widget__footer {
  background: rgba(0, 0, 0, 0.2);
}
.dark .sp-sidebar-card,
[data-theme=dark] .sp-sidebar-card {
  background: var(--sp-card-bg);
}
.dark .sp-sidebar-card:hover,
[data-theme=dark] .sp-sidebar-card:hover {
  box-shadow: var(--sp-shadow-lg);
}
.dark .sp-dashboard-card,
[data-theme=dark] .sp-dashboard-card {
  background: var(--sp-card-bg);
}

.sp-breadcrumb-container {
  max-width: var(--sp-content-max-width);
  margin: 0 auto;
  padding: var(--sp-space-4) var(--sp-content-padding) 0;
}

.sp-breadcrumb-list {
  display: flex;
  align-items: center;
  gap: 8px;
  list-style: none;
  margin: 0;
  padding: 0;
  font-size: 0.875rem;
}

.sp-breadcrumb-item {
  display: flex;
  align-items: center;
}

.sp-breadcrumb-link {
  color: var(--sp-text-secondary);
  text-decoration: none;
  transition: color 0.15s ease;
}
.sp-breadcrumb-link:hover {
  color: var(--sp-red);
}

.sp-breadcrumb-item--active {
  color: var(--sp-text-dark);
  font-weight: var(--sp-font-weight-medium);
}

.sp-breadcrumb-separator {
  color: var(--sp-text-muted);
  margin: 0 var(--sp-space-2);
  font-size: 0.75rem;
}

header[role=banner] {
  margin: 0 0 1.5rem 0;
}

.sp-nav {
  margin-top: 0;
}

main[role=main],
main#main-content {
  margin: 0 0 1.5rem 0;
  position: relative;
  z-index: 2;
  min-height: 75vh;
  overflow: visible;
}

footer[role=contentinfo] {
  margin: 0;
}

footer {
  background: var(--sp-blue-200);
  border-top: none;
  padding: var(--sp-space-6) 0;
  margin-top: 1rem;
  margin-left: -1.5rem;
  margin-right: -1.5rem;
  margin-bottom: 0;
  position: relative;
  z-index: 0;
  clear: both;
}

footer .container {
  max-width: var(--sp-content-max-width);
  margin: 0 auto;
  padding: 0 var(--sp-content-padding);
}

footer p {
  text-align: center;
  color: var(--sp-text-secondary);
  font-size: 0.875rem;
  margin: 0;
}

@media (max-width: 576px) {
  footer {
    padding: var(--sp-space-4) 0;
  }
  footer p {
    font-size: 0.8125rem;
  }
}
.sp-nav {
  box-shadow: var(--sp-shadow-card);
  background: var(--sp-white);
}

.sp-nav--diamond {
  position: relative;
  overflow: visible;
  box-shadow: var(--sp-shadow-card);
  margin-bottom: 64px;
}
.sp-nav--diamond::after {
  content: "";
  position: absolute;
  right: 7%;
  bottom: -37px;
  width: 74px;
  height: 74px;
  background: var(--sp-white);
  transform: rotate(45deg);
  border-radius: 0 0 5px 0;
  z-index: 10;
  clip-path: polygon(0% 100%, -1% 100%, 100% -1%, 100% 100%, 0% 100%);
}
@media (max-width: 768px) {
  .sp-nav--diamond {
    margin-bottom: 20px;
  }
  .sp-nav--diamond::after {
    right: 5%;
    width: 50px;
    height: 50px;
    bottom: -25px;
  }
}

.sp-nav__container {
  border-radius: var(--sp-radius-lg);
  padding: 0 var(--sp-space-4);
}
@media (max-width: 768px) {
  .sp-nav__container {
    padding: 0 var(--sp-space-3);
  }
}

@media (max-width: 576px) {
  .sp-nav--diamond {
    margin-bottom: 16px;
  }
  .sp-nav--diamond::after {
    display: none;
  }
}
.sp-page-title {
  padding: var(--sp-space-6);
  margin-bottom: var(--sp-space-6);
  background: var(--sp-gradient-primary);
  border-radius: 6px;
  color: var(--sp-white);
}

.sp-page-title__text {
  font-size: 2rem;
  font-weight: var(--sp-font-weight-bold);
  color: var(--sp-white);
  margin: 0 0 var(--sp-space-2);
}

.sp-page-title__subtitle {
  font-size: 1rem;
  opacity: 0.9;
  margin: 0;
}

.sp-page-title--signature {
  position: relative;
  padding-right: 10%;
  margin-bottom: calc(var(--sp-space-8) + 40px);
  overflow: visible;
  z-index: 2;
}
.sp-page-title--signature::before {
  content: "";
  position: absolute;
  right: 7%;
  top: -37px;
  width: 75px;
  height: 75px;
  background: var(--sp-body-bg);
  transform: rotate(45deg);
  border-radius: 0 0 5px 0;
  z-index: 5;
  clip-path: polygon(0% 100%, -1% 100%, 100% -1%, 100% 100%, 0% 100%);
}
.sp-page-title--signature::after {
  content: "";
  position: absolute;
  right: 7%;
  bottom: -37px;
  width: 74px;
  height: 74px;
  background: var(--sp-red-light);
  transform: rotate(45deg);
  border-radius: 0 0 5px 0;
  z-index: 5;
  clip-path: polygon(0% 100%, -1% 100%, 100% -1%, 100% 100%, 0% 100%);
}

.sp-page-title--blue {
  background: var(--sp-gradient-secondary);
}
.sp-page-title--blue.sp-page-title--signature::after {
  background: #5e92b8;
}

@media (max-width: 768px) {
  .sp-page-title--signature {
    padding-right: 15%;
  }
  .sp-page-title--signature::before, .sp-page-title--signature::after {
    right: 5%;
    width: 60px;
    height: 60px;
    top: -30px;
  }
  .sp-page-title--signature::after {
    bottom: -30px;
  }
}
.sp-list-heading {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--sp-space-4) var(--sp-space-5);
  background: var(--sp-gradient-secondary);
  border-radius: 4px;
  color: var(--sp-white);
  margin-bottom: var(--sp-space-4);
}

.sp-list-heading__title {
  font-size: 1rem;
  font-weight: var(--sp-font-weight-medium);
  color: var(--sp-white);
  margin: 0;
}

.sp-list-heading__count {
  font-size: 0.875rem;
  opacity: 0.8;
}

.sp-special-header {
  width: 100%;
  padding: var(--sp-space-6) var(--sp-content-padding);
}

.sp-special-header__inner {
  max-width: var(--sp-content-max-width);
  margin: 0 auto;
}

.sp-special-header__breadcrumb {
  margin-bottom: var(--sp-space-4);
}

.sp-special-content {
  width: 100%;
  padding: var(--sp-space-4) var(--sp-content-padding);
}

.sp-special-content__inner {
  max-width: var(--sp-content-max-width);
  margin: 0 auto;
}

.sp-goals-page {
  width: 100%;
}

.sp-goals-toolbar {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-space-4);
  margin-bottom: var(--sp-space-6);
}

.sp-goals-list {
  display: flex;
  flex-direction: column;
  gap: var(--sp-space-4);
}

.sp-goals-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(380px, 1fr));
  gap: var(--sp-space-5);
}
@media (max-width: 480px) {
  .sp-goals-grid {
    grid-template-columns: 1fr;
  }
}

.sp-goal-card {
  background: var(--sp-white);
  border-radius: 6px;
  box-shadow: var(--sp-shadow-card);
  padding: var(--sp-space-5);
  transition: all var(--sp-transition-fast);
  position: relative;
}
.sp-goal-card:hover {
  box-shadow: var(--sp-shadow-md);
}

.sp-goal-card--full {
  width: 100%;
}

.sp-goal-card--full .sp-goal-card__main {
  display: grid;
  grid-template-columns: 1fr 200px auto;
  gap: var(--sp-space-5);
  align-items: start;
}
@media (max-width: 768px) {
  .sp-goal-card--full .sp-goal-card__main {
    grid-template-columns: 1fr;
    gap: var(--sp-space-4);
  }
}

.sp-goal-card--overdue {
  border-left: 4px solid var(--sp-danger);
}

.sp-goal-card--urgent {
  border-left: 4px solid var(--sp-warning);
}

.sp-goal-card--completed {
  background: linear-gradient(135deg, #f0fdf4, #dcfce7);
  border-left: 4px solid var(--sp-success);
}

.sp-goal-card__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  margin-bottom: var(--sp-space-3);
}

.sp-goal-card__info {
  flex: 1;
  min-width: 0;
}

.sp-goal-card__meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-space-2);
}

.sp-goal-card__competency {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-space-1);
  padding: var(--sp-space-1) var(--sp-space-2);
  background: #e1ebf4;
  color: #1e3a52;
  font-size: 0.75rem;
  font-weight: var(--sp-font-weight-medium);
  border-radius: 9999px;
}

.sp-goal-card__privacy {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-space-1);
  padding: var(--sp-space-1) var(--sp-space-2);
  font-size: 0.75rem;
  font-weight: var(--sp-font-weight-medium);
  border-radius: 9999px;
}

.sp-goal-card__privacy--private {
  background: var(--sp-warning-light);
  color: #b45309;
}

.sp-goal-card__privacy--shared {
  background: var(--sp-success-light);
  color: #059669;
}

.sp-goal-card__actions-menu {
  display: flex;
  gap: var(--sp-space-1);
}

.sp-goal-card__action-btn {
  width: 32px;
  height: 32px;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--sp-text-muted);
  border-radius: 4px;
  transition: all var(--sp-transition-fast);
}
.sp-goal-card__action-btn:hover {
  background: #f0f5fa;
  color: #2d5573;
}

.sp-goal-card__body {
  margin-bottom: var(--sp-space-4);
}

.sp-goal-card__title {
  font-family: var(--sp-font-heading);
  font-size: 1.25rem;
  font-weight: var(--sp-font-weight-semibold);
  color: var(--sp-text-dark);
  margin: 0 0 var(--sp-space-2);
  line-height: 1.3;
}
.sp-goal-card__title a {
  color: inherit;
  text-decoration: none;
}
.sp-goal-card__title a:hover {
  color: var(--sp-red);
}

.sp-goal-card__criteria {
  display: flex;
  align-items: center;
  gap: 8px;
  align-items: flex-start;
  font-size: 0.9375rem;
  color: var(--sp-text-secondary);
  margin: 0;
  line-height: 1.5;
}
.sp-goal-card__criteria i {
  color: var(--sp-success);
  margin-top: 2px;
  flex-shrink: 0;
}

.sp-goal-card__progress-section {
  display: flex;
  flex-direction: column;
  gap: var(--sp-space-3);
  min-width: 180px;
}

.sp-goal-card__progress {
  margin-bottom: var(--sp-space-4);
}

.sp-goal-card__progress-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: var(--sp-space-2);
}

.sp-goal-card__progress-label {
  font-size: 0.8125rem;
  color: var(--sp-text-muted);
}

.sp-goal-card__progress-value {
  font-size: 0.875rem;
  font-weight: var(--sp-font-weight-semibold);
  color: #2d5573;
}

.sp-goal-card__progress-bar {
  height: 8px;
  background: #e1ebf4;
  border-radius: 9999px;
  overflow: hidden;
}

.sp-goal-card__progress-fill {
  height: 100%;
  background: var(--sp-gradient-primary);
  border-radius: 9999px;
  transition: width 0.5s ease;
}

.sp-goal-card__stats {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-space-4);
  margin-bottom: var(--sp-space-4);
  padding-bottom: var(--sp-space-4);
  border-bottom: 1px solid #e1ebf4;
}

.sp-goal-card__stat {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.875rem;
  color: var(--sp-text-muted);
}
.sp-goal-card__stat i {
  font-size: 1rem;
}

.sp-goal-card__stat-text--danger {
  color: var(--sp-danger);
  font-weight: var(--sp-font-weight-medium);
}

.sp-goal-card__stat-text--warning {
  color: #b45309;
  font-weight: var(--sp-font-weight-medium);
}

.sp-goal-card__stat-text--muted {
  color: var(--sp-text-muted);
  font-style: italic;
}

.sp-goal-card__actions-col {
  display: flex;
  gap: var(--sp-space-1);
  align-items: flex-start;
}

.sp-goal-card__action-count {
  background: #e1ebf4;
  color: #2d5573;
  font-size: 0.625rem;
  font-weight: var(--sp-font-weight-semibold);
  padding: 1px 5px;
  border-radius: 9999px;
  margin-left: var(--sp-space-1);
}

.sp-goal-card__buttons {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-space-3);
}

.sp-goal-card__status-dropdown {
  position: relative;
}

.sp-goal-card__status-btn {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: var(--sp-space-2) var(--sp-space-3);
  background: #f0f5fa;
  border: 1px solid #c3d7e9;
  border-radius: 4px;
  font-size: 0.8125rem;
  color: var(--sp-text-dark);
  cursor: pointer;
  transition: all var(--sp-transition-fast);
  width: 100%;
}
.sp-goal-card__status-btn:hover {
  background: #e1ebf4;
  border-color: #94b8d4;
}
.sp-goal-card__status-btn i:last-child {
  margin-left: auto;
  font-size: 0.75rem;
  color: var(--sp-text-muted);
}

.sp-goal-card__dropdown-menu {
  position: absolute;
  top: 100%;
  left: 0;
  right: 0;
  z-index: 50;
  min-width: 180px;
  background: var(--sp-white);
  border-radius: 4px;
  box-shadow: var(--sp-shadow-lg);
  padding: var(--sp-space-2);
  margin-top: var(--sp-space-1);
}

.sp-goal-card__dropdown-item {
  display: flex;
  align-items: center;
  gap: 8px;
  width: 100%;
  padding: var(--sp-space-2) var(--sp-space-3);
  background: none;
  border: none;
  font-size: 0.875rem;
  color: var(--sp-text-dark);
  text-align: left;
  border-radius: 2px;
  cursor: pointer;
  transition: background var(--sp-transition-fast);
}
.sp-goal-card__dropdown-item:hover {
  background: #f0f5fa;
}

.sp-goal-card__dropdown-item--selected {
  background: #e1ebf4;
  font-weight: var(--sp-font-weight-medium);
}
.sp-goal-card__dropdown-item--selected i:last-child {
  margin-left: auto;
  color: var(--sp-success);
}

.sp-goal-card__dropdown-item--complete {
  color: var(--sp-success);
}
.sp-goal-card__dropdown-item--complete:hover {
  background: var(--sp-success-light);
}

.sp-goal-card__status-dot {
  width: 10px;
  height: 10px;
  border-radius: 9999px;
  flex-shrink: 0;
}

.sp-goal-card__status-dot--not-started {
  background: #c3d7e9;
}

.sp-goal-card__status-dot--in-progress {
  background: #3d6f94;
}

.sp-goal-card__status-dot--on-track {
  background: var(--sp-success);
}

.sp-goal-card__status-dot--at-risk {
  background: var(--sp-warning);
}

.sp-goal-card__status-dot--completed {
  background: var(--sp-success);
}

.sp-goal-card__actions-panel {
  margin-top: var(--sp-space-4);
  padding-top: var(--sp-space-4);
  border-top: 1px solid #e1ebf4;
}

.sp-goal-card__actions-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--sp-space-3);
}

.sp-goal-card__actions-title {
  font-size: 0.875rem;
  font-weight: var(--sp-font-weight-semibold);
  color: var(--sp-text-dark);
}

.sp-goal-card__add-action {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-space-1);
  font-size: 0.8125rem;
  color: var(--sp-red);
  text-decoration: none;
  font-weight: var(--sp-font-weight-medium);
}
.sp-goal-card__add-action:hover {
  text-decoration: underline;
}

.sp-goal-card__actions-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.sp-goal-action {
  display: flex;
  align-items: center;
  gap: 12px;
  align-items: flex-start;
  padding: var(--sp-space-3);
  border-radius: 4px;
  transition: background var(--sp-transition-fast);
}
.sp-goal-action:hover {
  background: #f0f5fa;
}

.sp-goal-action--completed {
  opacity: 0.7;
}
.sp-goal-action--completed .sp-goal-action__title {
  text-decoration: line-through;
  color: var(--sp-text-muted);
}

.sp-goal-action--overdue .sp-goal-action__due {
  color: var(--sp-danger);
}

.sp-goal-action__checkbox {
  flex-shrink: 0;
  font-size: 1.125rem;
  color: #94b8d4;
  background: none;
  border: none;
  cursor: pointer;
  padding: 0;
  transition: all var(--sp-transition-fast);
}
.sp-goal-action__checkbox:hover {
  color: var(--sp-success);
  transform: scale(1.1);
}

.sp-goal-action--completed .sp-goal-action__checkbox,
.sp-goal-action__checkbox--done {
  color: var(--sp-success);
  cursor: default;
}
.sp-goal-action--completed .sp-goal-action__checkbox:hover,
.sp-goal-action__checkbox--done:hover {
  transform: none;
}

.sp-goal-action__content {
  flex: 1;
  min-width: 0;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: var(--sp-space-2);
}

.sp-goal-action__title {
  font-size: 0.875rem;
  color: var(--sp-text-dark);
}

.sp-goal-action__due {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-space-1);
  font-size: 0.75rem;
  color: var(--sp-text-muted);
}

.sp-goal-action__due--overdue {
  color: var(--sp-danger);
  font-weight: var(--sp-font-weight-medium);
}

.sp-goal-action__ai-badge {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 20px;
  height: 20px;
  background: #e1ebf4;
  color: #2d5573;
  border-radius: 9999px;
  font-size: 0.625rem;
}

.sp-goal-action__form {
  display: contents;
}

.sp-goal-card__view-all {
  display: block;
  text-align: center;
  padding: var(--sp-space-3);
  font-size: 0.875rem;
  color: #2d5573;
  text-decoration: none;
  font-weight: var(--sp-font-weight-medium);
}
.sp-goal-card__view-all:hover {
  color: var(--sp-red);
}

.sp-goal-card__no-actions {
  text-align: center;
  padding: var(--sp-space-4);
  background: #f0f5fa;
  border-radius: 4px;
}
.sp-goal-card__no-actions p {
  font-size: 0.875rem;
  color: var(--sp-text-muted);
  margin: 0 0 var(--sp-space-3);
}

.sp-goals-section--completed {
  margin-top: var(--sp-space-8);
}

.sp-goals-completed-toggle {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 100%;
  padding: var(--sp-space-4) var(--sp-space-5);
  background: linear-gradient(135deg, #f0fdf4, #dcfce7);
  border: none;
  border-radius: 6px;
  cursor: pointer;
  transition: all var(--sp-transition-fast);
}
.sp-goals-completed-toggle:hover {
  box-shadow: var(--sp-shadow-sm);
}

.sp-goals-completed-toggle__content {
  display: flex;
  align-items: center;
  gap: 12px;
}
.sp-goals-completed-toggle__content i {
  font-size: 1.5rem;
  color: var(--sp-success);
}

.sp-goals-completed-toggle__title {
  font-family: var(--sp-font-heading);
  font-size: 1.125rem;
  font-weight: var(--sp-font-weight-semibold);
  color: var(--sp-text-dark);
}

.sp-goals-completed-toggle__count {
  font-size: 0.875rem;
  color: var(--sp-success);
  font-weight: var(--sp-font-weight-medium);
}

.sp-goals-completed-list {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
  gap: var(--sp-space-4);
  margin-top: var(--sp-space-4);
}

.sp-goal-card__completed-badge {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-space-2);
  padding: var(--sp-space-1) var(--sp-space-3);
  background: var(--sp-success);
  color: var(--sp-white);
  font-size: 0.75rem;
  font-weight: var(--sp-font-weight-semibold);
  border-radius: 9999px;
  margin-bottom: var(--sp-space-3);
}

.sp-goal-card__completed-meta {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-space-4);
  font-size: 0.8125rem;
  color: var(--sp-text-muted);
  margin-top: var(--sp-space-2);
}

.sp-empty-goals {
  text-align: center;
  padding: 64px var(--sp-space-6);
  background: var(--sp-white);
  border-radius: 6px;
  box-shadow: var(--sp-shadow-card);
}

.sp-empty-goals__icon {
  width: 80px;
  height: 80px;
  margin: 0 auto var(--sp-space-5);
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--sp-gradient-primary);
  border-radius: 9999px;
  font-size: 2.5rem;
  color: var(--sp-white);
}

.sp-empty-goals__title {
  font-family: var(--sp-font-heading);
  font-size: 1.5rem;
  font-weight: var(--sp-font-weight-semibold);
  color: var(--sp-text-dark);
  margin: 0 0 var(--sp-space-3);
}

.sp-empty-goals__description {
  font-size: 1rem;
  color: var(--sp-text-secondary);
  max-width: 500px;
  margin: 0 auto var(--sp-space-6);
  line-height: 1.6;
}

.sp-empty-goals__actions {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: var(--sp-space-3);
}

.sp-confetti-container {
  position: fixed;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  pointer-events: none;
  z-index: 9999;
  overflow: hidden;
}

.sp-confetti {
  position: absolute;
  width: 10px;
  height: 10px;
  top: -20px;
  animation: confetti-fall linear forwards;
}

@keyframes confetti-fall {
  0% {
    transform: translateY(0) rotate(0deg);
    opacity: 1;
  }
  100% {
    transform: translateY(100vh) rotate(720deg);
    opacity: 0;
  }
}
.sp-manager-dashboard--animated .sp-metric-card,
.sp-manager-dashboard--animated .sp-manager-widget,
.sp-manager-dashboard--animated .sp-team-member-card {
  opacity: 0;
  animation: sp-fade-up 0.4s ease forwards;
}
.sp-manager-dashboard--animated .sp-metric-card:nth-child(1),
.sp-manager-dashboard--animated .sp-manager-widget:nth-child(1),
.sp-manager-dashboard--animated .sp-team-member-card:nth-child(1) {
  animation-delay: 0.05s;
}
.sp-manager-dashboard--animated .sp-metric-card:nth-child(2),
.sp-manager-dashboard--animated .sp-manager-widget:nth-child(2),
.sp-manager-dashboard--animated .sp-team-member-card:nth-child(2) {
  animation-delay: 0.1s;
}
.sp-manager-dashboard--animated .sp-metric-card:nth-child(3),
.sp-manager-dashboard--animated .sp-manager-widget:nth-child(3),
.sp-manager-dashboard--animated .sp-team-member-card:nth-child(3) {
  animation-delay: 0.15s;
}
.sp-manager-dashboard--animated .sp-metric-card:nth-child(4),
.sp-manager-dashboard--animated .sp-manager-widget:nth-child(4),
.sp-manager-dashboard--animated .sp-team-member-card:nth-child(4) {
  animation-delay: 0.2s;
}
.sp-manager-dashboard--animated .sp-metric-card:nth-child(5),
.sp-manager-dashboard--animated .sp-manager-widget:nth-child(5),
.sp-manager-dashboard--animated .sp-team-member-card:nth-child(5) {
  animation-delay: 0.25s;
}
.sp-manager-dashboard--animated .sp-metric-card:nth-child(6),
.sp-manager-dashboard--animated .sp-manager-widget:nth-child(6),
.sp-manager-dashboard--animated .sp-team-member-card:nth-child(6) {
  animation-delay: 0.3s;
}
.sp-manager-dashboard--animated .sp-metric-card:nth-child(7),
.sp-manager-dashboard--animated .sp-manager-widget:nth-child(7),
.sp-manager-dashboard--animated .sp-team-member-card:nth-child(7) {
  animation-delay: 0.35s;
}
.sp-manager-dashboard--animated .sp-metric-card:nth-child(8),
.sp-manager-dashboard--animated .sp-manager-widget:nth-child(8),
.sp-manager-dashboard--animated .sp-team-member-card:nth-child(8) {
  animation-delay: 0.4s;
}
.sp-manager-dashboard--animated .sp-metric-card:nth-child(9),
.sp-manager-dashboard--animated .sp-manager-widget:nth-child(9),
.sp-manager-dashboard--animated .sp-team-member-card:nth-child(9) {
  animation-delay: 0.45s;
}
.sp-manager-dashboard--animated .sp-metric-card:nth-child(10),
.sp-manager-dashboard--animated .sp-manager-widget:nth-child(10),
.sp-manager-dashboard--animated .sp-team-member-card:nth-child(10) {
  animation-delay: 0.5s;
}
.sp-manager-dashboard--animated .sp-metric-card:nth-child(11),
.sp-manager-dashboard--animated .sp-manager-widget:nth-child(11),
.sp-manager-dashboard--animated .sp-team-member-card:nth-child(11) {
  animation-delay: 0.55s;
}
.sp-manager-dashboard--animated .sp-metric-card:nth-child(12),
.sp-manager-dashboard--animated .sp-manager-widget:nth-child(12),
.sp-manager-dashboard--animated .sp-team-member-card:nth-child(12) {
  animation-delay: 0.6s;
}

.sp-manager-header {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 1.5rem;
  flex-wrap: wrap;
  gap: 1rem;
}
.sp-manager-header__title {
  font-size: 1.75rem;
  font-weight: 600;
  color: var(--sp-text-primary);
  margin: 0;
}
.sp-manager-header__subtitle {
  font-size: 1rem;
  color: var(--sp-text-secondary);
  margin-top: 0.25rem;
}
.sp-manager-header__actions {
  display: flex;
  gap: 0.75rem;
}
.dark .sp-manager-header__title, [data-theme=dark] .sp-manager-header__title {
  color: var(--sp-text-primary-dark, #f3f4f6);
}
.dark .sp-manager-header__subtitle, [data-theme=dark] .sp-manager-header__subtitle {
  color: var(--sp-text-secondary-dark, #9ca3af);
}

.sp-metric-card {
  background: var(--sp-bg-card);
  border-radius: 6px;
  padding: 1.25rem;
  text-align: center;
  border: 1px solid var(--sp-border-color);
  transition: transform 0.2s ease, box-shadow 0.2s ease;
}
.sp-metric-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 8px rgba(4, 22, 36, 0.08), 0 2px 4px rgba(4, 22, 36, 0.04);
}
.sp-metric-card__value {
  font-size: 2rem;
  font-weight: 700;
  color: var(--sp-blue-600);
  line-height: 1.2;
}
.sp-metric-card__value--success {
  color: var(--sp-success);
}
.sp-metric-card__value--warning {
  color: var(--sp-warning);
}
.sp-metric-card__value--danger {
  color: var(--sp-danger);
}
.sp-metric-card__label {
  font-size: 0.875rem;
  color: var(--sp-text-secondary);
  margin-top: 0.25rem;
}
.dark .sp-metric-card, [data-theme=dark] .sp-metric-card {
  background: var(--sp-bg-card-dark, #1f2937);
  border-color: var(--sp-border-color-dark, rgba(255, 255, 255, 0.1));
}
.dark .sp-metric-card__value, [data-theme=dark] .sp-metric-card__value {
  color: var(--sp-blue-400);
}
.dark .sp-metric-card__label, [data-theme=dark] .sp-metric-card__label {
  color: var(--sp-text-secondary-dark, #9ca3af);
}

.sp-manager-widget {
  background: var(--sp-bg-card);
  border-radius: 6px;
  box-shadow: 0 1px 3px rgba(4, 22, 36, 0.06), 0 1px 2px rgba(4, 22, 36, 0.04);
  overflow: hidden;
  border: 1px solid var(--sp-border-color);
}
.sp-manager-widget__header {
  padding: 1.25rem 1.5rem;
  border-bottom: 1px solid var(--sp-border-color);
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.sp-manager-widget__title {
  font-size: 1.1rem;
  font-weight: 600;
  color: var(--sp-text-primary);
  margin: 0;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.sp-manager-widget__title i {
  color: var(--sp-blue-500);
}
.sp-manager-widget__badge {
  background: var(--sp-blue-500);
  color: white;
  padding: 0.25rem 0.75rem;
  border-radius: 9999px;
  font-size: 0.875rem;
  font-weight: 500;
}
.sp-manager-widget__badge--warning {
  background: var(--sp-warning);
}
.sp-manager-widget__badge--info {
  background: var(--sp-info);
}
.sp-manager-widget__badge--success {
  background: var(--sp-success);
}
.sp-manager-widget__body {
  padding: 1.5rem;
}
.sp-manager-widget__body--flush {
  padding: 0;
}
.sp-manager-widget__empty {
  text-align: center;
  padding: 3rem 1.5rem;
  color: var(--sp-text-secondary);
}
.sp-manager-widget__empty-icon {
  font-size: 3rem;
  margin-bottom: 1rem;
  opacity: 0.5;
}
.sp-manager-widget__empty h5 {
  font-weight: 600;
  color: var(--sp-text-primary);
  margin-bottom: 0.5rem;
}
.dark .sp-manager-widget, [data-theme=dark] .sp-manager-widget {
  background: var(--sp-bg-card-dark, #1f2937);
  border-color: var(--sp-border-color-dark, rgba(255, 255, 255, 0.1));
}
.dark .sp-manager-widget__header, [data-theme=dark] .sp-manager-widget__header {
  border-color: var(--sp-border-color-dark, rgba(255, 255, 255, 0.1));
}
.dark .sp-manager-widget__title, [data-theme=dark] .sp-manager-widget__title {
  color: var(--sp-text-primary-dark, #f3f4f6);
}

.sp-team-member-card {
  padding: 1rem;
  border-bottom: 1px solid var(--sp-border-color);
  transition: background 0.15s ease;
}
.sp-team-member-card:hover {
  background: var(--sp-blue-50);
}
.sp-team-member-card:last-child {
  border-bottom: none;
}
.sp-team-member-card__avatar {
  width: 50px;
  height: 50px;
  border-radius: 50%;
  object-fit: cover;
}
.sp-team-member-card__avatar--initials {
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--sp-blue-100);
  color: var(--sp-blue-600);
  font-size: 1.25rem;
  font-weight: 600;
}
.sp-team-member-card__info {
  flex: 1;
  min-width: 0;
}
.sp-team-member-card__name {
  font-weight: 600;
  color: var(--sp-text-primary);
  margin-bottom: 0.25rem;
}
.sp-team-member-card__program {
  display: inline-block;
  padding: 0.125rem 0.5rem;
  background: var(--sp-blue-100);
  color: var(--sp-blue-700);
  border-radius: 9999px;
  font-size: 0.75rem;
  font-weight: 500;
}
.sp-team-member-card__progress {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--sp-blue-600);
}
.sp-team-member-card__stats {
  display: flex;
  gap: 1rem;
  font-size: 0.875rem;
  color: var(--sp-text-secondary);
  margin-top: 0.5rem;
}
.sp-team-member-card__stats i {
  margin-right: 0.25rem;
}
.sp-team-member-card__stats-positive {
  color: var(--sp-success);
}
.sp-team-member-card__actions {
  display: flex;
  gap: 0.5rem;
  margin-top: 0.75rem;
}
.dark .sp-team-member-card, [data-theme=dark] .sp-team-member-card {
  border-color: var(--sp-border-color-dark, rgba(255, 255, 255, 0.1));
}
.dark .sp-team-member-card:hover, [data-theme=dark] .sp-team-member-card:hover {
  background: rgba(255, 255, 255, 0.05);
}
.dark .sp-team-member-card__name, [data-theme=dark] .sp-team-member-card__name {
  color: var(--sp-text-primary-dark, #f3f4f6);
}
.dark .sp-team-member-card__avatar--initials, [data-theme=dark] .sp-team-member-card__avatar--initials {
  background: var(--sp-blue-900);
  color: var(--sp-blue-300);
}
.dark .sp-team-member-card__program, [data-theme=dark] .sp-team-member-card__program {
  background: var(--sp-blue-900);
  color: var(--sp-blue-300);
}
.dark .sp-team-member-card__progress, [data-theme=dark] .sp-team-member-card__progress {
  color: var(--sp-blue-400);
}

.sp-manager-progress {
  height: 6px;
  border-radius: 3px;
  background: var(--sp-blue-100);
  overflow: hidden;
}
.sp-manager-progress__fill {
  height: 100%;
  background: var(--sp-blue-500);
  border-radius: 3px;
  transition: width 0.3s ease;
}
.dark .sp-manager-progress, [data-theme=dark] .sp-manager-progress {
  background: var(--sp-blue-900);
}
.dark .sp-manager-progress__fill, [data-theme=dark] .sp-manager-progress__fill {
  background: var(--sp-blue-400);
}

.sp-manager-item {
  padding: 1.25rem;
  border-left: 4px solid transparent;
  border-bottom: 1px solid var(--sp-border-color);
  background: var(--sp-bg-card);
  transition: background 0.15s ease;
}
.sp-manager-item:hover {
  background: var(--sp-blue-50);
}
.sp-manager-item:last-child {
  border-bottom: none;
}
.sp-manager-item--normal {
  border-left-color: var(--sp-success);
}
.sp-manager-item--medium {
  border-left-color: var(--sp-warning);
}
.sp-manager-item--high {
  border-left-color: #f59e0b;
}
.sp-manager-item--critical {
  border-left-color: var(--sp-danger);
}
.sp-manager-item--overdue {
  border-left-color: var(--sp-danger);
}
.sp-manager-item__avatar {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid white;
  box-shadow: 0 1px 3px rgba(4, 22, 36, 0.06), 0 1px 2px rgba(4, 22, 36, 0.04);
  flex-shrink: 0;
}
.sp-manager-item__avatar--initials {
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, var(--sp-blue-500), var(--sp-blue-600));
  color: white;
  font-size: 1.25rem;
  font-weight: 600;
}
.sp-manager-item__content {
  flex: 1;
  min-width: 0;
}
.sp-manager-item__name {
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--sp-text-primary);
  margin-bottom: 0.25rem;
}
.sp-manager-item__program {
  font-size: 0.875rem;
  color: var(--sp-text-secondary);
}
.sp-manager-item__goal {
  color: var(--sp-text-primary);
  font-weight: 500;
  margin: 0.75rem 0;
}
.sp-manager-item__goal i {
  color: var(--sp-text-tertiary);
  margin-right: 0.25rem;
}
.sp-manager-item__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 1rem;
  font-size: 0.875rem;
  color: var(--sp-text-secondary);
}
.sp-manager-item__meta i {
  margin-right: 0.25rem;
}
.sp-manager-item__meta-positive {
  color: var(--sp-success);
}
.sp-manager-item__meta-warning {
  color: var(--sp-warning);
}
.sp-manager-item__meta-danger {
  color: var(--sp-danger);
}
.sp-manager-item__actions {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-top: 1rem;
}
.sp-manager-item__badge {
  display: inline-flex;
  align-items: center;
  gap: 0.25rem;
  padding: 0.25rem 0.625rem;
  border-radius: 9999px;
  font-size: 0.75rem;
  font-weight: 500;
}
.sp-manager-item__badge--normal {
  background: var(--sp-green-100);
  color: var(--sp-green-800);
}
.sp-manager-item__badge--medium {
  background: var(--sp-yellow-100);
  color: var(--sp-yellow-800);
}
.sp-manager-item__badge--high {
  background: var(--sp-orange-100);
  color: var(--sp-orange-800);
}
.sp-manager-item__badge--critical {
  background: var(--sp-red-100);
  color: var(--sp-red-800);
}
.sp-manager-item__badge--info {
  background: var(--sp-blue-100);
  color: var(--sp-blue-800);
}
.sp-manager-item__badge--purple {
  background: var(--sp-purple-100);
  color: var(--sp-purple-800);
}
.dark .sp-manager-item, [data-theme=dark] .sp-manager-item {
  background: var(--sp-bg-card-dark, #1f2937);
  border-bottom-color: var(--sp-border-color-dark, rgba(255, 255, 255, 0.1));
}
.dark .sp-manager-item:hover, [data-theme=dark] .sp-manager-item:hover {
  background: rgba(255, 255, 255, 0.05);
}
.dark .sp-manager-item__name, [data-theme=dark] .sp-manager-item__name {
  color: var(--sp-text-primary-dark, #f3f4f6);
}
.dark .sp-manager-item__goal, [data-theme=dark] .sp-manager-item__goal {
  color: var(--sp-text-primary-dark, #f3f4f6);
}

.sp-manager-detail {
  max-width: 56rem;
  margin: 0 auto;
  padding: 2rem 1rem;
}
.sp-manager-detail__back {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  color: var(--sp-blue-600);
  font-size: 0.875rem;
  margin-bottom: 1rem;
  transition: color 0.15s ease;
}
.sp-manager-detail__back:hover {
  color: var(--sp-blue-700);
}
.dark .sp-manager-detail__back, [data-theme=dark] .sp-manager-detail__back {
  color: var(--sp-blue-400);
}
.dark .sp-manager-detail__back:hover, [data-theme=dark] .sp-manager-detail__back:hover {
  color: var(--sp-blue-300);
}
.sp-manager-detail__title {
  font-size: 1.875rem;
  font-weight: 700;
  color: var(--sp-text-primary);
  margin-bottom: 1.5rem;
}
.dark .sp-manager-detail__title, [data-theme=dark] .sp-manager-detail__title {
  color: var(--sp-text-primary-dark, #f3f4f6);
}

.sp-status-banner {
  padding: 1rem;
  border-radius: 6px;
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-bottom: 1.5rem;
}
.sp-status-banner--normal {
  background: var(--sp-blue-50);
  border: 1px solid var(--sp-blue-200);
}
.sp-status-banner--warning {
  background: var(--sp-orange-50);
  border: 1px solid var(--sp-orange-200);
}
.sp-status-banner--critical {
  background: var(--sp-red-50);
  border: 1px solid var(--sp-red-200);
}
.sp-status-banner__avatar {
  width: 56px;
  height: 56px;
  border-radius: 50%;
  object-fit: cover;
  border: 2px solid white;
  box-shadow: 0 1px 3px rgba(4, 22, 36, 0.06), 0 1px 2px rgba(4, 22, 36, 0.04);
  flex-shrink: 0;
}
.sp-status-banner__avatar--initials {
  display: flex;
  align-items: center;
  justify-content: center;
  background: linear-gradient(135deg, var(--sp-blue-500), var(--sp-blue-600));
  color: white;
  font-size: 1.25rem;
  font-weight: 600;
}
.sp-status-banner__info {
  flex: 1;
}
.sp-status-banner__info h2 {
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--sp-text-primary);
  margin: 0;
}
.sp-status-banner__info p {
  font-size: 0.875rem;
  color: var(--sp-text-secondary);
  margin: 0.25rem 0 0;
}
.dark .sp-status-banner--normal, [data-theme=dark] .sp-status-banner--normal {
  background: rgba(var(--sp-blue-500-rgb, 59, 130, 246), 0.1);
  border-color: rgba(var(--sp-blue-500-rgb, 59, 130, 246), 0.2);
}
.dark .sp-status-banner__info h2, [data-theme=dark] .sp-status-banner__info h2 {
  color: var(--sp-text-primary-dark, #f3f4f6);
}

.sp-detail-section {
  background: var(--sp-bg-card);
  border-radius: 6px;
  box-shadow: 0 1px 3px rgba(4, 22, 36, 0.06), 0 1px 2px rgba(4, 22, 36, 0.04);
  border: 1px solid var(--sp-border-color);
  margin-bottom: 1.5rem;
  overflow: hidden;
}
.sp-detail-section__header {
  padding: 1rem 1.5rem;
  border-bottom: 1px solid var(--sp-border-color);
}
.sp-detail-section__header h3 {
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--sp-text-primary);
  margin: 0;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.sp-detail-section__header h3 i {
  color: var(--sp-blue-500);
}
.sp-detail-section__header--blue i {
  color: var(--sp-blue-600);
}
.sp-detail-section__header--green i {
  color: var(--sp-success);
}
.sp-detail-section__header--purple i {
  color: var(--sp-purple-600);
}
.sp-detail-section__header--teal i {
  color: var(--sp-teal-600);
}
.sp-detail-section__body {
  padding: 1.5rem;
}
.sp-detail-section--highlight {
  border-color: var(--sp-blue-200);
}
.sp-detail-section--highlight .sp-detail-section__header {
  background: var(--sp-blue-50);
  border-color: var(--sp-blue-100);
}
.sp-detail-section--highlight .sp-detail-section__header h3 {
  color: var(--sp-blue-900);
}
.sp-detail-section--highlight .sp-detail-section__header p {
  font-size: 0.875rem;
  color: var(--sp-blue-700);
  margin: 0.25rem 0 0;
}
.dark .sp-detail-section, [data-theme=dark] .sp-detail-section {
  background: var(--sp-bg-card-dark, #1f2937);
  border-color: var(--sp-border-color-dark, rgba(255, 255, 255, 0.1));
}
.dark .sp-detail-section__header, [data-theme=dark] .sp-detail-section__header {
  border-color: var(--sp-border-color-dark, rgba(255, 255, 255, 0.1));
}
.dark .sp-detail-section__header h3, [data-theme=dark] .sp-detail-section__header h3 {
  color: var(--sp-text-primary-dark, #f3f4f6);
}
.dark .sp-detail-section--highlight, [data-theme=dark] .sp-detail-section--highlight {
  border-color: rgba(var(--sp-blue-500-rgb, 59, 130, 246), 0.3);
}
.dark .sp-detail-section--highlight .sp-detail-section__header, [data-theme=dark] .sp-detail-section--highlight .sp-detail-section__header {
  background: rgba(var(--sp-blue-500-rgb, 59, 130, 246), 0.1);
}
.dark .sp-detail-section--highlight .sp-detail-section__header h3, [data-theme=dark] .sp-detail-section--highlight .sp-detail-section__header h3 {
  color: var(--sp-blue-300);
}
.dark .sp-detail-section--highlight .sp-detail-section__header p, [data-theme=dark] .sp-detail-section--highlight .sp-detail-section__header p {
  color: var(--sp-blue-400);
}

.sp-detail-quote {
  font-size: 1.125rem;
  color: var(--sp-text-primary);
  font-style: italic;
  border-left: 4px solid var(--sp-blue-500);
  padding-left: 1rem;
  margin: 0;
}
.dark .sp-detail-quote, [data-theme=dark] .sp-detail-quote {
  color: var(--sp-text-primary-dark, #f3f4f6);
}

.sp-action-item {
  display: flex;
  align-items: flex-start;
  gap: 1rem;
  padding: 1rem;
  background: var(--sp-blue-50);
  border-radius: 4px;
}
.sp-action-item__icon {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--sp-green-100);
  color: var(--sp-green-600);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.sp-action-item__content {
  flex: 1;
}
.sp-action-item__content p {
  font-weight: 500;
  color: var(--sp-text-primary);
  margin: 0;
}
.sp-action-item__meta {
  font-size: 0.875rem;
  color: var(--sp-text-secondary);
  margin-top: 0.25rem;
}
.sp-action-item__meta i {
  margin-right: 0.25rem;
}
.sp-action-item + .sp-action-item {
  margin-top: 0.75rem;
}
.dark .sp-action-item, [data-theme=dark] .sp-action-item {
  background: rgba(var(--sp-blue-500-rgb, 59, 130, 246), 0.1);
}
.dark .sp-action-item__content p, [data-theme=dark] .sp-action-item__content p {
  color: var(--sp-text-primary-dark, #f3f4f6);
}
.dark .sp-action-item__icon, [data-theme=dark] .sp-action-item__icon {
  background: rgba(var(--sp-green-500-rgb, 34, 197, 94), 0.2);
  color: var(--sp-green-400);
}

.sp-smart-grid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 0.75rem;
}
@media (max-width: 640px) {
  .sp-smart-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
.sp-smart-grid__item {
  text-align: center;
  padding: 0.75rem;
  border-radius: 4px;
}
.sp-smart-grid__item--pass {
  background: var(--sp-green-50);
}
.sp-smart-grid__item--fail {
  background: var(--sp-yellow-50);
}
.sp-smart-grid__item-icon {
  font-size: 1.5rem;
  margin-bottom: 0.25rem;
}
.sp-smart-grid__item-label {
  font-size: 0.75rem;
  font-weight: 500;
}
.sp-smart-grid__item--pass .sp-smart-grid__item-label {
  color: var(--sp-green-700);
}
.sp-smart-grid__item--fail .sp-smart-grid__item-label {
  color: var(--sp-yellow-700);
}
.dark .sp-smart-grid__item--pass, [data-theme=dark] .sp-smart-grid__item--pass {
  background: rgba(var(--sp-green-500-rgb, 34, 197, 94), 0.15);
}
.dark .sp-smart-grid__item--fail, [data-theme=dark] .sp-smart-grid__item--fail {
  background: rgba(var(--sp-yellow-500-rgb, 234, 179, 8), 0.15);
}
.sp-smart-grid__item--pass .dark .sp-smart-grid__item-label, .sp-smart-grid__item--pass [data-theme=dark] .sp-smart-grid__item-label {
  color: var(--sp-green-400);
}
.sp-smart-grid__item--fail .dark .sp-smart-grid__item-label, .sp-smart-grid__item--fail [data-theme=dark] .sp-smart-grid__item-label {
  color: var(--sp-yellow-400);
}

.sp-ai-suggestions {
  background: var(--sp-blue-50);
  border-radius: 4px;
  padding: 1rem;
}
.sp-ai-suggestions__title {
  font-weight: 500;
  color: var(--sp-blue-800);
  margin-bottom: 0.5rem;
}
.sp-ai-suggestions__title i {
  margin-right: 0.25rem;
}
.sp-ai-suggestions ul {
  list-style-type: disc;
  list-style-position: inside;
  font-size: 0.875rem;
  color: var(--sp-blue-700);
  margin: 0;
  padding: 0;
}
.sp-ai-suggestions ul li {
  margin-bottom: 0.25rem;
}
.dark .sp-ai-suggestions, [data-theme=dark] .sp-ai-suggestions {
  background: rgba(var(--sp-blue-500-rgb, 59, 130, 246), 0.1);
}
.dark .sp-ai-suggestions__title, [data-theme=dark] .sp-ai-suggestions__title {
  color: var(--sp-blue-300);
}
.dark .sp-ai-suggestions ul, [data-theme=dark] .sp-ai-suggestions ul {
  color: var(--sp-blue-400);
}

.sp-decision-buttons {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}
@media (min-width: 640px) {
  .sp-decision-buttons {
    flex-direction: row;
  }
}
.sp-decision-buttons__note {
  font-size: 0.75rem;
  color: var(--sp-text-secondary);
  text-align: center;
  margin-top: 1rem;
}
.sp-decision-buttons__note i {
  margin-right: 0.25rem;
}

.sp-roi-dashboard {
  background: linear-gradient(135deg, #0f172a 0%, #1e3a5f 50%, #0f172a 100%);
  min-height: 100vh;
  padding-bottom: 3rem;
}
.dark .sp-roi-dashboard, [data-theme=dark] .sp-roi-dashboard {
  background: linear-gradient(135deg, #0f172a 0%, #1e3a5f 50%, #0f172a 100%);
}

.sp-roi-header {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-bottom: 2rem;
}
@media (min-width: 1024px) {
  .sp-roi-header {
    flex-direction: row;
    align-items: center;
    justify-content: space-between;
  }
}
.sp-roi-header__title {
  font-size: 1.875rem;
  font-weight: 700;
  color: white;
  margin: 0;
}
.sp-roi-header__subtitle {
  color: rgba(147, 197, 253, 0.9);
  margin-top: 0.25rem;
}
.sp-roi-header__actions {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0.75rem;
}

.sp-roi-card {
  background: linear-gradient(145deg, rgba(255, 255, 255, 0.08) 0%, rgba(255, 255, 255, 0.02) 100%);
  backdrop-filter: blur(10px);
  border: 1px solid rgba(255, 255, 255, 0.1);
  border-radius: 8px;
  padding: 1.5rem;
}
.sp-roi-card--glow-blue {
  box-shadow: 0 0 30px rgba(59, 130, 246, 0.3);
}
.sp-roi-card--glow-green {
  box-shadow: 0 0 30px rgba(34, 197, 94, 0.3);
}
.sp-roi-card--glow-amber {
  box-shadow: 0 0 30px rgba(245, 158, 11, 0.3);
}
.sp-roi-card__label {
  font-size: 0.875rem;
  color: rgb(156, 163, 175);
  margin-bottom: 0.5rem;
}
.sp-roi-card__value {
  font-size: 2.5rem;
  font-weight: 700;
  color: white;
  line-height: 1.2;
}
.sp-roi-card__value span {
  font-size: 1.25rem;
}
.sp-roi-card__value--green span {
  color: var(--sp-green-400);
}
.sp-roi-card__value--emerald {
  color: var(--sp-emerald-400);
}
.sp-roi-card__trend {
  font-size: 0.875rem;
  margin-top: 0.5rem;
}
.sp-roi-card__trend--up {
  color: var(--sp-green-400);
}
.sp-roi-card__trend--down {
  color: var(--sp-amber-400);
}
.sp-roi-card__trend i {
  margin-right: 0.25rem;
}
.sp-roi-card__subtitle {
  font-size: 0.875rem;
  color: rgb(156, 163, 175);
  margin-top: 0.5rem;
}

.sp-roi-section-title {
  font-size: 1.125rem;
  font-weight: 600;
  color: white;
  margin-bottom: 1.5rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.sp-roi-section-title i {
  color: var(--sp-blue-400);
}

.sp-roi-progress {
  margin-bottom: 1.5rem;
}
.sp-roi-progress__header {
  display: flex;
  justify-content: space-between;
  margin-bottom: 0.5rem;
}
.sp-roi-progress__header span:first-child {
  color: rgb(209, 213, 219);
}
.sp-roi-progress__header span:last-child {
  color: white;
  font-weight: 600;
}
.sp-roi-progress__bar {
  height: 12px;
  background: rgba(255, 255, 255, 0.1);
  border-radius: 9999px;
  overflow: hidden;
}
.sp-roi-progress__fill {
  height: 100%;
  border-radius: 9999px;
  transition: width 0.5s ease;
}
.sp-roi-progress__fill--purple {
  background: linear-gradient(to right, var(--sp-purple-500), var(--sp-purple-400));
}
.sp-roi-progress__fill--emerald {
  background: linear-gradient(to right, var(--sp-emerald-500), var(--sp-emerald-400));
}
.sp-roi-progress__fill--blue {
  background: linear-gradient(to right, var(--sp-blue-500), var(--sp-blue-400));
}

.sp-roi-score-circle {
  position: relative;
  width: 128px;
  height: 128px;
}
.sp-roi-score-circle svg {
  width: 100%;
  height: 100%;
}
.sp-roi-score-circle .progress-ring {
  transform: rotate(-90deg);
}
.sp-roi-score-circle__value {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}
.sp-roi-score-circle__value span:first-child {
  font-size: 1.875rem;
  font-weight: 700;
  color: white;
}
.sp-roi-score-circle__value span:last-child {
  font-size: 0.875rem;
  color: rgb(156, 163, 175);
}

.sp-roi-table {
  width: 100%;
}
.sp-roi-table th {
  text-align: left;
  padding-bottom: 0.75rem;
  font-size: 0.875rem;
  font-weight: 500;
  color: rgb(156, 163, 175);
  border-bottom: 1px solid rgba(255, 255, 255, 0.1);
}
.sp-roi-table th:last-child, .sp-roi-table th:nth-last-child(-n+3) {
  text-align: right;
}
.sp-roi-table th:nth-child(4) {
  text-align: center;
}
.sp-roi-table td {
  padding: 1rem 0;
  border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}
.sp-roi-table td:last-child, .sp-roi-table td:nth-last-child(-n+2) {
  text-align: right;
}
.sp-roi-table td:nth-child(4) {
  text-align: center;
}
.sp-roi-table tr {
  transition: background 0.15s ease;
}
.sp-roi-table tr:hover {
  background: rgba(255, 255, 255, 0.05);
}
.sp-roi-table__avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: linear-gradient(135deg, var(--sp-blue-500), var(--sp-purple-500));
  display: flex;
  align-items: center;
  justify-content: center;
  color: white;
  font-weight: 500;
}
.sp-roi-table__name {
  color: white;
  font-weight: 500;
}
.sp-roi-table__program {
  color: rgb(209, 213, 219);
}
.sp-roi-table__positive {
  color: var(--sp-green-400);
  font-weight: 500;
}
.sp-roi-table__badge {
  display: inline-block;
  padding: 0.25rem 0.5rem;
  border-radius: 9999px;
  font-size: 0.875rem;
  font-weight: 500;
}
.sp-roi-table__badge--excellent {
  background: rgba(var(--sp-green-500-rgb, 34, 197, 94), 0.2);
  color: var(--sp-green-400);
}
.sp-roi-table__badge--good {
  background: rgba(var(--sp-blue-500-rgb, 59, 130, 246), 0.2);
  color: var(--sp-blue-400);
}
.sp-roi-table__badge--average {
  background: rgba(var(--sp-amber-500-rgb, 245, 158, 11), 0.2);
  color: var(--sp-amber-400);
}

.sp-roi-chart {
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 0.5rem;
  height: 200px;
  padding: 0 1rem;
}
.sp-roi-chart__bar {
  flex: 1;
  display: flex;
  flex-direction: column;
  align-items: center;
}
.sp-roi-chart__bar-value {
  font-size: 0.75rem;
  color: rgb(156, 163, 175);
  margin-bottom: 0.25rem;
}
.sp-roi-chart__bar-fill {
  width: 100%;
  background: linear-gradient(to top, var(--sp-blue-600), var(--sp-blue-400));
  border-radius: 2px 2px 0 0;
  transition: all 0.3s ease;
}
.sp-roi-chart__bar-fill:hover {
  filter: brightness(1.2);
}
.sp-roi-chart__bar-label {
  font-size: 0.75rem;
  color: rgb(107, 114, 128);
  margin-top: 0.5rem;
}

.sp-roi-benchmark {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 2rem;
  text-align: center;
}
.sp-roi-benchmark__item-value {
  font-size: 2.5rem;
  font-weight: 700;
}
.sp-roi-benchmark__item-value--gray {
  color: rgb(156, 163, 175);
}
.sp-roi-benchmark__item-value--blue {
  color: var(--sp-blue-400);
}
.sp-roi-benchmark__item-value--green {
  color: var(--sp-green-400);
}
.sp-roi-benchmark__item-label {
  font-size: 0.875rem;
  color: rgb(107, 114, 128);
  margin-top: 0.25rem;
}
.sp-roi-benchmark__item-bar {
  height: 8px;
  background: rgba(255, 255, 255, 0.1);
  border-radius: 9999px;
  overflow: hidden;
  margin-top: 1rem;
}
.sp-roi-benchmark__item-bar-fill {
  height: 100%;
  border-radius: 9999px;
}
.sp-roi-benchmark__item-bar-fill--gray {
  background: rgb(107, 114, 128);
}
.sp-roi-benchmark__item-bar-fill--blue {
  background: var(--sp-blue-500);
}
.sp-roi-benchmark__item-bar-fill--green {
  background: var(--sp-green-500);
}

.sp-roi-level-badge {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 1.5rem;
  border-radius: 9999px;
  font-size: 1.125rem;
  font-weight: 600;
}
.sp-roi-level-badge--excellent {
  background: rgba(var(--sp-green-500-rgb, 34, 197, 94), 0.2);
  color: var(--sp-green-400);
  border: 1px solid rgba(var(--sp-green-500-rgb, 34, 197, 94), 0.3);
}
.sp-roi-level-badge--good {
  background: rgba(var(--sp-blue-500-rgb, 59, 130, 246), 0.2);
  color: var(--sp-blue-400);
  border: 1px solid rgba(var(--sp-blue-500-rgb, 59, 130, 246), 0.3);
}
.sp-roi-level-badge--average {
  background: rgba(var(--sp-amber-500-rgb, 245, 158, 11), 0.2);
  color: var(--sp-amber-400);
  border: 1px solid rgba(var(--sp-amber-500-rgb, 245, 158, 11), 0.3);
}
.sp-roi-level-badge--poor {
  background: rgba(var(--sp-red-500-rgb, 239, 68, 68), 0.2);
  color: var(--sp-red-400);
  border: 1px solid rgba(var(--sp-red-500-rgb, 239, 68, 68), 0.3);
}

.sp-manager-form__field {
  margin-bottom: 1.5rem;
}
.sp-manager-form__field label {
  display: block;
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--sp-text-primary);
  margin-bottom: 0.5rem;
}
.sp-manager-form__field label .required {
  color: var(--sp-danger);
}
.sp-manager-form__field-hint {
  font-size: 0.875rem;
  color: var(--sp-text-secondary);
  margin-bottom: 0.5rem;
}
.sp-manager-form__field-help {
  font-size: 0.75rem;
  color: var(--sp-text-tertiary);
  margin-top: 0.25rem;
}
.dark .sp-manager-form__field label, [data-theme=dark] .sp-manager-form__field label {
  color: var(--sp-text-primary-dark, #f3f4f6);
}
.sp-manager-form__textarea {
  width: 100%;
  padding: 0.75rem 1rem;
  border: 1px solid var(--sp-border-color);
  border-radius: 4px;
  font-size: 1rem;
  resize: vertical;
  transition: border-color 0.15s ease, box-shadow 0.15s ease;
}
.sp-manager-form__textarea:focus {
  outline: none;
  border-color: var(--sp-blue-400);
  box-shadow: 0 0 0 3px rgba(var(--sp-blue-500-rgb, 59, 130, 246), 0.1);
}
.dark .sp-manager-form__textarea, [data-theme=dark] .sp-manager-form__textarea {
  background: var(--sp-bg-input-dark, #374151);
  border-color: var(--sp-border-color-dark, rgba(255, 255, 255, 0.1));
  color: var(--sp-text-primary-dark, #f3f4f6);
}
.sp-manager-form__checkbox-group {
  background: var(--sp-blue-50);
  border-radius: 4px;
  padding: 1rem;
}
.sp-manager-form__checkbox-group label {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  cursor: pointer;
}
.sp-manager-form__checkbox-group input[type=checkbox] {
  margin-top: 0.125rem;
  width: 1.25rem;
  height: 1.25rem;
  accent-color: var(--sp-blue-600);
}
.dark .sp-manager-form__checkbox-group, [data-theme=dark] .sp-manager-form__checkbox-group {
  background: rgba(var(--sp-blue-500-rgb, 59, 130, 246), 0.1);
}
.sp-manager-form__rating {
  background: var(--sp-blue-50);
  border-radius: 4px;
  padding: 1.5rem;
}
.sp-manager-form__rating-slider {
  flex: 1;
  height: 8px;
  background: var(--sp-blue-200);
  border-radius: 9999px;
  appearance: none;
  cursor: pointer;
}
.sp-manager-form__rating-slider::-webkit-slider-thumb {
  appearance: none;
  width: 20px;
  height: 20px;
  background: var(--sp-blue-600);
  border-radius: 50%;
  cursor: pointer;
}
.sp-manager-form__rating-value {
  font-size: 1.875rem;
  font-weight: 700;
  color: var(--sp-blue-600);
  width: 3rem;
  text-align: center;
}
.sp-manager-form__rating-labels {
  display: flex;
  justify-content: space-between;
  font-size: 0.75rem;
  color: var(--sp-text-tertiary);
  margin-top: 0.5rem;
  padding: 0 0.25rem;
}
.dark .sp-manager-form__rating, [data-theme=dark] .sp-manager-form__rating {
  background: rgba(var(--sp-blue-500-rgb, 59, 130, 246), 0.1);
}
.dark .sp-manager-form__rating-slider, [data-theme=dark] .sp-manager-form__rating-slider {
  background: var(--sp-blue-800);
}
.dark .sp-manager-form__rating-value, [data-theme=dark] .sp-manager-form__rating-value {
  color: var(--sp-blue-400);
}

.sp-sharing-option {
  display: flex;
  align-items: flex-start;
  gap: 0.75rem;
  padding: 1rem;
  background: var(--sp-blue-50);
  border-radius: 4px;
  cursor: pointer;
  transition: background 0.15s ease;
}
.sp-sharing-option:hover {
  background: var(--sp-blue-100);
}
.sp-sharing-option--warning {
  background: var(--sp-yellow-50);
  border: 1px solid var(--sp-yellow-200);
}
.sp-sharing-option--warning:hover {
  background: var(--sp-yellow-100);
}
.sp-sharing-option input[type=checkbox] {
  margin-top: 0.125rem;
  width: 1.25rem;
  height: 1.25rem;
  accent-color: var(--sp-blue-600);
  flex-shrink: 0;
}
.sp-sharing-option__content p:first-child {
  font-weight: 500;
  color: var(--sp-text-primary);
  margin: 0;
}
.sp-sharing-option__content p:last-child {
  font-size: 0.875rem;
  color: var(--sp-text-secondary);
  margin: 0.25rem 0 0;
}
.sp-sharing-option + .sp-sharing-option {
  margin-top: 0.75rem;
}
.dark .sp-sharing-option, [data-theme=dark] .sp-sharing-option {
  background: rgba(var(--sp-blue-500-rgb, 59, 130, 246), 0.1);
}
.dark .sp-sharing-option:hover, [data-theme=dark] .sp-sharing-option:hover {
  background: rgba(var(--sp-blue-500-rgb, 59, 130, 246), 0.15);
}
.dark .sp-sharing-option--warning, [data-theme=dark] .sp-sharing-option--warning {
  background: rgba(var(--sp-yellow-500-rgb, 234, 179, 8), 0.1);
  border-color: rgba(var(--sp-yellow-500-rgb, 234, 179, 8), 0.2);
}
.dark .sp-sharing-option--warning:hover, [data-theme=dark] .sp-sharing-option--warning:hover {
  background: rgba(var(--sp-yellow-500-rgb, 234, 179, 8), 0.15);
}
.dark .sp-sharing-option__content p:first-child, [data-theme=dark] .sp-sharing-option__content p:first-child {
  color: var(--sp-text-primary-dark, #f3f4f6);
}

.sp-manager-empty {
  background: var(--sp-bg-card);
  border-radius: 8px;
  box-shadow: 0 1px 3px rgba(4, 22, 36, 0.06), 0 1px 2px rgba(4, 22, 36, 0.04);
  border: 1px solid var(--sp-border-color);
  padding: 3rem;
  text-align: center;
}
.sp-manager-empty__icon {
  width: 80px;
  height: 80px;
  margin: 0 auto 1rem;
  background: var(--sp-green-100);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.sp-manager-empty__icon i {
  font-size: 2rem;
  color: var(--sp-green-600);
}
.sp-manager-empty__title {
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--sp-text-primary);
  margin-bottom: 0.5rem;
}
.sp-manager-empty__description {
  color: var(--sp-text-secondary);
  max-width: 28rem;
  margin: 0 auto;
}
.sp-manager-empty__action {
  margin-top: 1.5rem;
}
.dark .sp-manager-empty, [data-theme=dark] .sp-manager-empty {
  background: var(--sp-bg-card-dark, #1f2937);
  border-color: var(--sp-border-color-dark, rgba(255, 255, 255, 0.1));
}
.dark .sp-manager-empty__icon, [data-theme=dark] .sp-manager-empty__icon {
  background: rgba(var(--sp-green-500-rgb, 34, 197, 94), 0.2);
}
.dark .sp-manager-empty__icon i, [data-theme=dark] .sp-manager-empty__icon i {
  color: var(--sp-green-400);
}
.dark .sp-manager-empty__title, [data-theme=dark] .sp-manager-empty__title {
  color: var(--sp-text-primary-dark, #f3f4f6);
}

.sp-roi-select {
  background: rgba(255, 255, 255, 0.1);
  color: white;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 4px;
  padding: 0.5rem 1rem;
  font-size: 0.875rem;
  cursor: pointer;
}
.sp-roi-select:focus {
  outline: none;
  box-shadow: 0 0 0 2px var(--sp-blue-400);
}
.sp-roi-select option {
  color: #111827;
}

.sp-roi-button {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  padding: 0.5rem 1rem;
  background: rgba(255, 255, 255, 0.1);
  color: white;
  border: 1px solid rgba(255, 255, 255, 0.2);
  border-radius: 4px;
  font-size: 0.875rem;
  cursor: pointer;
  transition: background 0.15s ease;
}
.sp-roi-button:hover {
  background: rgba(255, 255, 255, 0.2);
}

@keyframes sp-fade-up {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@media (prefers-reduced-motion: reduce) {
  .sp-manager-dashboard--animated .sp-metric-card,
  .sp-manager-dashboard--animated .sp-manager-widget,
  .sp-manager-dashboard--animated .sp-team-member-card {
    animation: none;
    opacity: 1;
  }
}
.sp-package-content {
  padding: var(--sp-space-6) 0;
}

.sp-profile-content {
  background: #f0f5fa;
  min-height: 400px;
  padding: var(--sp-space-6) 0;
}

.sp-steps-list {
  display: flex;
  flex-direction: column;
  gap: var(--sp-space-4);
}

.sp-step-card {
  display: flex;
  align-items: center;
  gap: 16px;
  align-items: flex-start;
  background: var(--sp-white);
  border-radius: 6px;
  box-shadow: var(--sp-shadow-card);
  padding: var(--sp-space-5);
  transition: all var(--sp-transition-fast);
}
.sp-step-card:hover {
  box-shadow: var(--sp-shadow-md);
}

.sp-step-card__status {
  flex-shrink: 0;
}

.sp-step-card__status-icon {
  width: 44px;
  height: 44px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 9999px;
  font-size: 1.25rem;
}

.sp-step-card__status-icon--completed {
  background: var(--sp-success);
  color: var(--sp-white);
}

.sp-step-card__status-icon--in-progress {
  background: var(--sp-gradient-primary);
  color: var(--sp-white);
}

.sp-step-card__status-icon--not-started {
  background: #e1ebf4;
  color: #5e92b8;
}

.sp-step-card__content {
  flex: 1;
  min-width: 0;
}

.sp-step-card__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--sp-space-2);
}

.sp-step-card__title {
  font-family: var(--sp-font-heading);
  font-size: 1.0625rem;
  font-weight: var(--sp-font-weight-semibold);
  color: var(--sp-text-dark);
  margin: 0;
}

.sp-step-card__progress {
  font-size: 0.875rem;
  font-weight: var(--sp-font-weight-medium);
  color: var(--sp-text-muted);
}

.sp-step-card__description {
  font-size: 0.9375rem;
  color: var(--sp-text-secondary);
  margin: 0 0 var(--sp-space-3);
  line-height: 1.5;
}

.sp-step-card__progress-bar {
  height: 6px;
  background: #e1ebf4;
  border-radius: 9999px;
  overflow: hidden;
}

.sp-step-card__progress-fill {
  height: 100%;
  background: var(--sp-gradient-primary);
  border-radius: 9999px;
  transition: width 0.5s ease;
}

.sp-step-card__progress-fill--completed {
  background: var(--sp-success);
}

.sp-step-card__action {
  flex-shrink: 0;
  display: flex;
  align-items: center;
  justify-content: center;
}

@media (max-width: 768px) {
  .sp-step-card {
    flex-direction: column;
    gap: var(--sp-space-3);
  }
  .sp-step-card__status {
    order: -1;
  }
  .sp-step-card__action {
    width: 100%;
  }
  .sp-step-card__action .sp-btn {
    width: 100%;
    justify-content: center;
  }
}
.sp-report-card {
  background: linear-gradient(135deg, var(--sp-success), #059669);
  border-radius: 6px;
  overflow: hidden;
  color: var(--sp-white);
}

.sp-report-card__header {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: var(--sp-space-4) var(--sp-space-5);
  background: rgba(0, 0, 0, 0.1);
}
.sp-report-card__header i {
  font-size: 1.25rem;
}

.sp-report-card__title {
  font-family: var(--sp-font-heading);
  font-size: 1.125rem;
  font-weight: var(--sp-font-weight-semibold);
  margin: 0;
}

.sp-report-card__body {
  padding: var(--sp-space-5);
}
.sp-report-card__body p {
  margin: 0 0 var(--sp-space-4);
  font-size: 0.9375rem;
}

.sessions-page {
  min-height: calc(100vh - 200px);
}
.sessions-page--animated .sessions-section,
.sessions-page--animated .messages-sidebar,
.sessions-page--animated .sessions-filter,
.sessions-page--animated .sessions-tabs {
  animation: sp-fade-up 0.4s ease-out forwards;
  opacity: 0;
}
.sessions-page--animated .sessions-tabs {
  animation-delay: 0.05s;
}
.sessions-page--animated .sessions-filter {
  animation-delay: 0.1s;
}
.sessions-page--animated .sessions-section:nth-child(1) {
  animation-delay: 0.15s;
}
.sessions-page--animated .sessions-section:nth-child(2) {
  animation-delay: 0.25s;
}
.sessions-page--animated .sessions-section:nth-child(3) {
  animation-delay: 0.35s;
}
.sessions-page--animated .messages-sidebar {
  animation-delay: 0.2s;
}

.sessions-page__header {
  display: flex;
  align-items: center;
  gap: 16px;
  justify-content: space-between;
  margin-bottom: 24px;
  flex-wrap: wrap;
}

.sessions-page__title {
  font-family: var(--sp-font-heading);
  font-size: 1.75rem;
  font-weight: 600;
  color: var(--sp-text-primary);
  margin: 0;
  display: flex;
  align-items: center;
  gap: 12px;
}

.sessions-page__title-icon {
  color: var(--sp-red);
}

.sessions-tabs {
  display: flex;
  gap: 0;
  border-bottom: 2px solid var(--sp-blue-100);
  margin-bottom: 24px;
}
.dark .sessions-tabs, [data-theme=dark] .sessions-tabs {
  border-bottom-color: var(--sp-blue-700);
}

.sessions-tabs__tab {
  appearance: none;
  background: none;
  border: none;
  padding: 0;
  margin: 0;
  font: inherit;
  color: inherit;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 16px 24px;
  font-size: 0.9375rem;
  font-weight: 500;
  color: var(--sp-text-secondary);
  border-bottom: 2px solid transparent;
  margin-bottom: -2px;
  transition: all var(--sp-transition-fast);
}
.sessions-tabs__tab:hover {
  color: var(--sp-red);
  background: var(--sp-red-lighter);
}
.dark .sessions-tabs__tab:hover, [data-theme=dark] .sessions-tabs__tab:hover {
  background: rgba(217, 43, 49, 0.15);
}
.sessions-tabs__tab--active {
  color: var(--sp-red);
  border-bottom-color: var(--sp-red);
  font-weight: 600;
}

.sessions-tabs__badge {
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 1.25rem;
  height: 1.25rem;
  padding: 0 4px;
  font-size: 0.75rem;
  font-weight: 600;
  color: #ffffff;
  background: var(--sp-red);
  border-radius: 9999px;
}
.sessions-tabs__tab:not(.sessions-tabs__tab--active) .sessions-tabs__badge {
  background: var(--sp-blue-400);
}

.sessions-content {
  display: grid;
  grid-template-columns: 1fr;
  gap: 24px;
}

.sessions-content--split {
  grid-template-columns: 2fr 1fr;
}
@media (max-width: 992px) {
  .sessions-content--split {
    grid-template-columns: 1fr;
  }
}

.sessions-content--full {
  grid-template-columns: 1fr;
}

.sessions-area {
  display: flex;
  flex-direction: column;
  gap: 24px;
}

.sessions-section {
  background: var(--sp-card-bg);
  border: var(--sp-border-subtle);
  border-radius: 6px;
  box-shadow: var(--sp-shadow-card);
  overflow: hidden;
}
.dark .sessions-section, [data-theme=dark] .sessions-section {
  background: var(--sp-card-bg);
  border-color: var(--sp-blue-700);
}

.sessions-section__header {
  display: flex;
  align-items: center;
  gap: 16px;
  justify-content: space-between;
  padding: 16px 20px;
  background: var(--sp-blue-50);
  border-bottom: 1px solid var(--sp-blue-100);
}
.dark .sessions-section__header, [data-theme=dark] .sessions-section__header {
  background: var(--sp-blue-800);
  border-bottom-color: var(--sp-blue-700);
}

.sessions-section__title {
  font-size: 1rem;
  font-weight: 600;
  color: var(--sp-text-primary);
  margin: 0;
  display: flex;
  align-items: center;
  gap: 8px;
}

.sessions-section__count {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--sp-text-secondary);
}

.sessions-section__body {
  padding: 16px;
}

.sessions-section__empty {
  text-align: center;
  padding: 40px 16px;
  color: var(--sp-text-secondary);
}

.sessions-section__empty-icon {
  font-size: 2.5rem;
  color: var(--sp-blue-200);
  margin-bottom: 12px;
}
.dark .sessions-section__empty-icon, [data-theme=dark] .sessions-section__empty-icon {
  color: var(--sp-blue-600);
}

.session-card {
  display: flex;
  flex-direction: column;
  gap: 8px;
  padding: 16px 20px;
  background: var(--sp-card-bg);
  border: 1px solid var(--sp-blue-100);
  border-radius: 4px;
  transition: all var(--sp-transition-fast);
  margin-bottom: 12px;
}
.session-card:last-child {
  margin-bottom: 0;
}
.session-card:hover {
  border-color: var(--sp-red);
  box-shadow: 0 4px 12px rgba(217, 43, 49, 0.1);
  transform: translateY(-2px);
}
.dark .session-card, [data-theme=dark] .session-card {
  background: var(--sp-blue-800);
  border-color: var(--sp-blue-700);
}
.dark .session-card:hover, [data-theme=dark] .session-card:hover {
  border-color: var(--sp-red);
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.3);
}
.session-card:nth-child(1) {
  animation-delay: 0.05s;
}
.session-card:nth-child(2) {
  animation-delay: 0.1s;
}
.session-card:nth-child(3) {
  animation-delay: 0.15s;
}
.session-card:nth-child(4) {
  animation-delay: 0.2s;
}
.session-card:nth-child(5) {
  animation-delay: 0.25s;
}
.session-card:nth-child(6) {
  animation-delay: 0.3s;
}
.session-card:nth-child(7) {
  animation-delay: 0.35s;
}
.session-card:nth-child(8) {
  animation-delay: 0.4s;
}
.session-card:nth-child(9) {
  animation-delay: 0.45s;
}
.session-card:nth-child(10) {
  animation-delay: 0.5s;
}

.session-card--joinable {
  border-color: var(--sp-success);
  background: linear-gradient(135deg, rgba(16, 185, 129, 0.05) 0%, var(--sp-card-bg) 100%);
}
.dark .session-card--joinable, [data-theme=dark] .session-card--joinable {
  background: linear-gradient(135deg, rgba(16, 185, 129, 0.15) 0%, var(--sp-blue-800) 100%);
  border-color: var(--sp-success);
}

.session-card--past {
  opacity: 0.85;
}
.session-card--past:hover {
  opacity: 1;
}

.session-card__datetime {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--sp-text-secondary);
  margin-bottom: 8px;
}

.session-card__datetime-icon {
  color: var(--sp-red);
}

.session-card__title {
  font-family: var(--sp-font-heading);
  font-size: 1.0625rem;
  font-weight: 600;
  color: var(--sp-text-primary);
  margin: 0 0 4px 0;
}

.session-card__coach {
  font-size: 0.875rem;
  color: var(--sp-text-secondary);
  margin-bottom: 12px;
}

.session-card__coach-name {
  font-weight: 500;
  color: var(--sp-blue-700);
}
.dark .session-card__coach-name, [data-theme=dark] .session-card__coach-name {
  color: var(--sp-blue-200);
}

.session-card__meta {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 12px;
  flex-wrap: wrap;
}

.session-card__notes {
  appearance: none;
  background: none;
  border: none;
  padding: 0;
  margin: 0;
  font: inherit;
  color: inherit;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 0.8125rem;
  color: var(--sp-text-secondary);
  background: var(--sp-blue-50);
  padding: 8px 12px;
  border-radius: 2px;
  transition: all var(--sp-transition-fast);
}
.session-card__notes:hover {
  background: var(--sp-red-lighter);
  color: var(--sp-red);
}
.dark .session-card__notes, [data-theme=dark] .session-card__notes {
  background: var(--sp-blue-700);
}
.dark .session-card__notes:hover, [data-theme=dark] .session-card__notes:hover {
  background: rgba(217, 43, 49, 0.2);
}

.session-card__notes-icon {
  color: var(--sp-red);
}

.session-card__actions {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  padding-top: 12px;
  border-top: 1px solid var(--sp-blue-100);
}
.dark .session-card__actions, [data-theme=dark] .session-card__actions {
  border-top-color: var(--sp-blue-700);
}

.session-card__btn {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 8px 16px;
  font-size: 0.8125rem;
  font-weight: 500;
  border-radius: 2px;
  border: 1px solid transparent;
  cursor: pointer;
  transition: all var(--sp-transition-fast);
  text-decoration: none;
}
.session-card__btn--primary {
  background: var(--sp-red);
  color: #ffffff;
  border-color: var(--sp-red);
}
.session-card__btn--primary:hover {
  background: #c41230;
  border-color: #c41230;
  transform: translateY(-1px);
}
.session-card__btn--join {
  background: var(--sp-success);
  color: #ffffff;
  border-color: var(--sp-success);
  animation: sp-pulse-join 2s infinite;
}
.session-card__btn--join:hover {
  background: #0d9668;
  border-color: #0d9668;
}
.session-card__btn--secondary {
  background: var(--sp-card-bg);
  color: var(--sp-text-secondary);
  border-color: var(--sp-blue-200);
}
.session-card__btn--secondary:hover {
  background: var(--sp-blue-50);
  border-color: var(--sp-blue-300);
}
.dark .session-card__btn--secondary, [data-theme=dark] .session-card__btn--secondary {
  background: var(--sp-blue-700);
  border-color: var(--sp-blue-600);
}
.dark .session-card__btn--secondary:hover, [data-theme=dark] .session-card__btn--secondary:hover {
  background: var(--sp-blue-600);
}
.session-card__btn--danger {
  background: var(--sp-card-bg);
  color: var(--sp-red);
  border-color: rgba(217, 43, 49, 0.3);
}
.session-card__btn--danger:hover {
  background: var(--sp-red-lighter);
  border-color: var(--sp-red);
}
.dark .session-card__btn--danger, [data-theme=dark] .session-card__btn--danger {
  background: transparent;
}
.dark .session-card__btn--danger:hover, [data-theme=dark] .session-card__btn--danger:hover {
  background: rgba(217, 43, 49, 0.15);
}

@keyframes sp-pulse-join {
  0%, 100% {
    box-shadow: 0 0 0 0 rgba(16, 185, 129, 0.4);
  }
  50% {
    box-shadow: 0 0 0 8px rgba(16, 185, 129, 0);
  }
}
.messages-sidebar {
  background: var(--sp-card-bg);
  border: var(--sp-border-subtle);
  border-radius: 6px;
  box-shadow: var(--sp-shadow-card);
  overflow: hidden;
  height: fit-content;
  position: sticky;
  top: 16px;
}
.dark .messages-sidebar, [data-theme=dark] .messages-sidebar {
  background: var(--sp-card-bg);
  border-color: var(--sp-blue-700);
}

.messages-sidebar__header {
  display: flex;
  align-items: center;
  gap: 16px;
  justify-content: space-between;
  padding: 16px 20px;
  background: var(--sp-blue-50);
  border-bottom: 1px solid var(--sp-blue-100);
}
.dark .messages-sidebar__header, [data-theme=dark] .messages-sidebar__header {
  background: var(--sp-blue-800);
  border-bottom-color: var(--sp-blue-700);
}

.messages-sidebar__title {
  font-size: 1rem;
  font-weight: 600;
  color: var(--sp-text-primary);
  margin: 0;
  display: flex;
  align-items: center;
  gap: 8px;
}

.messages-sidebar__expand {
  appearance: none;
  background: none;
  border: none;
  padding: 0;
  margin: 0;
  font: inherit;
  color: inherit;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--sp-red);
  transition: all var(--sp-transition-fast);
}
.messages-sidebar__expand:hover {
  color: #c41230;
}

.messages-sidebar__body {
  padding: 16px;
}

.messages-sidebar__preview {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.messages-sidebar__coach {
  display: flex;
  align-items: center;
  gap: 12px;
}

.messages-sidebar__avatar {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.5rem;
  height: 2.5rem;
  border-radius: 50%;
  background: var(--sp-blue-100);
  font-size: 1rem;
  font-weight: 600;
  color: var(--sp-text-secondary);
}
.dark .messages-sidebar__avatar, [data-theme=dark] .messages-sidebar__avatar {
  background: var(--sp-blue-700);
  color: var(--sp-blue-200);
}

.messages-sidebar__coach-info {
  flex: 1;
}

.messages-sidebar__coach-name {
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--sp-text-primary);
}

.messages-sidebar__coach-role {
  font-size: 0.8125rem;
  color: var(--sp-text-secondary);
}

.messages-sidebar__last-message {
  padding: 12px;
  background: var(--sp-blue-50);
  border-radius: 2px;
  border-left: 3px solid var(--sp-red);
}
.dark .messages-sidebar__last-message, [data-theme=dark] .messages-sidebar__last-message {
  background: var(--sp-blue-800);
}

.messages-sidebar__message-text {
  font-size: 0.875rem;
  color: var(--sp-blue-700);
  line-height: 1.5;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.dark .messages-sidebar__message-text, [data-theme=dark] .messages-sidebar__message-text {
  color: var(--sp-blue-200);
}

.messages-sidebar__message-time {
  font-size: 0.75rem;
  color: var(--sp-text-muted);
  margin-top: 8px;
}

.messages-sidebar__empty {
  text-align: center;
  padding: 24px 16px;
  color: var(--sp-text-secondary);
}

.messages-sidebar__unread {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1.25rem;
  height: 1.25rem;
  font-size: 0.6875rem;
  font-weight: 600;
  color: #ffffff;
  background: var(--sp-red);
  border-radius: 50%;
}

.messages-full {
  background: var(--sp-card-bg);
  border: var(--sp-border-subtle);
  border-radius: 6px;
  box-shadow: var(--sp-shadow-card);
  display: flex;
  flex-direction: column;
  gap: 12px;
  min-height: 500px;
  max-height: calc(100vh - 300px);
}
.dark .messages-full, [data-theme=dark] .messages-full {
  background: var(--sp-card-bg);
  border-color: var(--sp-blue-700);
}

.messages-full__header {
  display: flex;
  align-items: center;
  gap: 16px;
  justify-content: space-between;
  padding: 16px 20px;
  background: var(--sp-blue-50);
  border-bottom: 1px solid var(--sp-blue-100);
}
.dark .messages-full__header, [data-theme=dark] .messages-full__header {
  background: var(--sp-blue-800);
  border-bottom-color: var(--sp-blue-700);
}

.messages-full__coach {
  display: flex;
  align-items: center;
  gap: 12px;
}

.messages-full__avatar {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  border-radius: 50%;
  background: var(--sp-blue-100);
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--sp-text-secondary);
}
.dark .messages-full__avatar, [data-theme=dark] .messages-full__avatar {
  background: var(--sp-blue-700);
  color: var(--sp-blue-200);
}

.messages-full__coach-name {
  font-size: 1rem;
  font-weight: 600;
  color: var(--sp-text-primary);
}

.messages-full__coach-role {
  font-size: 0.8125rem;
  color: var(--sp-text-secondary);
}

.messages-full__thread {
  flex: 1;
  overflow-y: auto;
  padding: 16px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.message-bubble {
  max-width: 75%;
  padding: 12px 16px;
  border-radius: 1rem;
  position: relative;
  animation: sp-fade-up 0.3s ease-out;
}
.message-bubble--received {
  align-self: flex-start;
  background: var(--sp-blue-50);
  border-bottom-left-radius: 2px;
}
.dark .message-bubble--received, [data-theme=dark] .message-bubble--received {
  background: var(--sp-blue-700);
}
.message-bubble--sent {
  align-self: flex-end;
  background: var(--sp-red);
  color: #ffffff;
  border-bottom-right-radius: 2px;
}

.message-bubble__text {
  font-size: 0.9375rem;
  line-height: 1.5;
}

.message-bubble__time {
  font-size: 0.6875rem;
  opacity: 0.7;
  margin-top: 4px;
  text-align: right;
}

.messages-full__composer {
  display: flex;
  align-items: center;
  gap: 12px;
  align-items: flex-end;
  padding: 16px;
  border-top: 1px solid var(--sp-blue-100);
}
.dark .messages-full__composer, [data-theme=dark] .messages-full__composer {
  border-top-color: var(--sp-blue-700);
}

.messages-full__input {
  flex: 1;
  resize: none;
  border: 1px solid var(--sp-blue-200);
  border-radius: 2px;
  padding: 12px 16px;
  font-size: 0.9375rem;
  min-height: 2.75rem;
  max-height: 8rem;
  transition: border-color var(--sp-transition-fast);
}
.messages-full__input:focus {
  outline: none;
  border-color: var(--sp-red);
  box-shadow: 0 0 0 3px rgba(217, 43, 49, 0.1);
}
.dark .messages-full__input, [data-theme=dark] .messages-full__input {
  background: var(--sp-blue-800);
  border-color: var(--sp-blue-600);
  color: var(--sp-text-primary);
}
.dark .messages-full__input:focus, [data-theme=dark] .messages-full__input:focus {
  border-color: var(--sp-red);
}

.messages-full__send {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2.75rem;
  height: 2.75rem;
  background: var(--sp-red);
  color: #ffffff;
  border: none;
  border-radius: 2px;
  cursor: pointer;
  transition: all var(--sp-transition-fast);
}
.messages-full__send:hover {
  background: #c41230;
  transform: scale(1.05);
}
.messages-full__send:disabled {
  background: var(--sp-blue-200);
  cursor: not-allowed;
  transform: none;
}
.dark .messages-full__send:disabled, [data-theme=dark] .messages-full__send:disabled {
  background: var(--sp-blue-600);
}

.sessions-filter {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 16px;
  flex-wrap: wrap;
}

.sessions-filter__label {
  font-size: 0.875rem;
  font-weight: 500;
  color: var(--sp-text-secondary);
}

.sessions-filter__pill {
  appearance: none;
  background: none;
  border: none;
  padding: 0;
  margin: 0;
  font: inherit;
  color: inherit;
  cursor: pointer;
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 8px 16px;
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--sp-text-secondary);
  background: var(--sp-card-bg);
  border: 1px solid var(--sp-blue-200);
  border-radius: 9999px;
  transition: all var(--sp-transition-fast);
}
.sessions-filter__pill:hover {
  border-color: var(--sp-red);
  color: var(--sp-red);
}
.sessions-filter__pill--active {
  background: var(--sp-red);
  color: #ffffff;
  border-color: var(--sp-red);
}
.sessions-filter__pill--active:hover {
  background: #c41230;
  border-color: #c41230;
  color: #ffffff;
}
.dark .sessions-filter__pill, [data-theme=dark] .sessions-filter__pill {
  background: var(--sp-blue-800);
  border-color: var(--sp-blue-600);
}
.dark .sessions-filter__pill:hover, [data-theme=dark] .sessions-filter__pill:hover {
  border-color: var(--sp-red);
}
.dark .sessions-filter__pill--active, [data-theme=dark] .sessions-filter__pill--active {
  background: var(--sp-red);
  border-color: var(--sp-red);
}

.inline-calendar {
  background: var(--sp-card-bg);
  border: var(--sp-border-subtle);
  border-radius: 6px;
  box-shadow: var(--sp-shadow-card);
  overflow: hidden;
}
.dark .inline-calendar, [data-theme=dark] .inline-calendar {
  background: var(--sp-card-bg);
  border-color: var(--sp-blue-700);
}

.inline-calendar__header {
  display: flex;
  align-items: center;
  gap: 16px;
  justify-content: space-between;
  padding: 16px 20px;
  background: var(--sp-blue-50);
  border-bottom: 1px solid var(--sp-blue-100);
}
.dark .inline-calendar__header, [data-theme=dark] .inline-calendar__header {
  background: var(--sp-blue-800);
  border-bottom-color: var(--sp-blue-700);
}

.inline-calendar__title {
  font-size: 1rem;
  font-weight: 600;
  color: var(--sp-text-primary);
  margin: 0;
  display: flex;
  align-items: center;
  gap: 8px;
}

.inline-calendar__body {
  padding: 16px;
}

.inline-calendar__coach-name {
  font-size: 0.8125rem;
  color: var(--sp-text-secondary);
  font-weight: 500;
}

.inline-calendar__empty {
  text-align: center;
  padding: 40px 16px;
  color: var(--sp-text-secondary);
}
.inline-calendar__empty i {
  font-size: 2.5rem;
  color: var(--sp-blue-200);
  margin-bottom: 12px;
  display: block;
}
.dark .inline-calendar__empty i, [data-theme=dark] .inline-calendar__empty i {
  color: var(--sp-blue-600);
}

.inline-calendar__footer {
  padding-top: 16px;
  border-top: 1px solid var(--sp-blue-100);
  text-align: center;
}
.dark .inline-calendar__footer, [data-theme=dark] .inline-calendar__footer {
  border-top-color: var(--sp-blue-700);
}

.calendar-nav {
  display: flex;
  align-items: center;
  gap: 16px;
  justify-content: space-between;
  margin-bottom: 16px;
}

.calendar-nav__btn {
  appearance: none;
  background: none;
  border: none;
  padding: 0;
  margin: 0;
  font: inherit;
  color: inherit;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 2rem;
  height: 2rem;
  background: var(--sp-card-bg);
  border: 1px solid var(--sp-blue-200);
  border-radius: 2px;
  color: var(--sp-text-secondary);
  transition: all var(--sp-transition-fast);
}
.calendar-nav__btn:hover:not(:disabled) {
  border-color: var(--sp-red);
  color: var(--sp-red);
}
.calendar-nav__btn:disabled {
  opacity: 0.4;
  cursor: not-allowed;
}
.dark .calendar-nav__btn, [data-theme=dark] .calendar-nav__btn {
  background: var(--sp-blue-700);
  border-color: var(--sp-blue-600);
}

.calendar-nav__month {
  font-size: 1rem;
  font-weight: 600;
  color: var(--sp-text-primary);
}

.calendar-grid {
  margin-bottom: 16px;
}

.calendar-grid__header {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
  margin-bottom: 8px;
}
.calendar-grid__header span {
  text-align: center;
  font-size: 0.6875rem;
  font-weight: 600;
  color: var(--sp-text-muted);
  text-transform: uppercase;
}

.calendar-grid__days {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
}

.calendar-day {
  appearance: none;
  background: none;
  border: none;
  padding: 0;
  margin: 0;
  font: inherit;
  color: inherit;
  cursor: pointer;
  display: flex;
  flex-direction: column;
  gap: 12px;
  align-items: center;
  justify-content: center;
  position: relative;
  aspect-ratio: 1;
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--sp-blue-700);
  background: var(--sp-card-bg);
  border: 1px solid transparent;
  border-radius: 2px;
  transition: all var(--sp-transition-fast);
}
.calendar-day:hover:not(:disabled) {
  background: var(--sp-blue-50);
  border-color: var(--sp-blue-200);
}
.calendar-day--other-month {
  color: var(--sp-blue-300);
}
.calendar-day--today {
  background: var(--sp-blue-50);
  border-color: var(--sp-blue-300);
  font-weight: 700;
}
.calendar-day--selected {
  background: var(--sp-red) !important;
  color: #ffffff !important;
  border-color: var(--sp-red) !important;
}
.calendar-day--available:not(.calendar-day--past) {
  color: var(--sp-success-dark);
  font-weight: 600;
}
.calendar-day--past {
  color: var(--sp-blue-300);
  cursor: not-allowed;
}
.calendar-day--has-session {
  background: var(--sp-blue-100);
}
.dark .calendar-day, [data-theme=dark] .calendar-day {
  color: var(--sp-blue-200);
  background: var(--sp-blue-800);
}
.dark .calendar-day:hover:not(:disabled), [data-theme=dark] .calendar-day:hover:not(:disabled) {
  background: var(--sp-blue-700);
}
.dark .calendar-day--other-month, [data-theme=dark] .calendar-day--other-month {
  color: var(--sp-blue-600);
}
.dark .calendar-day--today, [data-theme=dark] .calendar-day--today {
  background: var(--sp-blue-700);
  border-color: var(--sp-blue-500);
}
.dark .calendar-day--has-session, [data-theme=dark] .calendar-day--has-session {
  background: var(--sp-blue-700);
}

.calendar-day__dot {
  position: absolute;
  bottom: 4px;
  width: 4px;
  height: 4px;
  background: var(--sp-success);
  border-radius: 50%;
}

.time-slots-panel {
  background: var(--sp-blue-50);
  border-radius: 2px;
  border: 1px solid var(--sp-blue-100);
  margin-top: 16px;
  overflow: hidden;
}
.dark .time-slots-panel, [data-theme=dark] .time-slots-panel {
  background: var(--sp-blue-800);
  border-color: var(--sp-blue-700);
}

.time-slots-panel__header {
  display: flex;
  align-items: center;
  gap: 16px;
  justify-content: space-between;
  padding: 12px 16px;
  background: var(--sp-card-bg);
  border-bottom: 1px solid var(--sp-blue-100);
}
.dark .time-slots-panel__header, [data-theme=dark] .time-slots-panel__header {
  background: var(--sp-blue-700);
  border-bottom-color: var(--sp-blue-600);
}

.time-slots-panel__date {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--sp-text-primary);
}

.time-slots-panel__close {
  appearance: none;
  background: none;
  border: none;
  padding: 0;
  margin: 0;
  font: inherit;
  color: inherit;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 1.5rem;
  height: 1.5rem;
  color: var(--sp-text-muted);
  border-radius: 2px;
  transition: all var(--sp-transition-fast);
}
.time-slots-panel__close:hover {
  background: var(--sp-blue-100);
  color: var(--sp-text-secondary);
}

.time-slots-panel__body {
  padding: 16px;
}

.time-slots-panel__loading,
.time-slots-panel__empty {
  display: flex;
  flex-direction: column;
  gap: 12px;
  align-items: center;
  gap: 8px;
  padding: 16px;
  color: var(--sp-text-secondary);
  font-size: 0.875rem;
}

.time-slots-panel__footer {
  padding: 12px 16px;
  border-top: 1px solid var(--sp-blue-100);
  background: var(--sp-card-bg);
}
.dark .time-slots-panel__footer, [data-theme=dark] .time-slots-panel__footer {
  background: var(--sp-blue-700);
  border-top-color: var(--sp-blue-600);
}

.time-slots-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 8px;
}
@media (max-width: 576px) {
  .time-slots-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}

.time-slot {
  appearance: none;
  background: none;
  border: none;
  padding: 0;
  margin: 0;
  font: inherit;
  color: inherit;
  cursor: pointer;
  padding: 8px 12px;
  font-size: 0.8125rem;
  font-weight: 500;
  color: var(--sp-blue-700);
  background: var(--sp-card-bg);
  border: 1px solid var(--sp-blue-200);
  border-radius: 2px;
  text-align: center;
  transition: all var(--sp-transition-fast);
}
.time-slot:hover {
  border-color: var(--sp-red);
  color: var(--sp-red);
}
.time-slot--selected {
  background: var(--sp-red);
  color: #ffffff;
  border-color: var(--sp-red);
}
.dark .time-slot, [data-theme=dark] .time-slot {
  background: var(--sp-blue-800);
  border-color: var(--sp-blue-600);
  color: var(--sp-blue-200);
}

@keyframes sp-fade-up {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@media (prefers-reduced-motion: reduce) {
  .sessions-page--animated .sessions-section,
  .sessions-page--animated .messages-sidebar,
  .sessions-page--animated .sessions-filter,
  .sessions-page--animated .sessions-tabs,
  .sessions-page--animated .session-card {
    animation: none;
    opacity: 1;
  }
  .session-card:hover,
  .session-card__btn:hover,
  .messages-full__send:hover {
    transform: none;
  }
  @keyframes sp-pulse-join {
    0%, 100% {
      box-shadow: none;
    }
  }
}
@media (max-width: 768px) {
  .sessions-page__header {
    flex-direction: column;
    align-items: flex-start;
  }
  .sessions-tabs {
    width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
  }
  .sessions-tabs::-webkit-scrollbar {
    display: none;
  }
  .sessions-tabs__tab {
    white-space: nowrap;
    padding: 12px 16px;
  }
  .session-card__actions {
    flex-direction: column;
  }
  .session-card__btn {
    width: 100%;
    justify-content: center;
  }
  .messages-sidebar {
    position: static;
  }
  .message-bubble {
    max-width: 85%;
  }
}
@keyframes settings-fade-in-up {
  from {
    opacity: 0;
    transform: translateY(var(--sp-space-4));
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.sp-settings-page--animated .sp-page-header,
.sp-settings-page--animated .sp-settings-header,
.sp-settings-page--animated .sp-settings-grid,
.sp-settings-page--animated .sp-settings-card,
.sp-settings-page--animated .sp-notifications-list,
.sp-settings-page--animated .sp-filter-tabs,
.sp-profile-page--animated .sp-page-header,
.sp-profile-page--animated .sp-settings-header,
.sp-profile-page--animated .sp-settings-grid,
.sp-profile-page--animated .sp-settings-card,
.sp-profile-page--animated .sp-notifications-list,
.sp-profile-page--animated .sp-filter-tabs,
.sp-notifications-page--animated .sp-page-header,
.sp-notifications-page--animated .sp-settings-header,
.sp-notifications-page--animated .sp-settings-grid,
.sp-notifications-page--animated .sp-settings-card,
.sp-notifications-page--animated .sp-notifications-list,
.sp-notifications-page--animated .sp-filter-tabs {
  opacity: 0;
  transform: translateY(var(--sp-space-4));
  animation: settings-fade-in-up var(--sp-transition-base) forwards;
}
.sp-settings-page--animated .sp-page-header,
.sp-settings-page--animated .sp-settings-header,
.sp-profile-page--animated .sp-page-header,
.sp-profile-page--animated .sp-settings-header,
.sp-notifications-page--animated .sp-page-header,
.sp-notifications-page--animated .sp-settings-header {
  animation-delay: 0.1s;
}
.sp-settings-page--animated .sp-filter-tabs,
.sp-profile-page--animated .sp-filter-tabs,
.sp-notifications-page--animated .sp-filter-tabs {
  animation-delay: 0.15s;
}
.sp-settings-page--animated .sp-settings-grid,
.sp-profile-page--animated .sp-settings-grid,
.sp-notifications-page--animated .sp-settings-grid {
  animation-delay: 0.2s;
}
.sp-settings-page--animated .sp-notifications-list,
.sp-profile-page--animated .sp-notifications-list,
.sp-notifications-page--animated .sp-notifications-list {
  animation-delay: 0.2s;
}
.sp-settings-page--animated .sp-settings-card:nth-child(1),
.sp-profile-page--animated .sp-settings-card:nth-child(1),
.sp-notifications-page--animated .sp-settings-card:nth-child(1) {
  animation-delay: 0.2s;
}
.sp-settings-page--animated .sp-settings-card:nth-child(2),
.sp-profile-page--animated .sp-settings-card:nth-child(2),
.sp-notifications-page--animated .sp-settings-card:nth-child(2) {
  animation-delay: 0.25s;
}
.sp-settings-page--animated .sp-settings-card:nth-child(3),
.sp-profile-page--animated .sp-settings-card:nth-child(3),
.sp-notifications-page--animated .sp-settings-card:nth-child(3) {
  animation-delay: 0.3s;
}
.sp-settings-page--animated .sp-settings-card:nth-child(4),
.sp-profile-page--animated .sp-settings-card:nth-child(4),
.sp-notifications-page--animated .sp-settings-card:nth-child(4) {
  animation-delay: 0.35s;
}
.sp-settings-page--animated .sp-settings-card:nth-child(5),
.sp-profile-page--animated .sp-settings-card:nth-child(5),
.sp-notifications-page--animated .sp-settings-card:nth-child(5) {
  animation-delay: 0.4s;
}
.sp-settings-page--animated .sp-settings-card:nth-child(6),
.sp-profile-page--animated .sp-settings-card:nth-child(6),
.sp-notifications-page--animated .sp-settings-card:nth-child(6) {
  animation-delay: 0.45s;
}
@media (prefers-reduced-motion) {
  .sp-settings-page--animated .sp-page-header,
  .sp-settings-page--animated .sp-settings-header,
  .sp-settings-page--animated .sp-settings-grid,
  .sp-settings-page--animated .sp-settings-card,
  .sp-settings-page--animated .sp-notifications-list,
  .sp-settings-page--animated .sp-filter-tabs,
  .sp-profile-page--animated .sp-page-header,
  .sp-profile-page--animated .sp-settings-header,
  .sp-profile-page--animated .sp-settings-grid,
  .sp-profile-page--animated .sp-settings-card,
  .sp-profile-page--animated .sp-notifications-list,
  .sp-profile-page--animated .sp-filter-tabs,
  .sp-notifications-page--animated .sp-page-header,
  .sp-notifications-page--animated .sp-settings-header,
  .sp-notifications-page--animated .sp-settings-grid,
  .sp-notifications-page--animated .sp-settings-card,
  .sp-notifications-page--animated .sp-notifications-list,
  .sp-notifications-page--animated .sp-filter-tabs {
    opacity: 1;
    transform: translateY(0);
    animation: none;
  }
}

.sp-settings-header {
  margin-bottom: var(--sp-space-6);
}
.sp-settings-header__title {
  font-size: 1.875rem;
  font-weight: var(--sp-font-weight-bold);
  color: var(--sp-text-dark);
  margin-bottom: var(--sp-space-2);
  font-family: var(--sp-font-heading);
}
.sp-settings-header__description {
  font-size: 1rem;
  color: var(--sp-text-secondary);
  max-width: 600px;
}
.sp-settings-header__actions {
  display: flex;
  align-items: center;
  gap: var(--sp-space-3);
  margin-top: var(--sp-space-4);
}

.sp-settings-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--sp-space-6);
}
@media (min-width: 992px) {
  .sp-settings-grid {
    grid-template-columns: 2fr 1fr;
  }
}
.sp-settings-grid--full {
  grid-template-columns: 1fr;
}
.sp-settings-grid__main {
  display: flex;
  flex-direction: column;
  gap: var(--sp-space-6);
}
.sp-settings-grid__sidebar {
  display: flex;
  flex-direction: column;
  gap: var(--sp-space-6);
}

.sp-settings-card {
  background: var(--sp-card-bg);
  border: 1px solid var(--sp-card-border);
  border-radius: 6px;
  box-shadow: var(--sp-shadow-card);
  overflow: hidden;
  transition: box-shadow var(--sp-transition-fast);
}
.sp-settings-card:hover {
  box-shadow: var(--sp-shadow-sm);
}
.sp-settings-card__header {
  background: #f0f5fa;
  border-bottom: 1px solid var(--sp-card-border);
  padding: var(--sp-space-4) var(--sp-space-6);
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.dark .sp-settings-card__header {
  background: rgba(255, 255, 255, 0.03);
}
.sp-settings-card__title {
  font-size: 1.125rem;
  font-weight: var(--sp-font-weight-semibold);
  color: var(--sp-text-dark);
  margin: 0;
  display: flex;
  align-items: center;
  gap: var(--sp-space-2);
}
.sp-settings-card__title i, .sp-settings-card__title svg {
  color: var(--sp-text-muted);
}
.sp-settings-card__subtitle {
  font-size: 0.875rem;
  color: var(--sp-text-muted);
  margin-top: var(--sp-space-1);
}
.sp-settings-card__body {
  padding: var(--sp-space-6);
}
.sp-settings-card__footer {
  padding: var(--sp-space-4) var(--sp-space-6);
  border-top: 1px solid var(--sp-card-border);
  background: #f0f5fa;
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: var(--sp-space-3);
}
.dark .sp-settings-card__footer {
  background: rgba(255, 255, 255, 0.02);
}
.sp-settings-card--info {
  background: #f0f5fa;
  border-color: #c3d7e9;
}
.dark .sp-settings-card--info {
  background: rgba(61, 111, 148, 0.1);
  border-color: rgba(94, 146, 184, 0.3);
}
.sp-settings-card--info .sp-settings-card__header {
  background: transparent;
  border-bottom-color: #c3d7e9;
}
.sp-settings-card--warning {
  background: #fef3c7;
  border-color: rgb(251.0236220472, 216.4291338583, 157.9763779528);
}
.dark .sp-settings-card--warning {
  background: rgba(245, 158, 11, 0.1);
  border-color: rgba(245, 158, 11, 0.3);
}
.sp-settings-card--success {
  background: #d1fae5;
  border-color: rgb(111.4179104478, 242.5820895522, 199.1194029851);
}
.dark .sp-settings-card--success {
  background: rgba(16, 185, 129, 0.1);
  border-color: rgba(16, 185, 129, 0.3);
}

.sp-settings-form__section {
  margin-bottom: var(--sp-space-6);
}
.sp-settings-form__section:last-child {
  margin-bottom: 0;
}
.sp-settings-form__section-title {
  font-size: 0.875rem;
  font-weight: var(--sp-font-weight-semibold);
  color: var(--sp-text-secondary);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  margin-bottom: var(--sp-space-4);
}
.sp-settings-form__row {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--sp-space-4);
}
@media (min-width: 768px) {
  .sp-settings-form__row {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 768px) {
  .sp-settings-form__row--three {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (min-width: 768px) {
  .sp-settings-form__row--four {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 992px) {
  .sp-settings-form__row--four {
    grid-template-columns: repeat(4, 1fr);
  }
}
.sp-settings-form__actions {
  display: flex;
  flex-direction: column;
  gap: var(--sp-space-3);
  margin-top: var(--sp-space-6);
}
@media (min-width: 768px) {
  .sp-settings-form__actions {
    flex-direction: row;
    justify-content: flex-end;
  }
}

.sp-day-selector {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--sp-space-3);
}
@media (min-width: 768px) {
  .sp-day-selector {
    grid-template-columns: repeat(4, 1fr);
  }
}
@media (min-width: 992px) {
  .sp-day-selector {
    grid-template-columns: repeat(7, 1fr);
  }
}
.sp-day-selector__item {
  position: relative;
}
.sp-day-selector__input {
  position: absolute;
  opacity: 0;
  width: 0;
  height: 0;
}
.sp-day-selector__label {
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--sp-space-3) var(--sp-space-4);
  background: var(--sp-white);
  border: 1px solid #c3d7e9;
  border-radius: 4px;
  cursor: pointer;
  transition: all var(--sp-transition-fast);
  font-size: 0.9375rem;
  font-weight: var(--sp-font-weight-medium);
  color: var(--sp-text-primary);
}
.sp-day-selector__label:hover {
  background: #f0f5fa;
  border-color: #94b8d4;
}
.dark .sp-day-selector__label {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.1);
}
.dark .sp-day-selector__label:hover {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.2);
}
.sp-day-selector__input:checked + .sp-day-selector__label {
  background: rgba(217, 43, 49, 0.1);
  border-color: var(--sp-red);
  color: var(--sp-red);
}
.dark .sp-day-selector__input:checked + .sp-day-selector__label {
  background: rgba(217, 43, 49, 0.2);
  border-color: var(--sp-red);
}
.sp-day-selector__input:focus-visible + .sp-day-selector__label {
  outline: 2px solid var(--sp-red);
  outline-offset: 2px;
}

.sp-calendar-connection {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--sp-space-4);
  background: var(--sp-white);
  border: 1px solid var(--sp-card-border);
  border-radius: 4px;
  transition: all var(--sp-transition-fast);
}
.sp-calendar-connection:hover {
  background: #f0f5fa;
  border-color: #c3d7e9;
}
.dark .sp-calendar-connection {
  background: rgba(255, 255, 255, 0.02);
  border-color: rgba(255, 255, 255, 0.08);
}
.dark .sp-calendar-connection:hover {
  background: rgba(255, 255, 255, 0.05);
}
.sp-calendar-connection__info {
  display: flex;
  align-items: center;
  gap: var(--sp-space-4);
}
.sp-calendar-connection__icon {
  width: 40px;
  height: 40px;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.sp-calendar-connection__icon svg {
  width: 24px;
  height: 24px;
}
.sp-calendar-connection__icon--microsoft {
  background: rgba(0, 120, 212, 0.1);
  color: #0078d4;
}
.sp-calendar-connection__icon--google {
  background: rgba(234, 67, 53, 0.1);
  color: #ea4335;
}
.sp-calendar-connection__details {
  display: flex;
  flex-direction: column;
  gap: var(--sp-space-1);
}
.sp-calendar-connection__name {
  font-size: 0.9375rem;
  font-weight: var(--sp-font-weight-medium);
  color: var(--sp-text-dark);
}
.sp-calendar-connection__email {
  font-size: 0.875rem;
  color: var(--sp-text-muted);
}
.sp-calendar-connection__sync {
  font-size: 0.75rem;
  color: var(--sp-text-muted);
  display: flex;
  align-items: center;
  gap: var(--sp-space-1);
}
.sp-calendar-connection__sync svg {
  width: 12px;
  height: 12px;
}
.sp-calendar-connection__sync--recent {
  color: var(--sp-success);
}
.sp-calendar-connection__sync--stale {
  color: var(--sp-warning);
}
.sp-calendar-connection__actions {
  display: flex;
  align-items: center;
  gap: var(--sp-space-4);
}

.sp-calendar-provider {
  padding: var(--sp-space-4);
  background: var(--sp-white);
  border: 1px solid var(--sp-card-border);
  border-radius: 6px;
}
.dark .sp-calendar-provider {
  background: rgba(255, 255, 255, 0.02);
  border-color: rgba(255, 255, 255, 0.08);
}
.sp-calendar-provider--disabled {
  opacity: 0.5;
  pointer-events: none;
}
.sp-calendar-provider__header {
  display: flex;
  align-items: center;
  gap: var(--sp-space-3);
  margin-bottom: var(--sp-space-3);
}
.sp-calendar-provider__icon {
  width: 40px;
  height: 40px;
  border-radius: 6px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.sp-calendar-provider__icon svg {
  width: 24px;
  height: 24px;
}
.sp-calendar-provider__icon--microsoft {
  background: rgba(0, 120, 212, 0.1);
  color: #0078d4;
}
.sp-calendar-provider__icon--google {
  background: rgba(234, 67, 53, 0.1);
  color: #ea4335;
}
.sp-calendar-provider__info {
  flex: 1;
}
.sp-calendar-provider__name {
  font-size: 0.9375rem;
  font-weight: var(--sp-font-weight-medium);
  color: var(--sp-text-dark);
}
.sp-calendar-provider__desc {
  font-size: 0.75rem;
  color: var(--sp-text-muted);
}

.sp-conflict-card {
  background: var(--sp-white);
  border: 1px solid rgb(251.0236220472, 216.4291338583, 157.9763779528);
  border-radius: 6px;
  overflow: hidden;
}
.dark .sp-conflict-card {
  background: rgba(255, 255, 255, 0.02);
  border-color: rgba(245, 158, 11, 0.3);
}
.sp-conflict-card__header {
  background: #fef3c7;
  border-bottom: 1px solid rgb(252.0275590551, 226.1673228346, 182.4724409449);
  padding: var(--sp-space-4) var(--sp-space-6);
  display: flex;
  align-items: center;
  justify-content: space-between;
}
.dark .sp-conflict-card__header {
  background: rgba(245, 158, 11, 0.1);
  border-bottom-color: rgba(245, 158, 11, 0.2);
}
.sp-conflict-card__header-content {
  display: flex;
  align-items: center;
  gap: var(--sp-space-3);
}
.sp-conflict-card__icon {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: rgba(245, 158, 11, 0.15);
  display: flex;
  align-items: center;
  justify-content: center;
}
.sp-conflict-card__icon svg {
  width: 20px;
  height: 20px;
  color: rgb(172.4330708661, 110.9507874016, 7.0669291339);
}
.sp-conflict-card__title {
  font-size: 1rem;
  font-weight: var(--sp-font-weight-semibold);
  color: var(--sp-text-dark);
  margin: 0;
}
.sp-conflict-card__description {
  font-size: 0.875rem;
  color: rgb(172.4330708661, 110.9507874016, 7.0669291339);
  margin-top: var(--sp-space-1);
}
.sp-conflict-card__time {
  font-size: 0.75rem;
  color: var(--sp-text-muted);
}
.sp-conflict-card__body {
  padding: var(--sp-space-6);
}
.sp-conflict-card__comparison {
  display: grid;
  grid-template-columns: 1fr;
  gap: var(--sp-space-6);
}
@media (min-width: 768px) {
  .sp-conflict-card__comparison {
    grid-template-columns: repeat(2, 1fr);
  }
}
.sp-conflict-card__source {
  padding: var(--sp-space-4);
  background: #f0f5fa;
  border: 1px solid var(--sp-card-border);
  border-radius: 4px;
}
.dark .sp-conflict-card__source {
  background: rgba(255, 255, 255, 0.03);
  border-color: rgba(255, 255, 255, 0.08);
}
.sp-conflict-card__source-header {
  display: flex;
  align-items: center;
  gap: var(--sp-space-2);
  margin-bottom: var(--sp-space-3);
}
.sp-conflict-card__source-icon {
  width: 24px;
  height: 24px;
  border-radius: 2px;
  display: flex;
  align-items: center;
  justify-content: center;
}
.sp-conflict-card__source-icon svg {
  width: 16px;
  height: 16px;
}
.sp-conflict-card__source-icon--sparkus {
  background: rgba(217, 43, 49, 0.1);
  color: var(--sp-red);
}
.sp-conflict-card__source-icon--calendar {
  background: rgba(61, 111, 148, 0.1);
  color: var(--sp-blue-500);
}
.sp-conflict-card__source-name {
  font-size: 0.875rem;
  font-weight: var(--sp-font-weight-medium);
  color: var(--sp-text-dark);
}
.sp-conflict-card__source-data {
  display: flex;
  flex-direction: column;
  gap: var(--sp-space-2);
}
.sp-conflict-card__data-row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-size: 0.875rem;
}
.sp-conflict-card__data-label {
  color: var(--sp-text-muted);
}
.sp-conflict-card__data-value {
  font-weight: var(--sp-font-weight-medium);
  color: var(--sp-text-dark);
}
.sp-conflict-card__data-value--mismatch {
  color: var(--sp-danger);
}
.sp-conflict-card__data-value--deleted {
  color: var(--sp-danger);
  font-style: italic;
}
.sp-conflict-card__actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-space-3);
  justify-content: flex-end;
  margin-top: var(--sp-space-6);
  padding-top: var(--sp-space-6);
  border-top: 1px solid var(--sp-card-border);
}

.sp-notifications-list {
  display: flex;
  flex-direction: column;
  gap: var(--sp-space-2);
}

.sp-notification-item {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  padding: var(--sp-space-4) var(--sp-space-5);
  background: var(--sp-card-bg);
  border: 1px solid var(--sp-card-border);
  border-radius: 4px;
  text-decoration: none;
  transition: all var(--sp-transition-fast);
}
.sp-notification-item:hover {
  background: #f0f5fa;
  border-color: #c3d7e9;
  transform: translateX(4px);
}
.dark .sp-notification-item:hover {
  background: rgba(255, 255, 255, 0.05);
}
.dark .sp-notification-item {
  background: rgba(255, 255, 255, 0.02);
  border-color: rgba(255, 255, 255, 0.08);
}
.sp-notification-item--unread {
  background: rgba(217, 43, 49, 0.02);
  border-left: 3px solid var(--sp-red);
}
.sp-notification-item--unread .sp-notification-item__title {
  font-weight: var(--sp-font-weight-semibold);
}
.dark .sp-notification-item--unread {
  background: rgba(217, 43, 49, 0.05);
}
.sp-notification-item__content {
  flex: 1;
  min-width: 0;
}
.sp-notification-item__title {
  font-size: 0.9375rem;
  font-weight: var(--sp-font-weight-medium);
  color: var(--sp-text-dark);
  margin-bottom: var(--sp-space-1);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 100%;
}
.sp-notification-item__body {
  font-size: 0.875rem;
  color: var(--sp-text-secondary);
  line-height: 1.5;
  margin-bottom: var(--sp-space-2);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.sp-notification-item__meta {
  display: flex;
  align-items: center;
  gap: var(--sp-space-3);
}
.sp-notification-item__type {
  font-size: 0.75rem;
  color: var(--sp-text-muted);
  text-transform: capitalize;
}
.sp-notification-item__time {
  font-size: 0.75rem;
  color: var(--sp-text-muted);
  white-space: nowrap;
  margin-left: var(--sp-space-4);
}

.sp-notification-detail {
  background: var(--sp-card-bg);
  border: 1px solid var(--sp-card-border);
  border-radius: 6px;
  box-shadow: var(--sp-shadow-card);
}
.dark .sp-notification-detail {
  background: rgba(255, 255, 255, 0.02);
  border-color: rgba(255, 255, 255, 0.08);
}
.sp-notification-detail__header {
  padding: var(--sp-space-4) var(--sp-space-6);
  border-bottom: 1px solid var(--sp-card-border);
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-space-4);
}
.sp-notification-detail__title {
  font-size: 1.25rem;
  font-weight: var(--sp-font-weight-semibold);
  color: var(--sp-text-dark);
  margin: 0;
}
.sp-notification-detail__body {
  padding: var(--sp-space-6);
}
.sp-notification-detail__meta {
  display: flex;
  flex-direction: column;
  gap: var(--sp-space-3);
  margin-bottom: var(--sp-space-6);
  padding-bottom: var(--sp-space-6);
  border-bottom: 1px solid var(--sp-card-border);
}
.sp-notification-detail__meta-item {
  display: flex;
  align-items: center;
  gap: var(--sp-space-2);
  font-size: 0.875rem;
}
.sp-notification-detail__meta-item strong {
  color: var(--sp-text-dark);
  font-weight: var(--sp-font-weight-medium);
}
.sp-notification-detail__meta-item span {
  color: var(--sp-text-secondary);
}
.sp-notification-detail__content {
  font-size: 1rem;
  line-height: 1.7;
  color: var(--sp-text-primary);
}
.sp-notification-detail__content p {
  margin-bottom: var(--sp-space-4);
}
.sp-notification-detail__content p:last-child {
  margin-bottom: 0;
}
.sp-notification-detail__footer {
  padding: var(--sp-space-4) var(--sp-space-6);
  border-top: 1px solid var(--sp-card-border);
  background: #f0f5fa;
}
.dark .sp-notification-detail__footer {
  background: rgba(255, 255, 255, 0.02);
}

.sp-filter-tabs {
  display: flex;
  align-items: center;
  gap: var(--sp-space-2);
  padding: var(--sp-space-1);
  background: #f0f5fa;
  border-radius: 6px;
  overflow-x: auto;
}
.dark .sp-filter-tabs {
  background: rgba(255, 255, 255, 0.03);
}

.sp-filter-tab {
  padding: var(--sp-space-2) var(--sp-space-4);
  font-size: 0.875rem;
  font-weight: var(--sp-font-weight-medium);
  color: var(--sp-text-secondary);
  text-decoration: none;
  border-radius: 4px;
  white-space: nowrap;
  transition: all var(--sp-transition-fast);
}
.sp-filter-tab:hover {
  color: var(--sp-text-dark);
  background: var(--sp-white);
}
.dark .sp-filter-tab:hover {
  background: rgba(255, 255, 255, 0.08);
}
.sp-filter-tab--active {
  color: var(--sp-red);
  background: var(--sp-white);
  box-shadow: var(--sp-shadow-xs);
}
.dark .sp-filter-tab--active {
  background: rgba(255, 255, 255, 0.1);
}

.sp-dl {
  display: flex;
  flex-direction: column;
  gap: var(--sp-space-3);
}
.sp-dl__item {
  display: flex;
  flex-direction: column;
  gap: var(--sp-space-1);
}
.sp-dl__term {
  font-size: 0.8125rem;
  font-weight: var(--sp-font-weight-medium);
  color: var(--sp-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.03em;
}
.sp-dl__detail {
  font-size: 0.9375rem;
  color: var(--sp-text-dark);
}

.sp-info-box {
  display: flex;
  gap: var(--sp-space-4);
  padding: var(--sp-space-4) var(--sp-space-5);
  background: #f0f5fa;
  border: 1px solid #c3d7e9;
  border-radius: 6px;
}
.dark .sp-info-box {
  background: rgba(61, 111, 148, 0.1);
  border-color: rgba(94, 146, 184, 0.3);
}
.sp-info-box__icon {
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  color: var(--sp-blue-400);
  margin-top: 2px;
}
.sp-info-box__icon svg {
  width: 100%;
  height: 100%;
}
.sp-info-box__content {
  flex: 1;
}
.sp-info-box__title {
  font-size: 0.875rem;
  font-weight: var(--sp-font-weight-semibold);
  color: var(--sp-blue-800);
  margin-bottom: var(--sp-space-2);
}
.dark .sp-info-box__title {
  color: var(--sp-blue-200);
}
.sp-info-box__text {
  font-size: 0.875rem;
  color: var(--sp-blue-700);
}
.dark .sp-info-box__text {
  color: var(--sp-blue-300);
}
.sp-info-box__list {
  margin: var(--sp-space-2) 0 0;
  padding-left: var(--sp-space-4);
  list-style: disc;
  font-size: 0.875rem;
  color: var(--sp-blue-700);
}
.dark .sp-info-box__list {
  color: var(--sp-blue-300);
}
.sp-info-box__list li {
  margin-bottom: var(--sp-space-1);
}
.sp-info-box__list li:last-child {
  margin-bottom: 0;
}
.sp-info-box--warning {
  background: #fef3c7;
  border-color: rgb(251.0236220472, 216.4291338583, 157.9763779528);
}
.dark .sp-info-box--warning {
  background: rgba(245, 158, 11, 0.1);
  border-color: rgba(245, 158, 11, 0.3);
}
.sp-info-box--warning .sp-info-box__icon {
  color: #f59e0b;
}
.sp-info-box--warning .sp-info-box__title {
  color: rgb(123.4409448819, 79.4271653543, 5.0590551181);
}
.dark .sp-info-box--warning .sp-info-box__title {
  color: #f59e0b;
}
.sp-info-box--warning .sp-info-box__text,
.sp-info-box--warning .sp-info-box__list {
  color: rgb(172.4330708661, 110.9507874016, 7.0669291339);
}
.dark .sp-info-box--warning .sp-info-box__text,
.dark .sp-info-box--warning .sp-info-box__list {
  color: rgb(247.0078740157, 177.4763779528, 59.9921259843);
}
.sp-info-box--success {
  background: #d1fae5;
  border-color: rgb(111.4179104478, 242.5820895522, 199.1194029851);
}
.dark .sp-info-box--success {
  background: rgba(16, 185, 129, 0.1);
  border-color: rgba(16, 185, 129, 0.3);
}
.sp-info-box--success .sp-info-box__icon {
  color: #10b981;
}
.sp-info-box--success .sp-info-box__title {
  color: #065f46;
}
.dark .sp-info-box--success .sp-info-box__title {
  color: #10b981;
}
.sp-info-box--success .sp-info-box__text,
.sp-info-box--success .sp-info-box__list {
  color: rgb(11.9402985075, 138.0597014925, 96.2686567164);
}
.dark .sp-info-box--success .sp-info-box__text,
.dark .sp-info-box--success .sp-info-box__list {
  color: rgb(41.0074626866, 236.4925373134, 171.7164179104);
}

.sp-exception-list {
  display: flex;
  flex-direction: column;
  gap: var(--sp-space-3);
}

.sp-exception-item {
  display: flex;
  align-items: flex-start;
  gap: var(--sp-space-3);
}
.sp-exception-item__indicator {
  width: 8px;
  height: 8px;
  margin-top: 6px;
  border-radius: 50%;
  flex-shrink: 0;
}
.sp-exception-item__indicator--warning {
  background: #f59e0b;
}
.sp-exception-item__indicator--danger {
  background: #ef4444;
}
.sp-exception-item__indicator--info {
  background: var(--sp-blue-400);
}
.sp-exception-item__content {
  flex: 1;
  min-width: 0;
}
.sp-exception-item__title {
  font-size: 0.875rem;
  font-weight: var(--sp-font-weight-medium);
  color: var(--sp-text-dark);
}
.sp-exception-item__date {
  font-size: 0.75rem;
  color: var(--sp-text-muted);
}
.sp-exception-item__notes {
  font-size: 0.75rem;
  color: var(--sp-text-muted);
  font-style: italic;
  margin-top: var(--sp-space-1);
}

.sp-settings-empty {
  text-align: center;
  padding: var(--sp-space-12) var(--sp-space-6);
}
.sp-settings-empty__icon {
  width: 64px;
  height: 64px;
  margin: 0 auto var(--sp-space-4);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.sp-settings-empty__icon svg {
  width: 32px;
  height: 32px;
}
.sp-settings-empty__icon--success {
  background: #d1fae5;
  color: #10b981;
}
.dark .sp-settings-empty__icon--success {
  background: rgba(16, 185, 129, 0.15);
}
.sp-settings-empty__icon--info {
  background: #e1ebf4;
  color: var(--sp-blue-500);
}
.dark .sp-settings-empty__icon--info {
  background: rgba(61, 111, 148, 0.15);
}
.sp-settings-empty__icon--muted {
  background: #e1ebf4;
  color: var(--sp-text-muted);
}
.dark .sp-settings-empty__icon--muted {
  background: rgba(255, 255, 255, 0.08);
}
.sp-settings-empty__title {
  font-size: 1.125rem;
  font-weight: var(--sp-font-weight-semibold);
  color: var(--sp-text-dark);
  margin-bottom: var(--sp-space-2);
}
.sp-settings-empty__description {
  font-size: 0.9375rem;
  color: var(--sp-text-secondary);
  max-width: 400px;
  margin: 0 auto var(--sp-space-6);
}

.sp-profile-content {
  max-width: var(--sp-content-max-width);
  margin: 0 auto;
  padding: 0 var(--sp-content-padding);
}

.dark .sp-settings-card,
.dark-mode .sp-settings-card {
  background: var(--sp-card-bg);
  border-color: rgba(255, 255, 255, 0.08);
}
.dark .sp-settings-card__header,
.dark-mode .sp-settings-card__header {
  background: rgba(255, 255, 255, 0.03);
  border-bottom-color: rgba(255, 255, 255, 0.06);
}
.dark .sp-settings-card__footer,
.dark-mode .sp-settings-card__footer {
  background: rgba(255, 255, 255, 0.02);
  border-top-color: rgba(255, 255, 255, 0.06);
}
.dark .sp-notification-item:hover,
.dark-mode .sp-notification-item:hover {
  background: rgba(255, 255, 255, 0.05);
  border-color: rgba(255, 255, 255, 0.12);
}
.dark .sp-filter-tabs,
.dark-mode .sp-filter-tabs {
  background: rgba(255, 255, 255, 0.04);
}
.dark .sp-filter-tab:hover,
.dark-mode .sp-filter-tab:hover {
  background: rgba(255, 255, 255, 0.08);
}
.dark .sp-filter-tab--active,
.dark-mode .sp-filter-tab--active {
  background: rgba(255, 255, 255, 0.12);
}

@media (max-width: 768px) {
  .sp-settings-header__title {
    font-size: 1.5rem;
  }
  .sp-settings-card__header, .sp-settings-card__body, .sp-settings-card__footer {
    padding-left: var(--sp-space-4);
    padding-right: var(--sp-space-4);
  }
  .sp-notification-item {
    flex-direction: column;
    gap: var(--sp-space-3);
  }
  .sp-notification-item__time {
    margin-left: 0;
  }
  .sp-conflict-card__header {
    flex-direction: column;
    align-items: flex-start;
    gap: var(--sp-space-2);
  }
  .sp-conflict-card__actions {
    flex-direction: column;
  }
  .sp-conflict-card__actions .sp-btn {
    width: 100%;
    justify-content: center;
  }
}
.sp-sidekick-card {
  background: var(--sp-card-bg);
  border: var(--sp-border-subtle);
  border-radius: 6px;
  box-shadow: var(--sp-shadow-card);
  overflow: hidden;
  display: flex;
  flex-direction: column;
  gap: 12px;
  transition: all var(--sp-transition-fast);
}
.dark .sp-sidekick-card, [data-theme=dark] .sp-sidekick-card {
  background: var(--sp-blue-800);
  border-color: var(--sp-blue-700);
}
.sp-sidekick-card--recent {
  border: 2px solid var(--sp-warning);
}
.dark .sp-sidekick-card--recent, [data-theme=dark] .sp-sidekick-card--recent {
  border-color: var(--sp-warning);
}
.sp-sidekick-card--available:hover {
  transform: translateY(-4px);
  box-shadow: var(--sp-shadow-lg);
  border-color: var(--sp-red);
}
.sp-sidekick-card--locked {
  opacity: 0.9;
}

.sp-sidekick-card__image {
  position: relative;
  width: 100%;
  height: 180px;
  background: var(--sp-gradient-secondary);
  overflow: hidden;
}
.sp-sidekick-card__image img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform 0.3s ease;
}
.sp-sidekick-card--available:hover .sp-sidekick-card__image img {
  transform: scale(1.05);
}

.sp-sidekick-card__badge {
  position: absolute;
  top: 12px;
  right: 12px;
  padding: 4px 12px;
  border-radius: 9999px;
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}
.sp-sidekick-card__badge--recent {
  background: var(--sp-warning);
  color: #041624;
}

.sp-sidekick-card__time {
  position: absolute;
  top: 12px;
  left: 12px;
  padding: 4px 12px;
  border-radius: 9999px;
  font-size: 0.75rem;
  font-weight: 500;
  background: rgba(255, 255, 255, 0.9);
  color: var(--sp-text-muted);
  display: flex;
  align-items: center;
  gap: 4px;
}
.dark .sp-sidekick-card__time, [data-theme=dark] .sp-sidekick-card__time {
  background: rgba(4, 22, 36, 0.9);
  color: var(--sp-blue-200);
}

.sp-sidekick-card__body {
  padding: 24px;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.sp-sidekick-card__title {
  font-family: var(--sp-font-heading);
  font-size: 1.25rem;
  font-weight: 600;
  color: var(--sp-text-primary);
  margin-bottom: 8px;
}

.sp-sidekick-card__description {
  font-size: 0.875rem;
  color: var(--sp-text-secondary);
  margin-bottom: 16px;
  line-height: 1.5;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.sp-sidekick-card__tags {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin-bottom: 16px;
}

.sp-sidekick-card__requirements {
  margin-bottom: 16px;
  padding: 12px;
  background: var(--sp-blue-50);
  border-radius: 4px;
  border: 1px solid var(--sp-card-border);
}
.dark .sp-sidekick-card__requirements, [data-theme=dark] .sp-sidekick-card__requirements {
  background: var(--sp-blue-900);
  border-color: var(--sp-blue-700);
}

.sp-sidekick-card__requirements-label {
  font-size: 0.75rem;
  font-weight: 600;
  color: var(--sp-text-muted);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  display: block;
  margin-bottom: 8px;
}

.sp-sidekick-card__requirement {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.875rem;
  padding: 4px 0;
}
.sp-sidekick-card__requirement--met {
  color: var(--sp-success);
}
.sp-sidekick-card__requirement--optional {
  color: var(--sp-text-muted);
}
.sp-sidekick-card__requirement--pending {
  color: var(--sp-warning);
  font-weight: 500;
}

.sp-sidekick-card__stats {
  display: flex;
  align-items: center;
  gap: 16px;
  padding-top: 16px;
  border-top: 1px solid var(--sp-card-border);
  margin-bottom: 16px;
}
.dark .sp-sidekick-card__stats, [data-theme=dark] .sp-sidekick-card__stats {
  border-top-color: var(--sp-blue-700);
}

.sp-sidekick-card__stat {
  font-size: 0.875rem;
  color: var(--sp-text-muted);
  display: flex;
  align-items: center;
  gap: 4px;
}

.sp-sidekick-card__actions {
  margin-top: auto;
}

.sp-timer-badge {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 8px 16px;
  border-radius: 9999px;
  font-size: 0.875rem;
  font-weight: 500;
}
.sp-timer-badge--normal {
  background: var(--sp-blue-50);
  color: var(--sp-text-muted);
}
.dark .sp-timer-badge--normal, [data-theme=dark] .sp-timer-badge--normal {
  background: var(--sp-blue-700);
  color: var(--sp-blue-200);
}
.sp-timer-badge--warning {
  background: var(--sp-warning-light);
  color: var(--sp-warning-dark);
}
.dark .sp-timer-badge--warning, [data-theme=dark] .sp-timer-badge--warning {
  background: rgba(245, 158, 11, 0.2);
  color: var(--sp-warning);
}
.sp-timer-badge--urgent {
  background: var(--sp-danger-light);
  color: var(--sp-danger);
  animation: sp-pulse-urgent 2s infinite;
}
.dark .sp-timer-badge--urgent, [data-theme=dark] .sp-timer-badge--urgent {
  background: rgba(239, 68, 68, 0.2);
}
.sp-timer-badge--expired {
  background: var(--sp-danger);
  color: #ffffff;
}

@keyframes sp-pulse-urgent {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.7;
  }
}
.sp-chat-container {
  background: var(--sp-card-bg);
  border: var(--sp-border-subtle);
  border-radius: 6px;
  box-shadow: var(--sp-shadow-card);
  padding: 16px;
  height: 500px;
  overflow-y: auto;
  margin-bottom: 16px;
  background: var(--sp-blue-50);
}
.dark .sp-chat-container, [data-theme=dark] .sp-chat-container {
  background: var(--sp-blue-900);
  border-color: var(--sp-blue-700);
}
.sp-chat-container::-webkit-scrollbar {
  width: 6px;
}
.sp-chat-container::-webkit-scrollbar-track {
  background: transparent;
}
.sp-chat-container::-webkit-scrollbar-thumb {
  background: var(--sp-blue-200);
  border-radius: 3px;
}
.sp-chat-container::-webkit-scrollbar-thumb:hover {
  background: var(--sp-blue-300);
}
.dark .sp-chat-container::-webkit-scrollbar-thumb, [data-theme=dark] .sp-chat-container::-webkit-scrollbar-thumb {
  background: var(--sp-blue-600);
}
.dark .sp-chat-container::-webkit-scrollbar-thumb:hover, [data-theme=dark] .sp-chat-container::-webkit-scrollbar-thumb:hover {
  background: var(--sp-blue-500);
}

.sp-chat-message {
  margin-bottom: 16px;
  animation: sp-chat-fade-in 0.3s ease-out;
}
.sp-chat-message--user {
  text-align: right;
}
.sp-chat-message--bot {
  text-align: left;
}

@keyframes sp-chat-fade-in {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.sp-chat-bubble {
  display: inline-block;
  max-width: 80%;
  padding: 16px;
  border-radius: 6px;
  box-shadow: var(--sp-shadow-sm);
  text-align: left;
}
.sp-chat-bubble--user {
  background: var(--sp-red);
  color: #ffffff;
  border-top-right-radius: 2px;
}
.sp-chat-bubble--user .sp-chat-bubble__header {
  color: rgba(255, 255, 255, 0.9);
}
.sp-chat-bubble--user .sp-chat-bubble__time {
  color: rgba(255, 255, 255, 0.7);
}
.sp-chat-bubble--bot {
  background: var(--sp-card-bg);
  border: 1px solid var(--sp-card-border);
  border-top-left-radius: 2px;
}
.dark .sp-chat-bubble--bot, [data-theme=dark] .sp-chat-bubble--bot {
  background: var(--sp-blue-800);
  border-color: var(--sp-blue-700);
}

.sp-chat-bubble__header {
  font-size: 0.875rem;
  font-weight: 600;
  margin-bottom: 8px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.sp-chat-bubble__time {
  font-size: 0.75rem;
  opacity: 0.75;
  font-weight: 400;
}

.sp-chat-bubble__content {
  white-space: pre-wrap;
  word-break: break-word;
  line-height: 1.6;
}

.sp-chat-composer {
  background: var(--sp-card-bg);
  border-radius: 6px;
  padding: 16px;
  border: 1px solid var(--sp-card-border);
}
.dark .sp-chat-composer, [data-theme=dark] .sp-chat-composer {
  background: var(--sp-blue-800);
  border-color: var(--sp-blue-700);
}

.sp-chat-input {
  width: 100%;
  resize: none;
  border: 1px solid var(--sp-blue-200);
  border-radius: 4px;
  padding: 12px 16px;
  font-size: 0.9375rem;
  background: var(--sp-card-bg);
  color: var(--sp-text-primary);
  transition: border-color var(--sp-transition-fast);
}
.sp-chat-input:focus {
  outline: none;
  border-color: var(--sp-red);
  box-shadow: 0 0 0 3px rgba(217, 43, 49, 0.1);
}
.sp-chat-input--disabled {
  background: var(--sp-blue-50);
  cursor: not-allowed;
}
.dark .sp-chat-input--disabled, [data-theme=dark] .sp-chat-input--disabled {
  background: var(--sp-blue-900);
}
.dark .sp-chat-input, [data-theme=dark] .sp-chat-input {
  background: var(--sp-blue-900);
  border-color: var(--sp-blue-600);
}
.dark .sp-chat-input:focus, [data-theme=dark] .sp-chat-input:focus {
  border-color: var(--sp-red);
}

.sp-sidekick-prompts {
  background: var(--sp-card-bg);
  border: var(--sp-border-subtle);
  border-radius: 6px;
  box-shadow: var(--sp-shadow-card);
  padding: 16px;
}
.dark .sp-sidekick-prompts, [data-theme=dark] .sp-sidekick-prompts {
  background: var(--sp-blue-800);
  border-color: var(--sp-blue-700);
}

.sp-sidekick-prompts__title {
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--sp-text-primary);
  margin-bottom: 16px;
  text-transform: uppercase;
  letter-spacing: 0.05em;
}

.sp-sidekick-history-card {
  background: var(--sp-card-bg);
  border: var(--sp-border-subtle);
  border-radius: 6px;
  box-shadow: var(--sp-shadow-card);
  transition: all var(--sp-transition-fast);
}
.sp-sidekick-history-card:hover {
  box-shadow: var(--sp-shadow-md);
  transform: translateY(-2px);
}
.dark .sp-sidekick-history-card, [data-theme=dark] .sp-sidekick-history-card {
  background: var(--sp-blue-800);
  border-color: var(--sp-blue-700);
}

.sp-badge--animated .sp-badge__dot {
  width: 0.5rem;
  height: 0.5rem;
  background: currentColor;
  border-radius: 50%;
  animation: sp-badge-pulse 2s infinite;
}

@keyframes sp-badge-pulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.5;
  }
}
.sp-sidekick-page--animated .sp-sidekick-card {
  animation: sp-fade-up 0.4s ease-out forwards;
  opacity: 0;
}
.sp-sidekick-page--animated .sp-sidekick-card:nth-child(1) {
  animation-delay: 0.08s;
}
.sp-sidekick-page--animated .sp-sidekick-card:nth-child(2) {
  animation-delay: 0.16s;
}
.sp-sidekick-page--animated .sp-sidekick-card:nth-child(3) {
  animation-delay: 0.24s;
}
.sp-sidekick-page--animated .sp-sidekick-card:nth-child(4) {
  animation-delay: 0.32s;
}
.sp-sidekick-page--animated .sp-sidekick-card:nth-child(5) {
  animation-delay: 0.4s;
}
.sp-sidekick-page--animated .sp-sidekick-card:nth-child(6) {
  animation-delay: 0.48s;
}
.sp-sidekick-page--animated .sp-sidekick-card:nth-child(7) {
  animation-delay: 0.56s;
}
.sp-sidekick-page--animated .sp-sidekick-card:nth-child(8) {
  animation-delay: 0.64s;
}
.sp-sidekick-page--animated .sp-sidekick-card:nth-child(9) {
  animation-delay: 0.72s;
}
.sp-sidekick-page--animated .sp-sidekick-card:nth-child(10) {
  animation-delay: 0.8s;
}
.sp-sidekick-page--animated .sp-sidekick-card:nth-child(11) {
  animation-delay: 0.88s;
}
.sp-sidekick-page--animated .sp-sidekick-card:nth-child(12) {
  animation-delay: 0.96s;
}
.sp-sidekick-page--animated .sp-sidekick-history-card {
  animation: sp-fade-up 0.4s ease-out forwards;
  opacity: 0;
}
.sp-sidekick-page--animated .sp-sidekick-history-card:nth-child(1) {
  animation-delay: 0.06s;
}
.sp-sidekick-page--animated .sp-sidekick-history-card:nth-child(2) {
  animation-delay: 0.12s;
}
.sp-sidekick-page--animated .sp-sidekick-history-card:nth-child(3) {
  animation-delay: 0.18s;
}
.sp-sidekick-page--animated .sp-sidekick-history-card:nth-child(4) {
  animation-delay: 0.24s;
}
.sp-sidekick-page--animated .sp-sidekick-history-card:nth-child(5) {
  animation-delay: 0.3s;
}
.sp-sidekick-page--animated .sp-sidekick-history-card:nth-child(6) {
  animation-delay: 0.36s;
}
.sp-sidekick-page--animated .sp-sidekick-history-card:nth-child(7) {
  animation-delay: 0.42s;
}
.sp-sidekick-page--animated .sp-sidekick-history-card:nth-child(8) {
  animation-delay: 0.48s;
}
.sp-sidekick-page--animated .sp-sidekick-history-card:nth-child(9) {
  animation-delay: 0.54s;
}
.sp-sidekick-page--animated .sp-sidekick-history-card:nth-child(10) {
  animation-delay: 0.6s;
}
.sp-sidekick-page--animated .sp-sidekick-history-card:nth-child(11) {
  animation-delay: 0.66s;
}
.sp-sidekick-page--animated .sp-sidekick-history-card:nth-child(12) {
  animation-delay: 0.72s;
}
.sp-sidekick-page--animated .sp-sidekick-history-card:nth-child(13) {
  animation-delay: 0.78s;
}
.sp-sidekick-page--animated .sp-sidekick-history-card:nth-child(14) {
  animation-delay: 0.84s;
}
.sp-sidekick-page--animated .sp-sidekick-history-card:nth-child(15) {
  animation-delay: 0.9s;
}
.sp-sidekick-page--animated .sp-sidekick-history-card:nth-child(16) {
  animation-delay: 0.96s;
}
.sp-sidekick-page--animated .sp-sidekick-history-card:nth-child(17) {
  animation-delay: 1.02s;
}
.sp-sidekick-page--animated .sp-sidekick-history-card:nth-child(18) {
  animation-delay: 1.08s;
}
.sp-sidekick-page--animated .sp-sidekick-history-card:nth-child(19) {
  animation-delay: 1.14s;
}
.sp-sidekick-page--animated .sp-sidekick-history-card:nth-child(20) {
  animation-delay: 1.2s;
}

@keyframes sp-fade-up {
  from {
    opacity: 0;
    transform: translateY(15px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
.sp-ai-sparkle {
  position: relative;
}
.sp-ai-sparkle::before {
  content: "✨";
  position: absolute;
  top: -5px;
  right: -5px;
  font-size: 0.75rem;
  animation: sp-sparkle 2s ease-in-out infinite;
}

@keyframes sp-sparkle {
  0%, 100% {
    opacity: 1;
    transform: scale(1) rotate(0deg);
  }
  25% {
    opacity: 0.8;
    transform: scale(1.1) rotate(10deg);
  }
  50% {
    opacity: 0.6;
    transform: scale(0.9) rotate(-5deg);
  }
  75% {
    opacity: 0.9;
    transform: scale(1.05) rotate(5deg);
  }
}
.sp-ai-typing {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: 12px 16px;
  background: var(--sp-card-bg);
  border: 1px solid var(--sp-card-border);
  border-radius: 6px;
  border-top-left-radius: 2px;
  display: inline-flex;
}
.dark .sp-ai-typing, [data-theme=dark] .sp-ai-typing {
  background: var(--sp-blue-800);
  border-color: var(--sp-blue-700);
}
.sp-ai-typing .sp-dot {
  width: 8px;
  height: 8px;
  background: var(--sp-blue-400);
  border-radius: 50%;
  animation: sp-typing-bounce 1.4s infinite ease-in-out both;
}
.sp-ai-typing .sp-dot:nth-child(1) {
  animation-delay: -0.32s;
}
.sp-ai-typing .sp-dot:nth-child(2) {
  animation-delay: -0.16s;
}
.sp-ai-typing .sp-dot:nth-child(3) {
  animation-delay: 0s;
}

@keyframes sp-typing-bounce {
  0%, 80%, 100% {
    transform: scale(0.8);
    opacity: 0.5;
  }
  40% {
    transform: scale(1);
    opacity: 1;
  }
}
@media (max-width: 992px) {
  .sp-chat-container {
    height: 400px;
  }
  .sp-chat-bubble {
    max-width: 90%;
  }
}
@media (max-width: 768px) {
  .sp-sidekick-card__image {
    height: 140px;
  }
  .sp-chat-container {
    height: 350px;
  }
  .sp-chat-bubble {
    max-width: 95%;
    padding: 12px;
  }
}
@media (prefers-reduced-motion: reduce) {
  .sp-sidekick-page--animated .sp-sidekick-card,
  .sp-sidekick-page--animated .sp-sidekick-history-card {
    animation: none;
    opacity: 1;
  }
  .sp-chat-message {
    animation: none;
  }
  .sp-timer-badge--urgent,
  .sp-badge--animated .sp-badge__dot,
  .sp-ai-sparkle::before,
  .sp-ai-typing .sp-dot {
    animation: none;
  }
  .sp-sidekick-card--available:hover,
  .sp-sidekick-history-card:hover {
    transform: none;
  }
}
.sp-status-page,
.sp-error-page {
  min-height: 100vh;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--sp-space-5);
  font-family: var(--sp-font-family-body);
  background: var(--sp-gradient-secondary);
}

.sp-status-container,
.sp-error-container {
  width: 100%;
  max-width: 600px;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.sp-status-card,
.sp-error-card {
  background: var(--sp-card-bg);
  border-radius: 16px;
  box-shadow: var(--sp-shadow-xl);
  width: 100%;
  padding: var(--sp-space-12) var(--sp-space-8);
  text-align: center;
}
@media (max-width: 480px) {
  .sp-status-card,
  .sp-error-card {
    padding: var(--sp-space-8) var(--sp-space-5);
    border-radius: 8px;
  }
}

.sp-status-icon,
.sp-error-icon {
  width: 120px;
  height: 120px;
  margin: 0 auto var(--sp-space-6);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.sp-status-icon i,
.sp-error-icon i {
  font-size: 3.5rem;
}
@media (max-width: 480px) {
  .sp-status-icon,
  .sp-error-icon {
    width: 100px;
    height: 100px;
  }
  .sp-status-icon i,
  .sp-error-icon i {
    font-size: 2.75rem;
  }
}

.sp-status-icon--success,
.sp-error-icon--success {
  background: var(--sp-success-light);
}
.sp-status-icon--success i,
.sp-error-icon--success i {
  color: var(--sp-success);
}

.sp-status-icon--warning {
  background: var(--sp-warning-light);
}
.sp-status-icon--warning i {
  color: var(--sp-warning);
}

.sp-status-icon--danger,
.sp-error-icon--danger {
  background: var(--sp-danger-light);
}
.sp-status-icon--danger i,
.sp-error-icon--danger i {
  color: var(--sp-danger);
}

.sp-status-icon--info {
  background: var(--sp-info-light);
}
.sp-status-icon--info i {
  color: var(--sp-info);
}

.sp-status-icon--muted {
  background: var(--sp-blue-100);
}
.sp-status-icon--muted i {
  color: var(--sp-blue-400);
}

.sp-status-icon--animated {
  animation: sp-rotate 3s linear infinite;
}

.sp-status-icon--pulse {
  animation: sp-pulse 2s infinite;
}

@keyframes sp-rotate {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
@keyframes sp-pulse {
  0%, 100% {
    transform: scale(1);
    box-shadow: 0 0 0 0 rgba(100, 116, 139, 0.4);
  }
  50% {
    transform: scale(1.05);
    box-shadow: 0 0 0 10px rgba(100, 116, 139, 0);
  }
}
.sp-status-title,
.sp-error-title {
  font-family: var(--sp-font-family-heading);
  font-size: var(--sp-font-size-3xl);
  font-weight: var(--sp-font-weight-bold);
  color: var(--sp-text-primary);
  margin-bottom: var(--sp-space-4);
}
@media (max-width: 480px) {
  .sp-status-title,
  .sp-error-title {
    font-size: var(--sp-font-size-2xl);
  }
}

.sp-status-subtitle,
.sp-error-subtitle {
  font-size: var(--sp-font-size-lg);
  color: var(--sp-text-secondary);
  margin-bottom: var(--sp-space-6);
  font-weight: var(--sp-font-weight-medium);
}

.sp-status-message {
  padding: var(--sp-space-6);
  background: var(--sp-blue-50);
  border-radius: 6px;
  border-left: 4px solid var(--sp-warning);
  margin-bottom: var(--sp-space-6);
  text-align: left;
}
.sp-status-message p {
  font-size: var(--sp-font-size-base);
  color: var(--sp-text-secondary);
  line-height: var(--sp-line-height-relaxed);
  margin: 0;
}

.sp-status-eta {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-space-3);
  padding: var(--sp-space-4) var(--sp-space-6);
  background: var(--sp-warning-light);
  color: var(--sp-module-reflection-text);
  border-radius: 6px;
  font-size: var(--sp-font-size-sm);
  font-weight: var(--sp-font-weight-semibold);
  margin-bottom: var(--sp-space-6);
}
.sp-status-eta i {
  font-size: 1.25rem;
}

.sp-status-features {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));
  gap: var(--sp-space-5);
  margin-top: var(--sp-space-8);
  text-align: left;
}

.sp-status-feature {
  padding: var(--sp-space-5);
  background: var(--sp-blue-50);
  border-radius: 6px;
}

.sp-status-feature__icon {
  width: 40px;
  height: 40px;
  background: var(--sp-info-light);
  border-radius: 4px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: var(--sp-space-3);
}
.sp-status-feature__icon i {
  color: var(--sp-info);
  font-size: 1.25rem;
}

.sp-status-feature__title {
  font-size: var(--sp-font-size-sm);
  font-weight: var(--sp-font-weight-semibold);
  color: var(--sp-text-primary);
  margin-bottom: var(--sp-space-2);
}

.sp-status-feature__text {
  font-size: var(--sp-font-size-sm);
  color: var(--sp-text-secondary);
  line-height: var(--sp-line-height-normal);
  margin: 0;
}

.sp-status-refresh {
  margin-top: var(--sp-space-6);
  font-size: var(--sp-font-size-sm);
  color: var(--sp-text-muted);
}
.sp-status-refresh i {
  animation: sp-spin 2s linear infinite;
}

@keyframes sp-spin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
.sp-status-footer,
.sp-error-footer {
  margin-top: var(--sp-space-8);
  padding-top: var(--sp-space-6);
  text-align: center;
}
.sp-status-footer p,
.sp-error-footer p {
  font-size: var(--sp-font-size-sm);
  color: var(--sp-text-on-dark);
  margin: 0;
  opacity: 0.8;
}
.sp-status-footer .sp-link,
.sp-error-footer .sp-link {
  color: var(--sp-text-on-dark);
  text-decoration: underline;
}
.sp-status-footer .sp-link:hover,
.sp-error-footer .sp-link:hover {
  opacity: 1;
}

.sp-connection-status {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-space-2);
  padding: var(--sp-space-3) var(--sp-space-6);
  border-radius: 9999px;
  font-size: var(--sp-font-size-sm);
  font-weight: var(--sp-font-weight-semibold);
  margin-bottom: var(--sp-space-6);
  background: var(--sp-danger-light);
  color: var(--sp-danger);
}

.sp-connection-status--online {
  background: var(--sp-success-light);
  color: var(--sp-success);
}
.sp-connection-status--online .sp-connection-dot {
  background: var(--sp-success);
}

.sp-connection-status--checking {
  background: var(--sp-warning-light);
  color: var(--sp-module-reflection-text);
}
.sp-connection-status--checking .sp-connection-dot {
  background: var(--sp-warning);
}

.sp-connection-status--offline {
  background: var(--sp-danger-light);
  color: var(--sp-danger);
}
.sp-connection-status--offline .sp-connection-dot {
  background: var(--sp-danger);
}

.sp-connection-dot {
  width: 8px;
  height: 8px;
  background: currentColor;
  border-radius: 50%;
  animation: sp-blink 1.5s infinite;
}

@keyframes sp-blink {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.3;
  }
}
.sp-status-tips {
  margin-top: var(--sp-space-8);
  padding-top: var(--sp-space-6);
  border-top: 1px solid var(--sp-card-border);
  text-align: left;
}

.sp-status-tips__title {
  font-size: var(--sp-font-size-sm);
  font-weight: var(--sp-font-weight-semibold);
  color: var(--sp-text-secondary);
  margin-bottom: var(--sp-space-3);
  text-transform: uppercase;
  letter-spacing: 0.5px;
}

.sp-status-tips__list {
  list-style: none;
  padding: 0;
  margin: 0;
}
.sp-status-tips__list li {
  font-size: var(--sp-font-size-sm);
  color: var(--sp-text-secondary);
  padding: var(--sp-space-2) 0;
  padding-left: var(--sp-space-6);
  position: relative;
}
.sp-status-tips__list li::before {
  content: "→";
  position: absolute;
  left: 0;
  color: var(--sp-info);
  font-weight: bold;
}

.sp-error-detail {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--sp-space-2);
  margin-bottom: var(--sp-space-3);
  font-size: var(--sp-font-size-sm);
}

.sp-error-detail__label {
  color: var(--sp-text-secondary);
  font-weight: var(--sp-font-weight-medium);
}

.sp-error-detail__code {
  background: var(--sp-blue-50);
  padding: var(--sp-space-1) var(--sp-space-3);
  border-radius: 2px;
  font-family: var(--sp-font-family-mono);
  font-size: var(--sp-font-size-xs);
  color: var(--sp-text-primary);
}

.sp-error-help {
  font-size: var(--sp-font-size-sm);
  color: var(--sp-text-secondary);
  margin-top: var(--sp-space-6);
  margin-bottom: var(--sp-space-6);
}

.sp-error-actions {
  display: flex;
  flex-wrap: wrap;
  gap: var(--sp-space-3);
  justify-content: center;
  margin-top: var(--sp-space-8);
}

.sp-login-card {
  width: 100%;
  max-width: 400px;
}

.sp-login-title {
  font-family: var(--sp-font-family-heading);
  font-size: var(--sp-font-size-2xl);
  font-weight: var(--sp-font-weight-bold);
  color: var(--sp-text-primary);
  text-align: center;
  margin-bottom: var(--sp-space-6);
}

.sp-page--narrow {
  max-width: 800px;
  margin: 0 auto;
  padding: var(--sp-space-6);
}

.sp-page__header {
  margin-bottom: var(--sp-space-6);
}

.sp-page__title {
  font-family: var(--sp-font-family-heading);
  font-size: var(--sp-font-size-3xl);
  font-weight: var(--sp-font-weight-bold);
  color: var(--sp-text-primary);
  margin: 0;
}

.sp-prose h2, .sp-prose .sp-h3 {
  font-family: var(--sp-font-family-heading);
  font-size: var(--sp-font-size-xl);
  font-weight: var(--sp-font-weight-semibold);
  color: var(--sp-text-primary);
}
.sp-prose p {
  line-height: var(--sp-line-height-relaxed);
}

.sp-gdpr-notice {
  padding: var(--sp-space-3);
  background-color: var(--sp-blue-50);
  border-radius: 4px;
  font-size: var(--sp-font-size-sm);
}
.sp-gdpr-notice p {
  margin: 0;
}
.sp-gdpr-notice p:not(:last-child) {
  margin-bottom: var(--sp-space-2);
}

.sp-divider {
  display: flex;
  align-items: center;
}
.sp-divider::before, .sp-divider::after {
  content: "";
  flex: 1;
  border-top: 1px solid var(--sp-card-border);
}

.sp-divider__text {
  padding: 0 var(--sp-space-4);
}

.sp-sso-buttons {
  display: flex;
  flex-direction: column;
  gap: var(--sp-space-3);
}

.sp-btn--sso {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: var(--sp-space-2);
}
.sp-btn--sso svg {
  flex-shrink: 0;
}

.sp-sso-notice {
  padding: var(--sp-space-4);
  background-color: var(--sp-blue-50);
  border-radius: 4px;
  border: 1px solid var(--sp-card-border);
}

.sp-sso-notice__content {
  display: flex;
  align-items: flex-start;
  gap: var(--sp-space-3);
}

.sp-sso-notice__icon {
  flex-shrink: 0;
  width: 40px;
  height: 40px;
  background: var(--sp-gradient-secondary);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.sp-sso-notice__icon i {
  color: var(--sp-text-on-dark);
  font-size: 1.25rem;
}

.sp-sso-notice__body {
  flex: 1;
}

.sp-sso-notice__title {
  margin: 0 0 var(--sp-space-2) 0;
  font-weight: var(--sp-font-weight-medium);
  color: var(--sp-text-primary);
}

.sp-sso-notice__text {
  margin: 0 0 var(--sp-space-3) 0;
  font-size: var(--sp-font-size-sm);
  color: var(--sp-text-secondary);
}

.sp-page--centered {
  min-height: calc(100vh - var(--sp-navbar-height) - var(--sp-footer-height));
  display: flex;
  align-items: center;
  justify-content: center;
  padding: var(--sp-space-6);
}

.sp-context-chooser {
  max-width: 900px;
  width: 100%;
}

.sp-context-chooser__title {
  font-family: var(--sp-font-family-heading);
  font-size: var(--sp-font-size-3xl);
  font-weight: var(--sp-font-weight-bold);
  color: var(--sp-text-primary);
  text-align: center;
  margin-bottom: var(--sp-space-4);
}

.sp-context-chooser__subtitle {
  font-size: var(--sp-font-size-lg);
  color: var(--sp-text-secondary);
  text-align: center;
  margin-bottom: var(--sp-space-8);
}

.sp-context-chooser__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: var(--sp-space-6);
}
@media (max-width: 576px) {
  .sp-context-chooser__grid {
    grid-template-columns: 1fr;
  }
}

.sp-context-card {
  background: var(--sp-card-bg);
  border-radius: 6px;
  box-shadow: var(--sp-shadow-card);
  border: 2px solid transparent;
  padding: var(--sp-space-8);
  text-align: center;
  display: flex;
  flex-direction: column;
  transition: all var(--sp-transition-base);
}
.sp-context-card:hover {
  transform: translateY(-4px);
  box-shadow: var(--sp-shadow-lg);
}

.sp-context-card--primary {
  border-color: var(--sp-red);
}
.sp-context-card--primary:hover {
  border-color: var(--sp-red-light);
}

.sp-context-card--secondary {
  border-color: var(--sp-success);
}
.sp-context-card--secondary:hover {
  border-color: var(--sp-success);
}

.sp-context-card__icon {
  width: 80px;
  height: 80px;
  margin: 0 auto var(--sp-space-6);
  background: var(--sp-gradient-primary);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
}
.sp-context-card__icon i {
  font-size: 2.5rem;
  color: var(--sp-text-on-dark);
}

.sp-context-card__icon--secondary {
  background: linear-gradient(135deg, var(--sp-success) 0%, #059669 100%);
}

.sp-context-card__title {
  font-family: var(--sp-font-family-heading);
  font-size: var(--sp-font-size-xl);
  font-weight: var(--sp-font-weight-semibold);
  color: var(--sp-text-primary);
  margin-bottom: var(--sp-space-3);
}

.sp-context-card__description {
  font-size: var(--sp-font-size-base);
  color: var(--sp-text-secondary);
  line-height: var(--sp-line-height-relaxed);
  flex: 1;
  margin-bottom: var(--sp-space-6);
}

.sp-context-card__action {
  margin-top: auto;
}

.sp-btn--success {
  background: linear-gradient(135deg, var(--sp-success) 0%, #059669 100%);
  color: var(--sp-text-on-dark);
}
.sp-btn--success:hover {
  background: linear-gradient(135deg, #059669 0%, #047857 100%);
}

.sp-filter-tabs {
  display: flex;
  gap: var(--sp-space-2);
  flex-wrap: wrap;
}

.sp-filter-tab {
  padding: var(--sp-space-2) var(--sp-space-4);
  font-size: var(--sp-font-size-sm);
  font-weight: var(--sp-font-weight-medium);
  color: var(--sp-text-secondary);
  background: var(--sp-blue-50);
  border-radius: 4px;
  text-decoration: none;
  transition: all var(--sp-transition-fast);
}
.sp-filter-tab:hover {
  background: var(--sp-blue-100);
  color: var(--sp-text-primary);
}

.sp-filter-tab--active {
  background: var(--sp-gradient-primary);
  color: var(--sp-text-on-dark);
}
.sp-filter-tab--active:hover {
  background: var(--sp-gradient-primary);
  color: var(--sp-text-on-dark);
}

.dark .sp-status-page,
.dark .sp-error-page, [data-theme=dark] .sp-status-page,
[data-theme=dark] .sp-error-page {
  background: var(--sp-gradient-secondary);
}
.dark .sp-status-card,
.dark .sp-error-card, [data-theme=dark] .sp-status-card,
[data-theme=dark] .sp-error-card {
  background: var(--sp-card-bg);
  box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.4);
}
.dark .sp-status-title,
.dark .sp-error-title, [data-theme=dark] .sp-status-title,
[data-theme=dark] .sp-error-title {
  color: var(--sp-text-primary);
}
.dark .sp-status-subtitle,
.dark .sp-error-subtitle, [data-theme=dark] .sp-status-subtitle,
[data-theme=dark] .sp-error-subtitle {
  color: var(--sp-text-secondary);
}
.dark .sp-status-message, [data-theme=dark] .sp-status-message {
  background: var(--sp-blue-900);
  border-left-color: var(--sp-warning);
}
.dark .sp-status-message p, [data-theme=dark] .sp-status-message p {
  color: var(--sp-text-secondary);
}
.dark .sp-status-icon--muted, [data-theme=dark] .sp-status-icon--muted {
  background: var(--sp-blue-800);
}
.dark .sp-status-icon--muted i, [data-theme=dark] .sp-status-icon--muted i {
  color: var(--sp-blue-300);
}
.dark .sp-status-eta, [data-theme=dark] .sp-status-eta {
  background: rgba(245, 158, 11, 0.2);
  color: #fbbf24;
}
.dark .sp-status-features .sp-status-feature, [data-theme=dark] .sp-status-features .sp-status-feature {
  background: var(--sp-blue-800);
}
.dark .sp-status-features .sp-status-feature__icon, [data-theme=dark] .sp-status-features .sp-status-feature__icon {
  background: rgba(59, 130, 246, 0.2);
}
.dark .sp-status-features .sp-status-feature__icon i, [data-theme=dark] .sp-status-features .sp-status-feature__icon i {
  color: #60a5fa;
}
.dark .sp-status-features .sp-status-feature__title, [data-theme=dark] .sp-status-features .sp-status-feature__title {
  color: var(--sp-text-primary);
}
.dark .sp-status-features .sp-status-feature__text, [data-theme=dark] .sp-status-features .sp-status-feature__text {
  color: var(--sp-text-secondary);
}
.dark .sp-status-tips, [data-theme=dark] .sp-status-tips {
  border-top-color: var(--sp-card-border);
}
.dark .sp-status-tips__title, [data-theme=dark] .sp-status-tips__title {
  color: var(--sp-text-secondary);
}
.dark .sp-status-tips__list li, [data-theme=dark] .sp-status-tips__list li {
  color: var(--sp-text-secondary);
}
.dark .sp-status-tips__list li::before, [data-theme=dark] .sp-status-tips__list li::before {
  color: var(--sp-info);
}
.dark .sp-status-refresh, [data-theme=dark] .sp-status-refresh {
  color: var(--sp-text-muted);
}
.dark .sp-error-detail__code, [data-theme=dark] .sp-error-detail__code {
  background: var(--sp-blue-800);
  color: var(--sp-text-primary);
}
.dark .sp-error-help, [data-theme=dark] .sp-error-help {
  color: var(--sp-text-secondary);
}
.dark .sp-login-title, [data-theme=dark] .sp-login-title {
  color: var(--sp-text-primary);
}
.dark .sp-gdpr-notice, [data-theme=dark] .sp-gdpr-notice {
  background-color: var(--sp-blue-800);
}
.dark .sp-gdpr-notice p, [data-theme=dark] .sp-gdpr-notice p {
  color: var(--sp-text-secondary);
}
.dark .sp-sso-notice, [data-theme=dark] .sp-sso-notice {
  background-color: var(--sp-blue-800);
  border-color: var(--sp-card-border);
}
.dark .sp-sso-notice__title, [data-theme=dark] .sp-sso-notice__title {
  color: var(--sp-text-primary);
}
.dark .sp-sso-notice__text, [data-theme=dark] .sp-sso-notice__text {
  color: var(--sp-text-secondary);
}
.dark .sp-divider::before, .dark .sp-divider::after, [data-theme=dark] .sp-divider::before, [data-theme=dark] .sp-divider::after {
  border-top-color: var(--sp-card-border);
}
.dark .sp-context-chooser__title, [data-theme=dark] .sp-context-chooser__title {
  color: var(--sp-text-primary);
}
.dark .sp-context-chooser__subtitle, [data-theme=dark] .sp-context-chooser__subtitle {
  color: var(--sp-text-secondary);
}
.dark .sp-context-card, [data-theme=dark] .sp-context-card {
  background: var(--sp-card-bg);
  box-shadow: var(--sp-shadow-card);
}
.dark .sp-context-card:hover, [data-theme=dark] .sp-context-card:hover {
  box-shadow: var(--sp-shadow-lg);
}
.dark .sp-context-card__title, [data-theme=dark] .sp-context-card__title {
  color: var(--sp-text-primary);
}
.dark .sp-context-card__description, [data-theme=dark] .sp-context-card__description {
  color: var(--sp-text-secondary);
}
.dark .sp-filter-tab, [data-theme=dark] .sp-filter-tab {
  background: var(--sp-blue-800);
  color: var(--sp-text-secondary);
}
.dark .sp-filter-tab:hover, [data-theme=dark] .sp-filter-tab:hover {
  background: var(--sp-blue-700);
  color: var(--sp-text-primary);
}
.dark .sp-notifications-list, [data-theme=dark] .sp-notifications-list {
  background: var(--sp-card-bg);
  border-color: var(--sp-card-border);
}
.dark .sp-notification-item, [data-theme=dark] .sp-notification-item {
  border-bottom-color: var(--sp-card-border);
}
.dark .sp-notification-item:hover, [data-theme=dark] .sp-notification-item:hover {
  background: var(--sp-blue-800);
}
.dark .sp-notification-item--unread, [data-theme=dark] .sp-notification-item--unread {
  background: rgba(245, 158, 11, 0.1);
}
.dark .sp-notification-item--unread:hover, [data-theme=dark] .sp-notification-item--unread:hover {
  background: rgba(245, 158, 11, 0.15);
}
.dark .sp-notification-item__title, [data-theme=dark] .sp-notification-item__title {
  color: var(--sp-text-primary);
}
.dark .sp-notification-item__body, [data-theme=dark] .sp-notification-item__body {
  color: var(--sp-text-secondary);
}
.dark .sp-page-header__title, [data-theme=dark] .sp-page-header__title {
  color: var(--sp-text-primary);
}
.dark .sp-page-header__subtitle, [data-theme=dark] .sp-page-header__subtitle {
  color: var(--sp-text-secondary);
}
.dark .sp-prose h2, .dark .sp-prose .sp-h3, [data-theme=dark] .sp-prose h2, [data-theme=dark] .sp-prose .sp-h3 {
  color: var(--sp-text-primary);
}

.sp-notifications-list {
  background: var(--sp-card-bg);
  border-radius: 6px;
  box-shadow: var(--sp-shadow-card);
  border: 1px solid var(--sp-card-border);
  overflow: hidden;
}

.sp-notification-item {
  display: flex;
  justify-content: space-between;
  align-items: flex-start;
  gap: var(--sp-space-4);
  padding: var(--sp-space-4) var(--sp-space-6);
  text-decoration: none;
  border-bottom: 1px solid var(--sp-card-border);
  transition: background var(--sp-transition-fast);
}
.sp-notification-item:last-child {
  border-bottom: none;
}
.sp-notification-item:hover {
  background: var(--sp-blue-50);
}

.sp-notification-item--unread {
  background: var(--sp-warning-light);
}
.sp-notification-item--unread:hover {
  background: #fef3c7;
}

.sp-notification-item__content {
  flex: 1;
  min-width: 0;
}

.sp-notification-item__title {
  font-size: var(--sp-font-size-base);
  font-weight: var(--sp-font-weight-semibold);
  color: var(--sp-text-primary);
  margin-bottom: var(--sp-space-1);
}

.sp-notification-item__body {
  font-size: var(--sp-font-size-sm);
  color: var(--sp-text-secondary);
  line-height: var(--sp-line-height-normal);
  margin-bottom: var(--sp-space-2);
}

.sp-notification-item__meta {
  display: flex;
  align-items: center;
  gap: var(--sp-space-2);
}

.sp-notification-item__type {
  font-size: var(--sp-font-size-xs);
  color: var(--sp-text-muted);
}

.sp-notification-item__time {
  font-size: var(--sp-font-size-sm);
  color: var(--sp-text-muted);
  white-space: nowrap;
  flex-shrink: 0;
}

.sp-page {
  padding: var(--sp-space-6);
  max-width: var(--sp-content-max-width);
  margin: 0 auto;
}

.sp-page-header {
  margin-bottom: var(--sp-space-6);
}

.sp-page-header__title {
  font-family: var(--sp-font-family-heading);
  font-size: var(--sp-font-size-2xl);
  font-weight: var(--sp-font-weight-bold);
  color: var(--sp-text-primary);
  margin: 0;
  display: flex;
  align-items: center;
  gap: var(--sp-space-2);
}
.sp-page-header__title i {
  color: var(--sp-red);
}

.sp-page-header__subtitle {
  font-size: var(--sp-font-size-base);
  color: var(--sp-text-secondary);
  margin-top: var(--sp-space-2);
}

.sp-sg-page {
  padding: 24px 0;
}
.sp-sg-page--animated {
  animation: sp-fade-up 0.4s ease forwards;
}
.sp-sg-page--animated .sp-sg-header,
.sp-sg-page--animated .sp-sg-metrics,
.sp-sg-page--animated .sp-sg-widget-row,
.sp-sg-page--animated .sp-sg-main-widget,
.sp-sg-page--animated .sp-sg-quick-actions {
  opacity: 0;
  animation: sp-fade-up 0.5s ease forwards;
}
.sp-sg-page--animated .sp-sg-header {
  animation-delay: 0ms;
}
.sp-sg-page--animated .sp-sg-metrics {
  animation-delay: 50ms;
}
.sp-sg-page--animated .sp-sg-widget-row {
  animation-delay: 100ms;
}
.sp-sg-page--animated .sp-sg-main-widget {
  animation-delay: 150ms;
}
.sp-sg-page--animated .sp-sg-quick-actions {
  animation-delay: 200ms;
}
@media (prefers-reduced-motion: reduce) {
  .sp-sg-page--animated, .sp-sg-page--animated .sp-sg-header, .sp-sg-page--animated .sp-sg-metrics, .sp-sg-page--animated .sp-sg-widget-row, .sp-sg-page--animated .sp-sg-main-widget, .sp-sg-page--animated .sp-sg-quick-actions {
    animation: none;
    opacity: 1;
  }
}

.sp-sg-header {
  background: var(--sp-bg-card);
  border-radius: 6px;
  border: 1px solid var(--sp-border-light);
  padding: 24px;
  margin-bottom: 24px;
  box-shadow: 0 1px 3px rgba(4, 22, 36, 0.06), 0 1px 2px rgba(4, 22, 36, 0.04);
}
.sp-sg-header__inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
  flex-wrap: wrap;
}
.sp-sg-header__branding {
  display: flex;
  align-items: center;
  gap: 16px;
}
.sp-sg-header__logo {
  max-height: 60px;
  width: auto;
}
.sp-sg-header__title {
  font-size: 1.5rem;
  font-weight: 600;
  color: var(--sp-text-primary);
  margin: 0;
}
.sp-sg-header__subtitle {
  font-size: 0.875rem;
  color: var(--sp-text-secondary);
  margin: 0;
}
.sp-sg-header__status {
  display: flex;
  align-items: center;
  gap: 8px;
}
.dark .sp-sg-header, [data-theme=dark] .sp-sg-header {
  background: var(--sp-bg-card-dark, #1f2937);
  border-color: var(--sp-border-dark, #374151);
}

.sp-sg-connection {
  display: flex;
  align-items: center;
  gap: 8px;
}
.sp-sg-connection__dot {
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #9ca3af;
  transition: 250ms ease;
}
.sp-sg-connection__dot--connected {
  background: #22c55e;
  animation: sp-pulse 2s infinite;
}
.sp-sg-connection__dot--error {
  background: #ef4444;
}
.sp-sg-connection__label {
  font-size: 0.75rem;
  color: var(--sp-text-muted);
  font-weight: 500;
}

.sp-sg-metrics {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  margin-bottom: 24px;
}
@media (min-width: 768px) {
  .sp-sg-metrics {
    grid-template-columns: repeat(4, 1fr);
  }
}
@media (min-width: 992px) {
  .sp-sg-metrics {
    grid-template-columns: repeat(7, 1fr);
  }
}

.sp-sg-metric-card {
  background: var(--sp-bg-card);
  border-radius: 6px;
  border: 1px solid var(--sp-border-light);
  padding: 16px;
  text-align: center;
  box-shadow: 0 1px 3px rgba(4, 22, 36, 0.06), 0 1px 2px rgba(4, 22, 36, 0.04);
  transition: 150ms ease;
}
.sp-sg-metric-card:hover {
  transform: translateY(-1px);
  box-shadow: 0 4px 8px rgba(4, 22, 36, 0.08), 0 2px 4px rgba(4, 22, 36, 0.04);
}
.sp-sg-metric-card__value {
  font-size: 1.5rem;
  font-weight: 700;
  margin-bottom: 4px;
}
.sp-sg-metric-card__value--primary {
  color: var(--sp-red);
}
.sp-sg-metric-card__value--success {
  color: #22c55e;
}
.sp-sg-metric-card__value--info {
  color: #3b82f6;
}
.sp-sg-metric-card__value--purple {
  color: #9333ea;
}
.sp-sg-metric-card__value--amber {
  color: #f59e0b;
}
.sp-sg-metric-card__value--teal {
  color: #14b8a6;
}
.sp-sg-metric-card__value--danger {
  color: #ef4444;
}
.sp-sg-metric-card__label {
  font-size: 0.75rem;
  color: var(--sp-text-secondary);
  margin: 0;
}
.sp-sg-metric-card--danger {
  background: #fef2f2;
  border-color: #fecaca;
}
.sp-sg-metric-card--danger .sp-sg-metric-card__label {
  color: #dc2626;
}
.sp-sg-metric-card--success {
  background: #f0fdf4;
  border-color: #bbf7d0;
}
.sp-sg-metric-card--success .sp-sg-metric-card__label {
  color: #16a34a;
}
.dark .sp-sg-metric-card, [data-theme=dark] .sp-sg-metric-card {
  background: var(--sp-bg-card-dark, #1f2937);
  border-color: var(--sp-border-dark, #374151);
}
.dark .sp-sg-metric-card--danger, [data-theme=dark] .sp-sg-metric-card--danger {
  background: rgba(239, 68, 68, 0.1);
  border-color: rgba(239, 68, 68, 0.3);
}
.dark .sp-sg-metric-card--success, [data-theme=dark] .sp-sg-metric-card--success {
  background: rgba(34, 197, 94, 0.1);
  border-color: rgba(34, 197, 94, 0.3);
}

.sp-sg-widget {
  background: var(--sp-bg-card);
  border-radius: 6px;
  border: 1px solid var(--sp-border-light);
  box-shadow: 0 1px 3px rgba(4, 22, 36, 0.06), 0 1px 2px rgba(4, 22, 36, 0.04);
  overflow: hidden;
}
.sp-sg-widget__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px 16px;
  border-bottom: 1px solid var(--sp-border-light);
}
.sp-sg-widget__header--purple {
  background: rgba(147, 51, 234, 0.05);
}
.sp-sg-widget__header--blue {
  background: rgba(59, 130, 246, 0.05);
}
.sp-sg-widget__header--amber {
  background: rgba(245, 158, 11, 0.05);
}
.sp-sg-widget__header--teal {
  background: rgba(20, 184, 166, 0.05);
}
.sp-sg-widget__header--indigo {
  background: rgba(99, 102, 241, 0.05);
}
.sp-sg-widget__header--green {
  background: rgba(34, 197, 94, 0.05);
}
.sp-sg-widget__header--primary {
  background: rgba(217, 43, 49, 0.1);
}
.sp-sg-widget__header--gray {
  background: var(--sp-bg-muted, #f0f5fa);
}
.sp-sg-widget__title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.875rem;
  font-weight: 600;
  margin: 0;
}
.sp-sg-widget__title--purple {
  color: #6b21a8;
}
.sp-sg-widget__title--blue {
  color: #1e40af;
}
.sp-sg-widget__title--amber {
  color: #92400e;
}
.sp-sg-widget__title--teal {
  color: #115e59;
}
.sp-sg-widget__title--indigo {
  color: #3730a3;
}
.sp-sg-widget__title--green {
  color: #14532d;
}
.sp-sg-widget__title--primary {
  color: var(--sp-red);
}
.sp-sg-widget__title i {
  font-size: 1rem;
}
.sp-sg-widget__badge {
  margin-left: 8px;
  padding: 2px 8px;
  font-size: 0.75rem;
  font-weight: 600;
  border-radius: 9999px;
  color: white;
}
.sp-sg-widget__badge--purple {
  background: #9333ea;
}
.sp-sg-widget__badge--blue {
  background: #3b82f6;
}
.sp-sg-widget__badge--amber {
  background: #f59e0b;
}
.sp-sg-widget__badge--teal {
  background: #14b8a6;
}
.sp-sg-widget__badge--green {
  background: #22c55e;
}
.sp-sg-widget__link {
  font-size: 0.75rem;
  font-weight: 500;
  text-decoration: none;
  transition: 150ms ease;
}
.sp-sg-widget__link:hover {
  text-decoration: underline;
}
.sp-sg-widget__link--purple {
  color: #9333ea;
}
.sp-sg-widget__link--blue {
  color: #3b82f6;
}
.sp-sg-widget__link--amber {
  color: #f59e0b;
}
.sp-sg-widget__link--teal {
  color: #14b8a6;
}
.sp-sg-widget__link--green {
  color: #22c55e;
}
.sp-sg-widget__link--primary {
  color: var(--sp-red);
}
.sp-sg-widget__body {
  padding: 16px;
  max-height: 300px;
  overflow-y: auto;
}
.sp-sg-widget__empty {
  text-align: center;
  padding: 16px;
  color: var(--sp-text-muted);
  font-size: 0.875rem;
}
.dark .sp-sg-widget, [data-theme=dark] .sp-sg-widget {
  background: var(--sp-bg-card-dark, #1f2937);
  border-color: var(--sp-border-dark, #374151);
}
.dark .sp-sg-widget .sp-sg-widget__header, [data-theme=dark] .sp-sg-widget .sp-sg-widget__header {
  border-color: var(--sp-border-dark, #374151);
}
.dark .sp-sg-widget .sp-sg-widget__header--purple, [data-theme=dark] .sp-sg-widget .sp-sg-widget__header--purple {
  background: rgba(147, 51, 234, 0.15);
}
.dark .sp-sg-widget .sp-sg-widget__header--blue, [data-theme=dark] .sp-sg-widget .sp-sg-widget__header--blue {
  background: rgba(59, 130, 246, 0.15);
}
.dark .sp-sg-widget .sp-sg-widget__header--amber, [data-theme=dark] .sp-sg-widget .sp-sg-widget__header--amber {
  background: rgba(245, 158, 11, 0.15);
}
.dark .sp-sg-widget .sp-sg-widget__header--teal, [data-theme=dark] .sp-sg-widget .sp-sg-widget__header--teal {
  background: rgba(20, 184, 166, 0.15);
}
.dark .sp-sg-widget .sp-sg-widget__header--indigo, [data-theme=dark] .sp-sg-widget .sp-sg-widget__header--indigo {
  background: rgba(99, 102, 241, 0.15);
}
.dark .sp-sg-widget .sp-sg-widget__header--green, [data-theme=dark] .sp-sg-widget .sp-sg-widget__header--green {
  background: rgba(34, 197, 94, 0.15);
}
.dark .sp-sg-widget .sp-sg-widget__title--purple, [data-theme=dark] .sp-sg-widget .sp-sg-widget__title--purple {
  color: #a78bfa;
}
.dark .sp-sg-widget .sp-sg-widget__title--blue, [data-theme=dark] .sp-sg-widget .sp-sg-widget__title--blue {
  color: #60a5fa;
}
.dark .sp-sg-widget .sp-sg-widget__title--amber, [data-theme=dark] .sp-sg-widget .sp-sg-widget__title--amber {
  color: #fbbf24;
}
.dark .sp-sg-widget .sp-sg-widget__title--teal, [data-theme=dark] .sp-sg-widget .sp-sg-widget__title--teal {
  color: #2dd4bf;
}
.dark .sp-sg-widget .sp-sg-widget__title--indigo, [data-theme=dark] .sp-sg-widget .sp-sg-widget__title--indigo {
  color: #818cf8;
}
.dark .sp-sg-widget .sp-sg-widget__title--green, [data-theme=dark] .sp-sg-widget .sp-sg-widget__title--green {
  color: #4ade80;
}

.sp-sg-widget-item {
  background: var(--sp-bg-muted, #f0f5fa);
  border-radius: 4px;
  padding: 12px;
  margin-bottom: 12px;
  transition: 150ms ease;
}
.sp-sg-widget-item:last-child {
  margin-bottom: 0;
}
.sp-sg-widget-item:hover {
  box-shadow: 0 1px 3px rgba(4, 22, 36, 0.06), 0 1px 2px rgba(4, 22, 36, 0.04);
}
.sp-sg-widget-item--urgent {
  border-left: 4px solid #f59e0b;
}
.sp-sg-widget-item--overdue {
  border-left: 4px solid #ef4444;
}
.sp-sg-widget-item--today {
  border-left: 4px solid #3b82f6;
}
.sp-sg-widget-item--new {
  border-left: 4px solid #14b8a6;
}
.sp-sg-widget-item__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
  gap: 8px;
}
.sp-sg-widget-item__avatar {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.875rem;
  font-weight: 600;
  flex-shrink: 0;
}
.sp-sg-widget-item__avatar--purple {
  background: rgba(147, 51, 234, 0.2);
  color: #7c3aed;
}
.sp-sg-widget-item__avatar--primary {
  background: rgba(217, 43, 49, 0.2);
  color: var(--sp-red);
}
.sp-sg-widget-item__info {
  flex: 1;
  min-width: 0;
}
.sp-sg-widget-item__name {
  font-weight: 600;
  font-size: 0.875rem;
  color: var(--sp-text-primary);
  margin: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.sp-sg-widget-item__program {
  font-size: 0.75rem;
  color: var(--sp-text-muted);
  margin: 0;
}
.sp-sg-widget-item__score {
  font-size: 0.75rem;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 2px;
  background: rgba(34, 197, 94, 0.1);
  color: #16a34a;
}
.sp-sg-widget-item__time {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 0.75rem;
  color: var(--sp-text-secondary);
  margin-bottom: 8px;
}
.sp-sg-widget-item__time i {
  font-size: 0.75rem;
}
.sp-sg-widget-item__time--warning {
  color: #d97706;
}
.sp-sg-widget-item__meta {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 0.75rem;
  color: var(--sp-text-secondary);
}
.sp-sg-widget-item__badge {
  font-size: 0.75rem;
  padding: 2px 6px;
  border-radius: 2px;
  background: var(--sp-bg-muted, #f0f5fa);
  color: var(--sp-text-secondary);
}
.sp-sg-widget-item__actions {
  display: flex;
  gap: 8px;
  margin-top: 8px;
}
.dark .sp-sg-widget-item, [data-theme=dark] .sp-sg-widget-item {
  background: rgba(255, 255, 255, 0.05);
}
.dark .sp-sg-widget-item:hover, [data-theme=dark] .sp-sg-widget-item:hover {
  background: rgba(255, 255, 255, 0.08);
}

.sp-sg-widget-grid {
  display: grid;
  gap: 24px;
  margin-bottom: 24px;
}
.sp-sg-widget-grid--3col {
  grid-template-columns: 1fr;
}
@media (min-width: 992px) {
  .sp-sg-widget-grid--3col {
    grid-template-columns: repeat(3, 1fr);
  }
}
.sp-sg-widget-grid--2col {
  grid-template-columns: 1fr;
}
@media (min-width: 992px) {
  .sp-sg-widget-grid--2col {
    grid-template-columns: repeat(2, 1fr);
  }
}

.sp-sg-receiver-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}
@media (min-width: 768px) {
  .sp-sg-receiver-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}
@media (min-width: 992px) {
  .sp-sg-receiver-grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (min-width: 1248px) {
  .sp-sg-receiver-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}

.sp-sg-receiver-card {
  background: var(--sp-bg-muted, #f0f5fa);
  border-radius: 6px;
  border: 1px solid var(--sp-border-light);
  padding: 16px;
  transition: 150ms ease;
}
.sp-sg-receiver-card:hover {
  transform: translateY(-2px);
  box-shadow: 0 4px 8px rgba(4, 22, 36, 0.08), 0 2px 4px rgba(4, 22, 36, 0.04);
}
.sp-sg-receiver-card--at-risk {
  background: #fef2f2;
  border-color: #fecaca;
}
.sp-sg-receiver-card__header {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 12px;
}
.sp-sg-receiver-card__avatar {
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: rgba(217, 43, 49, 0.2);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--sp-red);
  flex-shrink: 0;
}
.sp-sg-receiver-card__info {
  flex: 1;
  min-width: 0;
}
.sp-sg-receiver-card__name {
  font-weight: 600;
  font-size: 0.875rem;
  color: var(--sp-text-primary);
  margin: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.sp-sg-receiver-card__program {
  font-size: 0.75rem;
  color: var(--sp-text-muted);
  margin: 0;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.sp-sg-receiver-card__alert {
  color: #ef4444;
  font-size: 1rem;
}
.sp-sg-receiver-card__progress {
  margin-bottom: 12px;
}
.sp-sg-receiver-card__progress-header {
  display: flex;
  justify-content: space-between;
  font-size: 0.75rem;
  margin-bottom: 4px;
}
.sp-sg-receiver-card__progress-header span:first-child {
  color: var(--sp-text-secondary);
}
.sp-sg-receiver-card__progress-header span:last-child {
  font-weight: 600;
}
.sp-sg-receiver-card__progress-bar {
  width: 100%;
  height: 8px;
  background: var(--sp-bg-muted, #f0f5fa);
  border-radius: 9999px;
  overflow: hidden;
}
.sp-sg-receiver-card__progress-bar-fill {
  height: 100%;
  border-radius: 9999px;
  transition: width 0.5s ease;
}
.sp-sg-receiver-card__progress-bar-fill--success {
  background: #22c55e;
}
.sp-sg-receiver-card__progress-bar-fill--info {
  background: #3b82f6;
}
.sp-sg-receiver-card__progress-bar-fill--danger {
  background: #ef4444;
}
.sp-sg-receiver-card__stats {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  text-align: center;
  margin-bottom: 12px;
}
.sp-sg-receiver-card__stat-value {
  font-size: 1.125rem;
  font-weight: 700;
  color: var(--sp-text-primary);
  margin: 0;
}
.sp-sg-receiver-card__stat-value--warning {
  color: #d97706;
}
.sp-sg-receiver-card__stat-label {
  font-size: 0.75rem;
  color: var(--sp-text-muted);
}
.sp-sg-receiver-card__action {
  display: block;
  width: 100%;
  text-align: center;
  padding: 8px 12px;
  font-size: 0.875rem;
  font-weight: 500;
  border: 1px solid var(--sp-red);
  color: var(--sp-red);
  background: transparent;
  border-radius: 4px;
  text-decoration: none;
  transition: 150ms ease;
}
.sp-sg-receiver-card__action:hover {
  background: var(--sp-red);
  color: white;
}
.dark .sp-sg-receiver-card, [data-theme=dark] .sp-sg-receiver-card {
  background: var(--sp-bg-card-dark, #1f2937);
  border-color: var(--sp-border-dark, #374151);
}
.dark .sp-sg-receiver-card--at-risk, [data-theme=dark] .sp-sg-receiver-card--at-risk {
  background: rgba(239, 68, 68, 0.1);
  border-color: rgba(239, 68, 68, 0.3);
}

.sp-sg-capacity__gauge {
  text-align: center;
  margin-bottom: 16px;
}
.sp-sg-capacity__circle {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
}
.sp-sg-capacity__circle svg {
  width: 96px;
  height: 96px;
  transform: rotate(-90deg);
}
.sp-sg-capacity__circle circle {
  fill: none;
  stroke-width: 8;
  stroke-linecap: round;
}
.sp-sg-capacity__circle circle:first-child {
  stroke: var(--sp-border-light);
}
.sp-sg-capacity__circle circle:last-child {
  transition: stroke-dasharray 0.5s ease;
}
.sp-sg-capacity__value {
  position: absolute;
  text-align: center;
}
.sp-sg-capacity__value-main {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--sp-text-primary);
  display: block;
}
.sp-sg-capacity__value-sub {
  font-size: 0.75rem;
  color: var(--sp-text-muted);
}
.sp-sg-capacity__status {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 8px;
  background: var(--sp-bg-muted, #f0f5fa);
  border-radius: 4px;
  margin-bottom: 12px;
}
.sp-sg-capacity__status-label {
  font-size: 0.875rem;
  color: var(--sp-text-secondary);
}
.sp-sg-capacity__status-badge {
  font-size: 0.875rem;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 2px;
}
.sp-sg-capacity__hours {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 0.875rem;
}
.sp-sg-capacity__hours span:first-child {
  color: var(--sp-text-secondary);
}
.sp-sg-capacity__hours span:last-child {
  font-weight: 600;
}
.sp-sg-capacity__slots {
  text-align: center;
  font-size: 0.875rem;
  margin-top: 12px;
}
.sp-sg-capacity__slots--available {
  color: #16a34a;
}
.sp-sg-capacity__slots--full {
  color: #d97706;
}
.sp-sg-capacity__slots i {
  margin-right: 4px;
}
.dark .sp-sg-capacity .sp-sg-capacity__circle circle:first-child, [data-theme=dark] .sp-sg-capacity .sp-sg-capacity__circle circle:first-child {
  stroke: var(--sp-border-dark, #374151);
}

.sp-sg-performance__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px;
  margin-bottom: 16px;
}
.sp-sg-performance__stat {
  padding: 12px;
  background: var(--sp-bg-muted, #f0f5fa);
  border-radius: 4px;
  text-align: center;
}
.sp-sg-performance__stat-value {
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--sp-text-primary);
  margin-bottom: 2px;
}
.sp-sg-performance__stat-label {
  font-size: 0.75rem;
  color: var(--sp-text-muted);
}
.sp-sg-performance__list {
  display: flex;
  flex-direction: column;
  gap: 8px;
}
.sp-sg-performance__row {
  display: flex;
  justify-content: space-between;
  font-size: 0.875rem;
}
.sp-sg-performance__row span:first-child {
  color: var(--sp-text-secondary);
}
.sp-sg-performance__row span:last-child {
  font-weight: 600;
}
.sp-sg-performance__roi {
  margin-top: 16px;
  padding: 12px;
  background: rgba(34, 197, 94, 0.1);
  border-radius: 4px;
  text-align: center;
}
.sp-sg-performance__roi-label {
  font-size: 0.75rem;
  color: #16a34a;
  margin-bottom: 4px;
}
.sp-sg-performance__roi-value {
  font-size: 1.25rem;
  font-weight: 700;
  color: #15803d;
}
.dark .sp-sg-performance .sp-sg-performance__stat, [data-theme=dark] .sp-sg-performance .sp-sg-performance__stat {
  background: rgba(255, 255, 255, 0.05);
}
.dark .sp-sg-performance .sp-sg-performance__roi, [data-theme=dark] .sp-sg-performance .sp-sg-performance__roi {
  background: rgba(34, 197, 94, 0.15);
}

.sp-sg-quick-actions {
  background: var(--sp-bg-card);
  border-radius: 6px;
  border: 1px solid var(--sp-border-light);
  box-shadow: 0 1px 3px rgba(4, 22, 36, 0.06), 0 1px 2px rgba(4, 22, 36, 0.04);
  overflow: hidden;
}
.sp-sg-quick-actions__header {
  background: var(--sp-bg-muted, #f0f5fa);
  border-bottom: 1px solid var(--sp-border-light);
  padding: 16px 24px;
}
.sp-sg-quick-actions__title {
  font-size: 1.125rem;
  font-weight: 600;
  margin: 0;
}
.sp-sg-quick-actions__grid {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 16px;
  padding: 24px;
}
@media (min-width: 768px) {
  .sp-sg-quick-actions__grid {
    grid-template-columns: repeat(4, 1fr);
  }
}
@media (min-width: 992px) {
  .sp-sg-quick-actions__grid {
    grid-template-columns: repeat(6, 1fr);
  }
}
.sp-sg-quick-actions__item {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 16px;
  border: 1px solid var(--sp-border-light);
  border-radius: 6px;
  text-decoration: none;
  transition: 150ms ease;
}
.sp-sg-quick-actions__item:hover {
  background: rgba(217, 43, 49, 0.05);
  border-color: var(--sp-red);
}
.sp-sg-quick-actions__item i {
  font-size: 1.5rem;
  color: var(--sp-red);
  margin-bottom: 8px;
}
.sp-sg-quick-actions__item span {
  font-size: 0.875rem;
  color: var(--sp-text-secondary);
  text-align: center;
}
.dark .sp-sg-quick-actions, [data-theme=dark] .sp-sg-quick-actions {
  background: var(--sp-bg-card-dark, #1f2937);
  border-color: var(--sp-border-dark, #374151);
}
.dark .sp-sg-quick-actions .sp-sg-quick-actions__header, [data-theme=dark] .sp-sg-quick-actions .sp-sg-quick-actions__header {
  background: rgba(255, 255, 255, 0.05);
  border-color: var(--sp-border-dark, #374151);
}
.dark .sp-sg-quick-actions .sp-sg-quick-actions__item, [data-theme=dark] .sp-sg-quick-actions .sp-sg-quick-actions__item {
  border-color: var(--sp-border-dark, #374151);
}
.dark .sp-sg-quick-actions .sp-sg-quick-actions__item:hover, [data-theme=dark] .sp-sg-quick-actions .sp-sg-quick-actions__item:hover {
  background: rgba(217, 43, 49, 0.1);
}

.sp-sg-capacity-page__header {
  margin-bottom: 24px;
}
.sp-sg-capacity-page__title {
  font-size: 1.875rem;
  font-weight: 700;
  color: var(--sp-text-primary);
  margin: 0 0 4px 0;
}
.sp-sg-capacity-page__desc {
  font-size: 1rem;
  color: var(--sp-text-secondary);
  margin: 0;
}

.sp-sg-alert {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
  padding: 16px;
  border-radius: 6px;
  border: 1px solid;
  margin-bottom: 12px;
}
.sp-sg-alert--critical {
  background: #fef2f2;
  border-color: #fecaca;
}
.sp-sg-alert--critical .sp-sg-alert__icon {
  color: #ef4444;
}
.sp-sg-alert--critical .sp-sg-alert__title {
  color: #991b1b;
}
.sp-sg-alert--critical .sp-sg-alert__message {
  color: #991b1b;
}
.sp-sg-alert--warning {
  background: #fffbeb;
  border-color: #fde68a;
}
.sp-sg-alert--warning .sp-sg-alert__icon {
  color: #f59e0b;
}
.sp-sg-alert--warning .sp-sg-alert__title {
  color: #92400e;
}
.sp-sg-alert--warning .sp-sg-alert__message {
  color: #92400e;
}
.sp-sg-alert--info {
  background: #eff6ff;
  border-color: #bfdbfe;
}
.sp-sg-alert--info .sp-sg-alert__icon {
  color: #3b82f6;
}
.sp-sg-alert--info .sp-sg-alert__title {
  color: #1e40af;
}
.sp-sg-alert--info .sp-sg-alert__message {
  color: #1e40af;
}
.sp-sg-alert__content {
  display: flex;
  align-items: flex-start;
  gap: 12px;
  flex: 1;
}
.sp-sg-alert__icon {
  margin-top: 2px;
}
.sp-sg-alert__title {
  font-weight: 600;
  margin: 0 0 4px 0;
}
.sp-sg-alert__message {
  font-size: 0.875rem;
  margin: 0;
}
.dark .sp-sg-alert--critical, [data-theme=dark] .sp-sg-alert--critical {
  background: rgba(239, 68, 68, 0.1);
  border-color: rgba(239, 68, 68, 0.3);
}
.dark .sp-sg-alert--warning, [data-theme=dark] .sp-sg-alert--warning {
  background: rgba(245, 158, 11, 0.1);
  border-color: rgba(245, 158, 11, 0.3);
}
.dark .sp-sg-alert--info, [data-theme=dark] .sp-sg-alert--info {
  background: rgba(59, 130, 246, 0.1);
  border-color: rgba(59, 130, 246, 0.3);
}

.sp-sg-stat-card {
  background: var(--sp-bg-card);
  border-radius: 8px;
  border: 1px solid var(--sp-border-light);
  box-shadow: 0 1px 3px rgba(4, 22, 36, 0.06), 0 1px 2px rgba(4, 22, 36, 0.04);
  padding: 20px;
}
.sp-sg-stat-card__label {
  font-size: 0.875rem;
  color: var(--sp-text-muted);
  margin-bottom: 8px;
}
.sp-sg-stat-card__value {
  font-size: 1.875rem;
  font-weight: 700;
  color: var(--sp-text-primary);
}
.sp-sg-stat-card__value--success {
  color: #22c55e;
}
.sp-sg-stat-card__value--danger {
  color: #ef4444;
}
.sp-sg-stat-card__progress {
  margin-top: 8px;
}
.sp-sg-stat-card__progress-bar {
  width: 100%;
  height: 8px;
  background: var(--sp-bg-muted, #f0f5fa);
  border-radius: 9999px;
  overflow: hidden;
}
.sp-sg-stat-card__progress-bar-fill {
  height: 100%;
  border-radius: 9999px;
}
.sp-sg-stat-card__progress-bar-fill--success {
  background: #22c55e;
}
.sp-sg-stat-card__progress-bar-fill--warning {
  background: #f59e0b;
}
.sp-sg-stat-card__progress-bar-fill--danger {
  background: #ef4444;
}
.sp-sg-stat-card__progress-text {
  font-size: 0.875rem;
  color: var(--sp-text-muted);
  margin-top: 4px;
}
.sp-sg-stat-card__subtitle {
  font-size: 0.875rem;
  color: var(--sp-text-muted);
  margin-top: 8px;
}
.dark .sp-sg-stat-card, [data-theme=dark] .sp-sg-stat-card {
  background: var(--sp-bg-card-dark, #1f2937);
  border-color: var(--sp-border-dark, #374151);
}

.sp-sg-workload__row {
  margin-bottom: 16px;
}
.sp-sg-workload__row:last-child {
  margin-bottom: 0;
}
.sp-sg-workload__header {
  display: flex;
  justify-content: space-between;
  margin-bottom: 4px;
}
.sp-sg-workload__header span:first-child {
  color: var(--sp-text-secondary);
}
.sp-sg-workload__header span:last-child {
  font-weight: 600;
}
.sp-sg-workload__bar {
  width: 100%;
  height: 8px;
  background: var(--sp-bg-muted, #f0f5fa);
  border-radius: 9999px;
  overflow: hidden;
}
.sp-sg-workload__bar-fill {
  height: 100%;
  border-radius: 9999px;
}
.sp-sg-workload__bar-fill--primary {
  background: var(--sp-red);
}
.sp-sg-workload__bar-fill--info {
  background: #3b82f6;
}
.sp-sg-workload__bar-fill--success {
  background: #22c55e;
}

.sp-sg-peak-week {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 12px;
  border-radius: 6px;
  border: 1px solid;
  margin-bottom: 8px;
}
.sp-sg-peak-week--warning {
  background: #fffbeb;
  border-color: #fde68a;
}
.sp-sg-peak-week--critical {
  background: #fef2f2;
  border-color: #fecaca;
}
.sp-sg-peak-week__label {
  font-weight: 600;
}
.sp-sg-peak-week__sessions {
  font-size: 0.875rem;
  color: var(--sp-text-muted);
  margin-left: 8px;
}
.sp-sg-peak-week__hours {
  font-weight: 600;
}
.sp-sg-peak-week__hours--warning {
  color: #d97706;
}
.sp-sg-peak-week__hours--critical {
  color: #dc2626;
}
.dark .sp-sg-peak-week--warning, [data-theme=dark] .sp-sg-peak-week--warning {
  background: rgba(245, 158, 11, 0.1);
  border-color: rgba(245, 158, 11, 0.3);
}
.dark .sp-sg-peak-week--critical, [data-theme=dark] .sp-sg-peak-week--critical {
  background: rgba(239, 68, 68, 0.1);
  border-color: rgba(239, 68, 68, 0.3);
}

.sp-sg-recommendation {
  padding: 16px;
  border-radius: 6px;
  border: 1px solid;
  margin-bottom: 12px;
}
.sp-sg-recommendation--high {
  background: #fef2f2;
  border-color: #fecaca;
}
.sp-sg-recommendation--medium {
  background: #fffbeb;
  border-color: #fde68a;
}
.sp-sg-recommendation--low {
  background: #eff6ff;
  border-color: #bfdbfe;
}
.sp-sg-recommendation__content {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}
.sp-sg-recommendation__icon {
  font-size: 1.5rem;
  flex-shrink: 0;
}
.sp-sg-recommendation__message {
  font-weight: 600;
  color: var(--sp-text-primary);
  margin: 0 0 4px 0;
}
.sp-sg-recommendation__meta {
  font-size: 0.875rem;
  color: var(--sp-text-muted);
}
.dark .sp-sg-recommendation--high, [data-theme=dark] .sp-sg-recommendation--high {
  background: rgba(239, 68, 68, 0.1);
  border-color: rgba(239, 68, 68, 0.3);
}
.dark .sp-sg-recommendation--medium, [data-theme=dark] .sp-sg-recommendation--medium {
  background: rgba(245, 158, 11, 0.1);
  border-color: rgba(245, 158, 11, 0.3);
}
.dark .sp-sg-recommendation--low, [data-theme=dark] .sp-sg-recommendation--low {
  background: rgba(59, 130, 246, 0.1);
  border-color: rgba(59, 130, 246, 0.3);
}

.sp-sg-program-type {
  background: var(--sp-bg-muted, #f0f5fa);
  border-radius: 6px;
  padding: 16px;
}
.sp-sg-program-type__name {
  font-weight: 600;
  color: var(--sp-text-primary);
  margin-bottom: 8px;
}
.sp-sg-program-type__value {
  font-size: 1.5rem;
  font-weight: 700;
}
.sp-sg-program-type__value--success {
  color: #22c55e;
}
.sp-sg-program-type__value--warning {
  color: #f59e0b;
}
.sp-sg-program-type__value--danger {
  color: #ef4444;
}
.sp-sg-program-type__bar {
  width: 100%;
  height: 6px;
  background: var(--sp-bg-card);
  border-radius: 9999px;
  overflow: hidden;
  margin-top: 8px;
}
.sp-sg-program-type__bar-fill {
  height: 100%;
  background: var(--sp-red);
  border-radius: 9999px;
}
.sp-sg-program-type__percent {
  font-size: 0.75rem;
  color: var(--sp-text-muted);
  margin-top: 4px;
}
.sp-sg-program-type__badge {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 0.75rem;
  font-weight: 500;
  padding: 2px 8px;
  border-radius: 2px;
  background: rgba(59, 130, 246, 0.1);
  color: #3b82f6;
  margin-top: 8px;
}
.sp-sg-program-type__badge i {
  font-size: 0.65rem;
}
.dark .sp-sg-program-type, [data-theme=dark] .sp-sg-program-type {
  background: rgba(255, 255, 255, 0.05);
}
.dark .sp-sg-program-type .sp-sg-program-type__bar, [data-theme=dark] .sp-sg-program-type .sp-sg-program-type__bar {
  background: rgba(255, 255, 255, 0.1);
}

.sp-sg-performance-hero {
  background: linear-gradient(135deg, var(--sp-red), var(--sp-red-light, #f54725));
  color: white;
  border-radius: 8px;
  padding: 24px;
  margin-bottom: 24px;
  box-shadow: 0 12px 24px rgba(4, 22, 36, 0.1), 0 4px 8px rgba(4, 22, 36, 0.04);
}
.sp-sg-performance-hero__inner {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  flex-wrap: wrap;
}
.sp-sg-performance-hero__title {
  font-size: 1.25rem;
  font-weight: 600;
  margin: 0 0 8px 0;
}
.sp-sg-performance-hero__desc {
  opacity: 0.9;
  margin: 0;
}
.sp-sg-performance-hero__rank {
  text-align: right;
}
.sp-sg-performance-hero__rank-value {
  font-size: 2.25rem;
  font-weight: 700;
}
.sp-sg-performance-hero__rank-label {
  font-size: 0.875rem;
  opacity: 0.75;
}

.sp-sg-metric-row {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  margin-bottom: 24px;
}
@media (min-width: 768px) {
  .sp-sg-metric-row {
    grid-template-columns: repeat(3, 1fr);
  }
}
@media (min-width: 992px) {
  .sp-sg-metric-row {
    grid-template-columns: repeat(5, 1fr);
  }
}

.sp-sg-perf-card {
  background: var(--sp-bg-card);
  border-radius: 8px;
  border: 1px solid var(--sp-border-light);
  box-shadow: 0 1px 3px rgba(4, 22, 36, 0.06), 0 1px 2px rgba(4, 22, 36, 0.04);
  padding: 20px;
}
.sp-sg-perf-card--roi {
  background: linear-gradient(135deg, #f0fdf4, white);
}
.sp-sg-perf-card__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 8px;
}
.sp-sg-perf-card__label {
  font-size: 0.875rem;
  color: var(--sp-text-muted);
}
.sp-sg-perf-card__badge {
  font-size: 0.75rem;
  font-weight: 600;
  padding: 2px 8px;
  border-radius: 2px;
  background: rgba(34, 197, 94, 0.1);
  color: #16a34a;
}
.sp-sg-perf-card__value {
  font-size: 1.875rem;
  font-weight: 700;
  color: var(--sp-text-primary);
}
.sp-sg-perf-card__value--success {
  color: #22c55e;
}
.sp-sg-perf-card__sub {
  font-size: 0.875rem;
  color: var(--sp-text-muted);
  margin-top: 8px;
}
.sp-sg-perf-card__change {
  font-size: 0.875rem;
}
.sp-sg-perf-card__change--positive {
  color: #16a34a;
}
.sp-sg-perf-card__change--negative {
  color: #dc2626;
}
.sp-sg-perf-card__avg {
  font-size: 0.75rem;
  color: var(--sp-text-muted);
  margin-top: 8px;
}
.dark .sp-sg-perf-card, [data-theme=dark] .sp-sg-perf-card {
  background: var(--sp-bg-card-dark, #1f2937);
  border-color: var(--sp-border-dark, #374151);
}
.dark .sp-sg-perf-card--roi, [data-theme=dark] .sp-sg-perf-card--roi {
  background: linear-gradient(135deg, rgba(34, 197, 94, 0.15), var(--sp-bg-card-dark, #1f2937));
}

.sp-sg-quality-bar {
  margin-bottom: 16px;
}
.sp-sg-quality-bar__header {
  display: flex;
  justify-content: space-between;
  margin-bottom: 4px;
}
.sp-sg-quality-bar__header span:first-child {
  color: var(--sp-text-secondary);
}
.sp-sg-quality-bar__header span:last-child {
  font-weight: 600;
}
.sp-sg-quality-bar__track {
  width: 100%;
  height: 8px;
  background: var(--sp-bg-muted, #f0f5fa);
  border-radius: 9999px;
  overflow: hidden;
}
.sp-sg-quality-bar__track-fill {
  height: 100%;
  border-radius: 9999px;
}
.sp-sg-quality-bar__track-fill--primary {
  background: var(--sp-red);
}
.sp-sg-quality-bar__track-fill--info {
  background: #3b82f6;
}
.sp-sg-quality-bar__track-fill--success {
  background: #22c55e;
}

.sp-sg-quarter-compare {
  background: var(--sp-bg-muted, #f0f5fa);
  border-radius: 6px;
  padding: 16px;
}
.sp-sg-quarter-compare__row {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-bottom: 8px;
}
.sp-sg-quarter-compare__row:last-child {
  margin-bottom: 0;
}
.sp-sg-quarter-compare__label {
  color: var(--sp-text-secondary);
}
.sp-sg-quarter-compare__value {
  font-weight: 600;
}
.sp-sg-quarter-compare__value--positive {
  color: #16a34a;
}
.sp-sg-quarter-compare__value--negative {
  color: #dc2626;
}
.sp-sg-quarter-compare__period {
  font-size: 0.75rem;
  color: var(--sp-text-muted);
  margin-top: 8px;
}
.dark .sp-sg-quarter-compare, [data-theme=dark] .sp-sg-quarter-compare {
  background: rgba(255, 255, 255, 0.05);
}

.sp-sg-competency-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
}
@media (min-width: 768px) {
  .sp-sg-competency-grid {
    grid-template-columns: repeat(5, 1fr);
  }
}

.sp-sg-competency-card {
  background: var(--sp-bg-muted, #f0f5fa);
  border-radius: 6px;
  padding: 16px;
  text-align: center;
}
.sp-sg-competency-card__dimension {
  font-size: 0.75rem;
  color: var(--sp-text-muted);
  margin-bottom: 4px;
}
.sp-sg-competency-card__name {
  font-weight: 600;
  color: var(--sp-text-primary);
  margin-bottom: 8px;
}
.sp-sg-competency-card__gain {
  font-size: 1.5rem;
  font-weight: 700;
  color: var(--sp-red);
}
.sp-sg-competency-card__count {
  font-size: 0.75rem;
  color: var(--sp-text-muted);
}
.dark .sp-sg-competency-card, [data-theme=dark] .sp-sg-competency-card {
  background: rgba(255, 255, 255, 0.05);
}

.sp-sg-highlights__item {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  margin-bottom: 8px;
}
.sp-sg-highlights__item:last-child {
  margin-bottom: 0;
}
.sp-sg-highlights__item i {
  margin-top: 2px;
  flex-shrink: 0;
}
.sp-sg-highlights__item i.fa-check-circle {
  color: #22c55e;
}
.sp-sg-highlights__item i.fa-arrow-right {
  color: var(--sp-red);
}
.sp-sg-highlights__item span {
  color: var(--sp-text-secondary);
}
.sp-sg-highlights--empty {
  color: var(--sp-text-muted);
  font-style: italic;
}

.sp-sg-agreement-card {
  background: var(--sp-bg-card);
  border-radius: 6px;
  border: 1px solid var(--sp-border-light);
  box-shadow: 0 1px 3px rgba(4, 22, 36, 0.06), 0 1px 2px rgba(4, 22, 36, 0.04);
  overflow: hidden;
  transition: 150ms ease;
}
.sp-sg-agreement-card:hover {
  box-shadow: 0 4px 8px rgba(4, 22, 36, 0.08), 0 2px 4px rgba(4, 22, 36, 0.04);
}
.sp-sg-agreement-card__body {
  padding: 20px;
}
.sp-sg-agreement-card__header {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 16px;
}
.sp-sg-agreement-card__avatar {
  width: 48px;
  height: 48px;
  border-radius: 50%;
  background: rgba(217, 43, 49, 0.1);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--sp-red);
  flex-shrink: 0;
}
.sp-sg-agreement-card__name {
  font-weight: 600;
  color: var(--sp-text-primary);
  margin: 0;
}
.sp-sg-agreement-card__program {
  font-size: 0.875rem;
  color: var(--sp-text-muted);
}
.sp-sg-agreement-card__status {
  margin-bottom: 16px;
}
.sp-sg-agreement-card__date {
  font-size: 0.75rem;
  color: var(--sp-text-muted);
  margin-bottom: 16px;
}
.sp-sg-agreement-card__date i {
  margin-right: 4px;
}
.sp-sg-agreement-card__actions {
  display: flex;
  gap: 8px;
}
.dark .sp-sg-agreement-card, [data-theme=dark] .sp-sg-agreement-card {
  background: var(--sp-bg-card-dark, #1f2937);
  border-color: var(--sp-border-dark, #374151);
}

.sp-sg-info-banner {
  background: linear-gradient(135deg, rgba(217, 43, 49, 0.05), rgba(217, 43, 49, 0.1));
  border-radius: 6px;
  padding: 24px;
  margin-top: 24px;
}
.sp-sg-info-banner__title {
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--sp-text-primary);
  margin: 0 0 12px 0;
}
.sp-sg-info-banner__title i {
  color: #eab308;
  margin-right: 8px;
}
.sp-sg-info-banner__grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 16px;
  font-size: 0.875rem;
  color: var(--sp-text-secondary);
}
@media (min-width: 768px) {
  .sp-sg-info-banner__grid {
    grid-template-columns: repeat(3, 1fr);
  }
}
.sp-sg-info-banner__grid strong {
  display: block;
  color: var(--sp-text-primary);
  margin-bottom: 4px;
}
.dark .sp-sg-info-banner, [data-theme=dark] .sp-sg-info-banner {
  background: linear-gradient(135deg, rgba(217, 43, 49, 0.1), rgba(217, 43, 49, 0.15));
}

@keyframes sp-fade-up {
  from {
    opacity: 0;
    transform: translateY(10px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}
@keyframes sp-pulse {
  0%, 100% {
    opacity: 1;
  }
  50% {
    opacity: 0.5;
  }
}
.sp-timeline {
  position: relative;
  padding-left: var(--sp-space-6);
  max-height: 400px;
  overflow-y: auto;
}
.sp-timeline::before {
  content: "";
  position: absolute;
  left: 10px;
  top: 0;
  bottom: 0;
  width: 2px;
  background: #e1ebf4;
}

.sp-timeline__item {
  position: relative;
  padding-bottom: var(--sp-space-5);
}
.sp-timeline__item:last-child {
  padding-bottom: 0;
}

.sp-timeline__dot {
  position: absolute;
  left: -22px;
  top: 4px;
  width: 12px;
  height: 12px;
  border-radius: 9999px;
  background: #c3d7e9;
  border: 2px solid var(--sp-white);
  box-shadow: var(--sp-shadow-xs);
}

.sp-timeline__dot--active {
  background: var(--sp-gradient-primary);
}

.sp-timeline__dot--complete {
  background: var(--sp-success);
}

.sp-timeline__dot--warning {
  background: var(--sp-warning);
}

.sp-timeline__dot--danger {
  background: var(--sp-danger);
}

.sp-timeline__content {
  background: var(--sp-white);
  border-radius: 4px;
  padding: var(--sp-space-4);
  box-shadow: var(--sp-shadow-xs);
  transition: box-shadow var(--sp-transition-fast);
}
.sp-timeline__content:hover {
  box-shadow: var(--sp-shadow-sm);
}

.sp-timeline__content--highlight {
  border-left: 3px solid var(--sp-red);
}

.sp-timeline__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: var(--sp-space-2);
  margin-bottom: var(--sp-space-2);
}

.sp-timeline__title {
  font-size: 0.9375rem;
  font-weight: var(--sp-font-weight-medium);
  color: var(--sp-text-dark);
  margin: 0;
}

.sp-timeline__badge {
  display: inline-flex;
  align-items: center;
  gap: var(--sp-space-1);
  font-size: 0.6875rem;
  font-weight: var(--sp-font-weight-medium);
  padding: 2px 8px;
  border-radius: 9999px;
  text-transform: uppercase;
  letter-spacing: 0.03em;
}

.sp-timeline__badge--priority {
  background: var(--sp-danger-light);
  color: var(--sp-danger);
}

.sp-timeline__badge--new {
  background: #e1ebf4;
  color: #2d5573;
}

.sp-timeline__badge--overdue {
  background: var(--sp-danger-light);
  color: var(--sp-danger);
}

.sp-timeline__description {
  font-size: 0.875rem;
  color: var(--sp-text-secondary);
  margin: 0 0 var(--sp-space-2);
  line-height: 1.5;
}

.sp-timeline__meta {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 0.8125rem;
  color: var(--sp-text-muted);
}

.sp-timeline__meta-item {
  display: flex;
  align-items: center;
  gap: 4px;
}

.sp-timeline__link {
  display: block;
  text-decoration: none;
  color: inherit;
}
.sp-timeline__link:hover .sp-timeline__title {
  color: var(--sp-red);
}

.sp-timeline-mobile__item {
  display: flex;
  gap: 12px;
  padding: 12px;
  min-height: 64px;
  border-radius: 4px;
  touch-action: manipulation;
  transition: background-color var(--sp-transition-fast);
}
.sp-timeline-mobile__item:hover, .sp-timeline-mobile__item:focus-within {
  background-color: #f0f5fa;
}
.sp-timeline-mobile__item:active {
  background-color: #e1ebf4;
}

.sp-timeline-mobile__dot {
  flex-shrink: 0;
  width: 12px;
  height: 12px;
  margin-top: 6px;
  border-radius: 50%;
  background-color: #94b8d4;
}

.sp-timeline-mobile__dot--active {
  background-color: var(--sp-red);
}

.sp-timeline-mobile__dot--warning {
  background-color: var(--sp-warning);
}

.sp-timeline-mobile__dot--success {
  background-color: var(--sp-success);
}

.sp-timeline-mobile__content {
  flex: 1;
  min-width: 0;
}

.sp-timeline-mobile__title {
  font-weight: var(--sp-font-weight-semibold);
  color: var(--sp-text-primary);
  margin-bottom: 4px;
}

.sp-timeline-mobile__description {
  font-size: 0.875rem;
  color: var(--sp-text-secondary);
  line-height: 1.4;
}

.sp-timeline__progress {
  margin-top: var(--sp-space-2);
}

.sp-timeline__progress-bar {
  width: 100%;
  height: 4px;
  background: #e1ebf4;
  border-radius: 9999px;
  overflow: hidden;
}

.sp-timeline__progress-fill {
  height: 100%;
  background: var(--sp-gradient-primary);
  border-radius: 9999px;
  transition: width 0.5s ease;
}

.sp-timeline__title-row {
  display: flex;
  align-items: center;
  gap: 8px;
  align-items: center;
}

.sp-timeline__icon {
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #e1ebf4;
  color: #3d6f94;
  border-radius: 4px;
  font-size: 0.75rem;
  flex-shrink: 0;
}

.sp-timeline__badge--warning {
  background: var(--sp-warning-light);
  color: var(--sp-warning);
}

.sp-timeline__badge--success {
  background: var(--sp-success-light);
  color: var(--sp-success);
}

.sp-timeline__badge--info {
  background: #e1ebf4;
  color: #2d5573;
}

.sp-timeline__meta-item--danger {
  color: var(--sp-danger);
  font-weight: var(--sp-font-weight-medium);
}

.sp-timeline__dot--success {
  background: var(--sp-success);
}

@keyframes sp-timeline-fade-in {
  from {
    opacity: 0;
    transform: translateX(-8px);
  }
  to {
    opacity: 1;
    transform: translateX(0);
  }
}
.sp-timeline--animated .sp-timeline__item {
  opacity: 0;
  animation: sp-timeline-fade-in 0.3s ease forwards;
}
.sp-timeline--animated .sp-timeline__item:nth-child(1) {
  animation-delay: 0.08s;
}
.sp-timeline--animated .sp-timeline__item:nth-child(2) {
  animation-delay: 0.16s;
}
.sp-timeline--animated .sp-timeline__item:nth-child(3) {
  animation-delay: 0.24s;
}
.sp-timeline--animated .sp-timeline__item:nth-child(4) {
  animation-delay: 0.32s;
}
.sp-timeline--animated .sp-timeline__item:nth-child(5) {
  animation-delay: 0.4s;
}
.sp-timeline--animated .sp-timeline__item:nth-child(6) {
  animation-delay: 0.48s;
}
.sp-timeline--animated .sp-timeline__item:nth-child(7) {
  animation-delay: 0.56s;
}
.sp-timeline--animated .sp-timeline__item:nth-child(8) {
  animation-delay: 0.64s;
}
.sp-timeline--animated .sp-timeline__item:nth-child(9) {
  animation-delay: 0.72s;
}
.sp-timeline--animated .sp-timeline__item:nth-child(10) {
  animation-delay: 0.8s;
}

@media (prefers-reduced-motion: reduce) {
  .sp-timeline--animated .sp-timeline__item {
    opacity: 1;
    animation: none;
  }
}
.sp-timeline--urgent .sp-timeline__content {
  border-left: 3px solid var(--sp-warning);
  background: linear-gradient(90deg, var(--sp-warning-light), transparent);
}
.sp-timeline--urgent .sp-timeline__dot {
  background: var(--sp-warning);
  box-shadow: 0 0 0 4px rgba(245, 158, 11, 0.2);
}

.dark .sp-timeline::before,
[data-theme=dark] .sp-timeline::before {
  background: rgba(148, 184, 212, 0.2);
}
.dark .sp-timeline__content,
[data-theme=dark] .sp-timeline__content {
  background: var(--sp-card-bg);
  border-left-color: var(--sp-card-border);
}
.dark .sp-timeline__content:hover,
[data-theme=dark] .sp-timeline__content:hover {
  box-shadow: var(--sp-shadow-md);
}
.dark .sp-timeline__dot,
[data-theme=dark] .sp-timeline__dot {
  border-color: var(--sp-card-bg);
}
.dark .sp-timeline__progress-bar,
[data-theme=dark] .sp-timeline__progress-bar {
  background: rgba(94, 146, 184, 0.2);
}
.dark .sp-timeline__icon,
[data-theme=dark] .sp-timeline__icon {
  background: rgba(94, 146, 184, 0.2);
  color: var(--sp-blue-500);
}
.dark .sp-timeline--urgent .sp-timeline__content,
[data-theme=dark] .sp-timeline--urgent .sp-timeline__content {
  background: linear-gradient(90deg, rgba(251, 191, 36, 0.1), transparent);
  border-left-color: var(--sp-warning);
}
.dark .sp-timeline-mobile__item:hover, .dark .sp-timeline-mobile__item:focus-within,
[data-theme=dark] .sp-timeline-mobile__item:hover,
[data-theme=dark] .sp-timeline-mobile__item:focus-within {
  background-color: rgba(94, 146, 184, 0.1);
}
.dark .sp-timeline-mobile__item:active,
[data-theme=dark] .sp-timeline-mobile__item:active {
  background-color: rgba(94, 146, 184, 0.2);
}

.sp-whats-next {
  background: linear-gradient(135deg, #f0f5fa, var(--sp-white));
  border-radius: 6px;
  padding: var(--sp-space-6);
  margin-bottom: var(--sp-space-5);
}

.sp-whats-next__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--sp-space-5);
}

.sp-whats-next__title {
  display: flex;
  align-items: center;
  gap: 12px;
  font-family: var(--sp-font-heading);
  font-size: 1.25rem;
  font-weight: var(--sp-font-weight-semibold);
  color: var(--sp-text-dark);
  margin: 0;
}

.sp-whats-next__title-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  background: var(--sp-gradient-primary);
  border-radius: 4px;
  color: var(--sp-white);
  font-size: 1rem;
}

.sp-whats-next__count {
  font-size: 0.875rem;
  color: var(--sp-text-muted);
}

.sp-getting-started {
  background: var(--sp-white);
  border-radius: 6px;
  box-shadow: var(--sp-shadow-card);
  padding: var(--sp-space-6);
  margin-bottom: var(--sp-space-5);
}

.sp-getting-started__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--sp-space-5);
  gap: var(--sp-space-3);
}

.sp-getting-started__title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-family: var(--sp-font-heading);
  font-size: 1.125rem;
  font-weight: var(--sp-font-weight-semibold);
  color: var(--sp-text-dark);
  margin: 0;
}

.sp-getting-started__progress {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 0.875rem;
  color: var(--sp-text-muted);
}

.sp-getting-started__progress-bar {
  width: 100%;
  height: 6px;
  background: #e1ebf4;
  border-radius: 9999px;
  overflow: hidden;
  margin-bottom: var(--sp-space-4);
}

.sp-getting-started__progress-fill {
  height: 100%;
  background: var(--sp-gradient-primary);
  border-radius: 9999px;
  transition: width 0.5s ease;
}

.sp-getting-started__list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.sp-getting-started__item {
  display: flex;
  align-items: center;
  gap: 16px;
  align-items: flex-start;
  padding: var(--sp-space-4) 0;
}
.sp-getting-started__item:not(:last-child) {
  border-bottom: 1px solid #f0f5fa;
}

.sp-getting-started__checkbox {
  flex-shrink: 0;
  width: 24px;
  height: 24px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 9999px;
  font-size: 0.875rem;
}

.sp-getting-started__checkbox--complete {
  background: var(--sp-success);
  color: var(--sp-white);
}

.sp-getting-started__checkbox--pending {
  background: #e1ebf4;
  color: #5e92b8;
}

.sp-getting-started__item-content {
  flex: 1;
}

.sp-getting-started__item-title {
  font-size: 0.9375rem;
  font-weight: var(--sp-font-weight-medium);
  color: var(--sp-text-dark);
  margin: 0 0 var(--sp-space-1);
}

.sp-getting-started__item-title--complete {
  color: var(--sp-text-muted);
  text-decoration: line-through;
}

.sp-getting-started__item-description {
  font-size: 0.8125rem;
  color: var(--sp-text-muted);
  margin: 0;
}

.sp-getting-started__item--priority {
  background: rgba(217, 43, 49, 0.06);
  margin: 0 calc(var(--sp-space-3) * -1);
  padding-left: var(--sp-space-3);
  padding-right: var(--sp-space-3);
  border-radius: 4px;
  border-left: 3px solid var(--sp-red);
}

.sp-getting-started__item-title--priority {
  color: var(--sp-text-dark);
}
.sp-getting-started__item-title--priority .sp-badge--priority {
  color: var(--sp-red);
  background: rgba(217, 43, 49, 0.12);
}

.sp-getting-started__link {
  text-decoration: none;
  color: inherit;
}
.sp-getting-started__link:hover .sp-getting-started__item-title {
  color: var(--sp-red);
}

.sp-getting-started__empty {
  text-align: center;
  padding: var(--sp-space-4) 0;
}

.sp-widget__header-right {
  display: flex;
  align-items: center;
  gap: 12px;
}

.sp-widget__badge {
  display: inline-flex;
  align-items: center;
  padding: var(--sp-space-1) var(--sp-space-2);
  font-size: 0.75rem;
  font-weight: var(--sp-font-weight-medium);
  background: #e1ebf4;
  color: #2d5573;
  border-radius: 9999px;
}

.sp-widget__action {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: var(--sp-space-1) var(--sp-space-2);
  font-size: 0.8125rem;
  font-weight: var(--sp-font-weight-medium);
  color: var(--sp-red);
  background: transparent;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  text-decoration: none;
  transition: background-color var(--sp-transition-fast);
}
.sp-widget__action:hover {
  background: var(--sp-red-lighter);
}
.sp-widget__action i {
  font-size: 0.75rem;
}

.sp-widget__footer-link {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.875rem;
  font-weight: var(--sp-font-weight-medium);
  color: var(--sp-red);
  text-decoration: none;
}
.sp-widget__footer-link:hover {
  text-decoration: underline;
}
.sp-widget__footer-link i {
  font-size: 0.75rem;
}

.sp-widget__footer-stat {
  font-size: 0.8125rem;
  color: var(--sp-text-muted);
  margin-left: auto;
}

.sp-whats-next__header-left {
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.sp-whats-next__body {
  padding-top: 0;
}

.sp-whats-next__section {
  margin-bottom: var(--sp-space-5);
}
.sp-whats-next__section:last-child {
  margin-bottom: 0;
}

.sp-whats-next__section--urgent .sp-timeline::before {
  background: var(--sp-warning);
}

.sp-whats-next__section-title {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.75rem;
  font-weight: var(--sp-font-weight-semibold);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--sp-text-muted);
  margin: 0 0 var(--sp-space-3);
}
.sp-whats-next__section-title i {
  font-size: 0.875rem;
}

.sp-whats-next__urgent-badge {
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  font-size: 0.6875rem;
  font-weight: var(--sp-font-weight-semibold);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  background: var(--sp-danger-light);
  color: var(--sp-danger);
  border-radius: 9999px;
  margin-left: var(--sp-space-2);
}

.sp-whats-next__empty {
  text-align: center;
  padding: var(--sp-space-8) var(--sp-space-4);
}

.sp-whats-next__empty-icon {
  width: 64px;
  height: 64px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--sp-success-light);
  color: var(--sp-success);
  border-radius: 9999px;
  font-size: 1.5rem;
  margin: 0 auto var(--sp-space-4);
}

.sp-whats-next__empty-text {
  font-size: 0.9375rem;
  color: var(--sp-text-secondary);
  margin: 0;
}

.sp-goals-widget__empty {
  text-align: center;
  padding: var(--sp-space-6) var(--sp-space-4);
}

.sp-goals-widget__empty-icon {
  width: 56px;
  height: 56px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #e1ebf4;
  color: #5e92b8;
  border-radius: 9999px;
  font-size: 1.25rem;
  margin: 0 auto var(--sp-space-3);
}

.sp-goals-widget__empty-text {
  font-size: 0.9375rem;
  color: var(--sp-text-secondary);
  margin: 0 0 var(--sp-space-4);
}

.sp-goals-widget__list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.sp-goals-widget__item {
  padding: var(--sp-space-3) 0;
  border-bottom: 1px solid #f0f5fa;
}
.sp-goals-widget__item:last-child {
  border-bottom: none;
}

.sp-goals-widget__row {
  display: flex;
  align-items: center;
  gap: var(--sp-space-3);
}

.sp-goals-widget__number {
  flex-shrink: 0;
  width: 24px;
  font-size: 0.875rem;
  font-weight: var(--sp-font-weight-semibold);
  color: var(--sp-text-muted);
}

.sp-goals-widget__info {
  flex: 1;
  min-width: 0;
}

.sp-goals-widget__title {
  font-size: 0.9375rem;
  font-weight: var(--sp-font-weight-medium);
  color: var(--sp-text-dark);
  margin: 0 0 var(--sp-space-1);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.sp-goals-widget__meta {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 0.8125rem;
  color: var(--sp-text-muted);
}

.sp-goals-widget__separator {
  opacity: 0.5;
}

.sp-goals-widget__progress {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-shrink: 0;
}

.sp-goals-widget__progress-bar {
  width: 60px;
  height: 4px;
  background: #e1ebf4;
  border-radius: 9999px;
  overflow: hidden;
}

.sp-goals-widget__progress-fill {
  height: 100%;
  background: var(--sp-gradient-primary);
  border-radius: 9999px;
  transition: width 0.5s ease;
}

.sp-goals-widget__progress-select {
  min-width: 120px;
  font-size: 0.8125rem;
  padding: var(--sp-space-1) var(--sp-space-2);
  border: 1px solid #c3d7e9;
  border-radius: 4px;
  background: var(--sp-white);
  color: var(--sp-text-primary);
  cursor: pointer;
  transition: border-color var(--sp-transition-fast), box-shadow var(--sp-transition-fast);
}
.sp-goals-widget__progress-select:hover {
  border-color: #94b8d4;
}
.sp-goals-widget__progress-select:focus {
  outline: none;
  border-color: var(--sp-red);
  box-shadow: 0 0 0 2px rgba(217, 43, 49, 0.1);
}
.sp-goals-widget__progress-select--updating {
  opacity: 0.7;
  cursor: wait;
}
.sp-goals-widget__progress-select--success {
  border-color: var(--sp-success);
  background: var(--sp-success-light);
}
.sp-goals-widget__progress-select--error {
  border-color: var(--sp-danger);
  background: var(--sp-danger-light);
}

.sp-goals-widget__actions-toggle {
  display: flex;
  align-items: center;
  gap: 4px;
  padding: var(--sp-space-1) var(--sp-space-2);
  font-size: 0.75rem;
  color: var(--sp-text-muted);
  background: #f0f5fa;
  border: none;
  border-radius: 4px;
  cursor: pointer;
  transition: background-color var(--sp-transition-fast);
}
.sp-goals-widget__actions-toggle:hover {
  background: #e1ebf4;
}

.sp-goals-widget__actions-chevron {
  transition: transform var(--sp-transition-fast);
}
.sp-goals-widget__actions-chevron--expanded {
  transform: rotate(180deg);
}

.sp-goals-widget__actions {
  margin-top: var(--sp-space-2);
  padding-left: 27px;
}

.sp-goals-widget__actions-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  font-size: 0.75rem;
  font-weight: var(--sp-font-weight-semibold);
  text-transform: uppercase;
  letter-spacing: 0.03em;
  color: var(--sp-text-muted);
  margin-bottom: var(--sp-space-2);
}

.sp-goals-widget__add-action {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 0.75rem;
  color: var(--sp-red);
  text-decoration: none;
}
.sp-goals-widget__add-action:hover {
  text-decoration: underline;
}

.sp-goals-widget__actions-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.sp-goals-widget__action-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: var(--sp-space-1) 0;
  font-size: 0.8125rem;
  color: var(--sp-text-secondary);
}
.sp-goals-widget__action-item--complete {
  text-decoration: line-through;
  opacity: 0.6;
}

.sp-goals-widget__action-checkbox {
  font-size: 0.75rem;
  color: var(--sp-text-muted);
}
.sp-goals-widget__action-checkbox .fa-check-circle {
  color: var(--sp-success);
}

.sp-sessions-container {
  display: contents;
}

.sp-sessions-container--multi {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: var(--sp-space-4);
}

.sp-widget__icon--sessions {
  background: linear-gradient(135deg, #3b82f6, #1d4ed8);
}

.sp-widget__state {
  padding: var(--sp-space-2) 0;
}

.sp-widget__state-icon {
  width: 48px;
  height: 48px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #e1ebf4;
  color: #3d6f94;
  border-radius: 9999px;
  font-size: 1.25rem;
  margin: 0 auto var(--sp-space-3);
}

.sp-widget__state-title {
  font-size: 0.9375rem;
  font-weight: var(--sp-font-weight-medium);
  color: var(--sp-text-dark);
  margin: 0 0 var(--sp-space-1);
  text-align: center;
}

.sp-widget__state-text {
  font-size: 0.875rem;
  color: var(--sp-text-secondary);
  margin: 0;
  text-align: center;
}

.sp-widget__sg-info {
  display: flex;
  align-items: center;
  gap: var(--sp-space-3);
  padding: var(--sp-space-3);
  background: #f0f5fa;
  border-radius: 4px;
}

.sp-widget__sg-info--compact {
  padding: var(--sp-space-2) 0;
  background: transparent;
  font-size: 0.875rem;
}

.sp-widget__sg-avatar {
  width: 40px;
  height: 40px;
  border-radius: 9999px;
  background: #c3d7e9;
  overflow: hidden;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--sp-white);
}
.sp-widget__sg-avatar img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.sp-widget__sg-details {
  flex: 1;
}

.sp-widget__sg-label,
.sp-widget__sg-role {
  font-size: 0.75rem;
  color: var(--sp-text-muted);
}

.sp-widget__sg-name {
  font-weight: var(--sp-font-weight-medium);
  color: var(--sp-text-dark);
}

.sp-widget__sessions-section {
  margin-top: var(--sp-space-3);
}

.sp-widget__sessions-title {
  font-size: 0.6875rem;
  font-weight: var(--sp-font-weight-semibold);
  text-transform: uppercase;
  letter-spacing: 0.05em;
  color: var(--sp-text-muted);
  margin: 0 0 var(--sp-space-2);
}

.sp-widget__sessions-list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.sp-widget__session-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: var(--sp-space-2) 0;
  border-bottom: 1px solid #f0f5fa;
}
.sp-widget__session-item:last-child {
  border-bottom: none;
}

.sp-widget__session-info {
  flex: 1;
  min-width: 0;
}

.sp-widget__session-date {
  display: block;
  font-size: 0.875rem;
  font-weight: var(--sp-font-weight-medium);
  color: var(--sp-text-dark);
}

.sp-widget__session-title {
  display: block;
  font-size: 0.8125rem;
  color: var(--sp-text-muted);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}

.sp-widget__empty-text {
  font-size: 0.875rem;
  color: var(--sp-text-muted);
  text-align: center;
}

.sp-widget__checklist {
  list-style: none;
  padding: 0;
  margin: 0;
}

.sp-widget__checklist-item {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: var(--sp-space-2) 0;
}
.sp-widget__checklist-item--complete {
  text-decoration: line-through;
  opacity: 0.6;
}

.sp-widget__checklist-icon {
  font-size: 0.875rem;
  color: var(--sp-text-muted);
}

.sp-widget__checklist-text {
  font-size: 0.875rem;
  color: var(--sp-text-secondary);
}

.sp-package-progress {
  display: flex;
  flex-direction: column;
  gap: var(--sp-space-4);
}

.sp-package-progress__item {
  padding: var(--sp-space-4);
  background: #f0f5fa;
  border-radius: 6px;
  transition: background-color var(--sp-transition-fast);
}
.sp-package-progress__item--active {
  background: linear-gradient(135deg, rgba(217, 43, 49, 0.05), rgba(245, 71, 37, 0.05));
  border: 1px solid rgba(217, 43, 49, 0.2);
}
.sp-package-progress__item--complete {
  background: var(--sp-success-light);
  border: 1px solid rgba(16, 185, 129, 0.2);
}

.sp-package-progress__header {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: var(--sp-space-3);
  margin-bottom: var(--sp-space-3);
}

.sp-package-progress__info {
  flex: 1;
  min-width: 0;
}

.sp-package-progress__name {
  font-size: 0.9375rem;
  font-weight: var(--sp-font-weight-medium);
  color: var(--sp-text-dark);
  margin: 0 0 var(--sp-space-1);
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.sp-package-progress__meta {
  font-size: 0.8125rem;
  color: var(--sp-text-muted);
}

.sp-package-progress__percentage {
  flex-shrink: 0;
}

.sp-package-progress__percentage-value {
  font-family: var(--sp-font-heading);
  font-size: 1.25rem;
  font-weight: var(--sp-font-weight-bold);
  color: var(--sp-text-dark);
}

.sp-package-progress__bar-container {
  margin-bottom: var(--sp-space-2);
}

.sp-package-progress__bar {
  width: 100%;
  height: 8px;
  background: rgba(255, 255, 255, 0.8);
  border-radius: 9999px;
  overflow: hidden;
}

.sp-package-progress__bar-fill {
  height: 100%;
  background: var(--sp-gradient-primary);
  border-radius: 9999px;
  transition: width 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}
.sp-package-progress__bar-fill--complete {
  background: var(--sp-success);
}

.sp-package-progress__action {
  margin-top: var(--sp-space-2);
  text-align: right;
}

.sp-package-progress__footer {
  padding-top: var(--sp-space-3);
  border-top: 1px solid #e1ebf4;
  margin-top: var(--sp-space-2);
}

.sp-package-progress__summary {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 0.8125rem;
  color: var(--sp-text-muted);
}

.sp-widget__meta {
  font-size: 0.875rem;
  color: var(--sp-text-muted);
  font-weight: var(--sp-font-weight-medium);
}

.sp-widget__icon--info {
  background: linear-gradient(135deg, #3b82f6, #1d4ed8);
}

.sp-widget__icon--tasks {
  background: linear-gradient(135deg, #10b981, #059669);
}

.sp-widget__icon--handshakes {
  background: linear-gradient(135deg, #8b5cf6, #7c3aed);
}

.sp-widget__icon--forms {
  background: linear-gradient(135deg, #f59e0b, #d97706);
}

.sp-widget__icon--muted {
  background: #c3d7e9;
  color: #5e92b8;
}

.sp-widget__summary {
  font-size: 0.875rem;
  color: var(--sp-text-muted);
  font-weight: var(--sp-font-weight-medium);
}

.sp-widget--empty {
  opacity: 0.7;
}

.sp-widget__header--empty {
  cursor: default;
}

.sp-widget__title--muted {
  color: var(--sp-text-muted);
}

.sp-tasks-widget__content {
  padding: 0;
}

.sp-tasks-widget__progress-section {
  margin-bottom: var(--sp-space-4);
}

.sp-tasks-widget__progress-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: var(--sp-space-2);
}

.sp-tasks-widget__progress-text {
  font-size: 0.875rem;
  color: var(--sp-text-secondary);
}
.sp-tasks-widget__progress-text strong {
  color: var(--sp-text-dark);
  font-weight: var(--sp-font-weight-semibold);
}

.sp-tasks-widget__progress-percentage {
  font-family: var(--sp-font-heading);
  font-size: 1.125rem;
  font-weight: var(--sp-font-weight-bold);
  color: var(--sp-text-dark);
}

.sp-tasks-widget__progress-bar {
  width: 100%;
  height: 8px;
  background: #e1ebf4;
  border-radius: 9999px;
  overflow: hidden;
}

.sp-tasks-widget__progress-fill {
  height: 100%;
  background: var(--sp-gradient-primary);
  border-radius: 9999px;
  transition: width 0.6s cubic-bezier(0.4, 0, 0.2, 1);
}
.sp-tasks-widget__progress-fill--complete {
  background: var(--sp-success);
}

.sp-tasks-widget__status {
  margin-bottom: var(--sp-space-3);
}

.sp-tasks-widget__status-message {
  display: flex;
  align-items: center;
  gap: 8px;
  padding: var(--sp-space-2) var(--sp-space-3);
  border-radius: 4px;
  font-size: 0.875rem;
}
.sp-tasks-widget__status-message--success {
  background: var(--sp-success-light);
  color: var(--sp-success);
}
.sp-tasks-widget__status-message--info {
  background: #f0f5fa;
  color: #2d5573;
}
.sp-tasks-widget__status-message--warning {
  background: var(--sp-warning-light);
  color: var(--sp-warning);
}

.sp-tasks-widget__actions {
  text-align: right;
}

.sp-handshakes-widget__content {
  padding: 0;
}

.sp-handshakes-widget__list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.sp-handshakes-widget__item {
  display: flex;
  align-items: center;
  gap: var(--sp-space-3);
  padding: var(--sp-space-3) 0;
  border-bottom: 1px solid #f0f5fa;
}
.sp-handshakes-widget__item:last-child {
  border-bottom: none;
}

.sp-handshakes-widget__item-icon {
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #e1ebf4;
  color: #3d6f94;
  border-radius: 4px;
  flex-shrink: 0;
}

.sp-handshakes-widget__item--tobesent .sp-handshakes-widget__item-icon {
  background: var(--sp-warning-light);
  color: var(--sp-warning);
}

.sp-handshakes-widget__item--approved .sp-handshakes-widget__item-icon {
  background: var(--sp-success-light);
  color: var(--sp-success);
}

.sp-handshakes-widget__item--hasremarks .sp-handshakes-widget__item-icon {
  background: var(--sp-warning-light);
  color: var(--sp-warning);
}

.sp-handshakes-widget__item--rejected .sp-handshakes-widget__item-icon {
  background: var(--sp-danger-light);
  color: var(--sp-danger);
}

.sp-handshakes-widget__item-content {
  flex: 1;
  min-width: 0;
}

.sp-handshakes-widget__item-name {
  font-size: 0.9375rem;
  font-weight: var(--sp-font-weight-medium);
  color: var(--sp-text-dark);
  margin-bottom: var(--sp-space-1);
}

.sp-handshakes-widget__item-status {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 0.8125rem;
}

.sp-handshakes-widget__status-indicator {
  font-size: 0.75rem;
}
.sp-handshakes-widget__status-indicator--success {
  color: var(--sp-success);
}
.sp-handshakes-widget__status-indicator--warning {
  color: var(--sp-warning);
}
.sp-handshakes-widget__status-indicator--info {
  color: #3d6f94;
}
.sp-handshakes-widget__status-indicator--danger {
  color: var(--sp-danger);
}

.sp-handshakes-widget__status-text {
  color: var(--sp-text-muted);
}

.sp-handshakes-widget__item-action {
  flex-shrink: 0;
}

.sp-handshakes-widget__footer {
  padding-top: var(--sp-space-3);
  border-top: 1px solid #f0f5fa;
  margin-top: var(--sp-space-2);
}

.sp-forms-widget__content {
  padding: 0;
}

.sp-forms-widget__list {
  list-style: none;
  padding: 0;
  margin: 0;
}

.sp-forms-widget__item {
  display: flex;
  align-items: center;
  gap: var(--sp-space-3);
  padding: var(--sp-space-3) 0;
  border-bottom: 1px solid #f0f5fa;
}
.sp-forms-widget__item:last-child {
  border-bottom: none;
}

.sp-forms-widget__item-icon {
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #e1ebf4;
  color: #3d6f94;
  border-radius: 4px;
  flex-shrink: 0;
}

.sp-forms-widget__item--sp-forms-widget__item--overdue .sp-forms-widget__item-icon {
  background: var(--sp-danger-light);
  color: var(--sp-danger);
}

.sp-forms-widget__item-content {
  flex: 1;
  min-width: 0;
}

.sp-forms-widget__item-name {
  font-size: 0.9375rem;
  font-weight: var(--sp-font-weight-medium);
  color: var(--sp-text-dark);
  margin-bottom: var(--sp-space-1);
}

.sp-forms-widget__item-status {
  display: flex;
  align-items: center;
  gap: 4px;
  font-size: 0.8125rem;
}

.sp-forms-widget__status-indicator {
  font-size: 0.75rem;
}
.sp-forms-widget__status-indicator--success {
  color: var(--sp-success);
}
.sp-forms-widget__status-indicator--warning {
  color: var(--sp-warning);
}
.sp-forms-widget__status-indicator--danger {
  color: var(--sp-danger);
}

.sp-forms-widget__status-text {
  color: var(--sp-text-muted);
}
.sp-forms-widget__status-text--danger {
  color: var(--sp-danger);
  font-weight: var(--sp-font-weight-medium);
}

.sp-forms-widget__days-badge {
  display: inline-flex;
  padding: 2px 6px;
  font-size: 0.6875rem;
  font-weight: var(--sp-font-weight-semibold);
  border-radius: 9999px;
  margin-left: var(--sp-space-1);
}
.sp-forms-widget__days-badge--warning {
  background: var(--sp-warning-light);
  color: var(--sp-warning);
}

.sp-forms-widget__item-action {
  flex-shrink: 0;
}

.sp-forms-widget__footer {
  padding-top: var(--sp-space-3);
  border-top: 1px solid #f0f5fa;
  margin-top: var(--sp-space-2);
}

.dark .sp-package-progress__item,
[data-theme=dark] .sp-package-progress__item {
  background: rgba(94, 146, 184, 0.1);
}
.dark .sp-package-progress__item--active,
[data-theme=dark] .sp-package-progress__item--active {
  background: linear-gradient(135deg, rgba(239, 68, 68, 0.1), rgba(248, 113, 113, 0.1));
  border-color: rgba(248, 113, 113, 0.3);
}
.dark .sp-package-progress__item--complete,
[data-theme=dark] .sp-package-progress__item--complete {
  background: rgba(52, 211, 153, 0.1);
  border-color: rgba(52, 211, 153, 0.3);
}
.dark .sp-package-progress__bar,
[data-theme=dark] .sp-package-progress__bar {
  background: rgba(0, 0, 0, 0.3);
}
.dark .sp-package-progress__footer,
[data-theme=dark] .sp-package-progress__footer {
  border-top-color: rgba(148, 184, 212, 0.1);
}
.dark .sp-whats-next,
[data-theme=dark] .sp-whats-next {
  background: linear-gradient(135deg, rgba(30, 58, 82, 0.5), var(--sp-card-bg));
}
.dark .sp-getting-started,
.dark .sp-widget,
[data-theme=dark] .sp-getting-started,
[data-theme=dark] .sp-widget {
  background: var(--sp-card-bg);
}
.dark .sp-getting-started__checkbox--pending,
[data-theme=dark] .sp-getting-started__checkbox--pending {
  background: rgba(94, 146, 184, 0.2);
}
.dark .sp-getting-started__item:not(:last-child),
[data-theme=dark] .sp-getting-started__item:not(:last-child) {
  border-bottom-color: rgba(148, 184, 212, 0.1);
}
.dark .sp-getting-started__item--priority,
[data-theme=dark] .sp-getting-started__item--priority {
  background: rgba(239, 68, 68, 0.08);
  border-left: 3px solid rgba(248, 113, 113, 0.6);
}
.dark .sp-getting-started__item-title--priority .sp-badge--priority,
[data-theme=dark] .sp-getting-started__item-title--priority .sp-badge--priority {
  color: #f87171;
  background: rgba(248, 113, 113, 0.15);
}
.dark .sp-goals-widget__item,
[data-theme=dark] .sp-goals-widget__item {
  border-bottom-color: rgba(148, 184, 212, 0.1);
}
.dark .sp-goals-widget__progress-bar,
[data-theme=dark] .sp-goals-widget__progress-bar {
  background: rgba(94, 146, 184, 0.2);
}
.dark .sp-goals-widget__progress-select,
[data-theme=dark] .sp-goals-widget__progress-select {
  background: var(--sp-card-bg);
  border-color: rgba(148, 184, 212, 0.2);
  color: var(--sp-text-primary);
}
.dark .sp-goals-widget__progress-select:hover,
[data-theme=dark] .sp-goals-widget__progress-select:hover {
  border-color: rgba(148, 184, 212, 0.4);
}
.dark .sp-goals-widget__actions-toggle,
[data-theme=dark] .sp-goals-widget__actions-toggle {
  background: rgba(94, 146, 184, 0.15);
}
.dark .sp-goals-widget__actions-toggle:hover,
[data-theme=dark] .sp-goals-widget__actions-toggle:hover {
  background: rgba(94, 146, 184, 0.25);
}
.dark .sp-widget__sg-info,
[data-theme=dark] .sp-widget__sg-info {
  background: rgba(94, 146, 184, 0.1);
}
.dark .sp-widget__session-item,
.dark .sp-widget__checklist-item,
[data-theme=dark] .sp-widget__session-item,
[data-theme=dark] .sp-widget__checklist-item {
  border-bottom-color: rgba(148, 184, 212, 0.1);
}
.dark .sp-widget__badge,
[data-theme=dark] .sp-widget__badge {
  background: rgba(94, 146, 184, 0.2);
  color: var(--sp-text-secondary);
}
.dark .sp-tasks-widget__progress-bar,
[data-theme=dark] .sp-tasks-widget__progress-bar {
  background: rgba(94, 146, 184, 0.2);
}
.dark .sp-tasks-widget__status-message--info,
[data-theme=dark] .sp-tasks-widget__status-message--info {
  background: rgba(94, 146, 184, 0.15);
}
.dark .sp-handshakes-widget__item,
[data-theme=dark] .sp-handshakes-widget__item {
  border-bottom-color: rgba(148, 184, 212, 0.1);
}
.dark .sp-handshakes-widget__item-icon,
[data-theme=dark] .sp-handshakes-widget__item-icon {
  background: rgba(94, 146, 184, 0.2);
}
.dark .sp-handshakes-widget__footer,
[data-theme=dark] .sp-handshakes-widget__footer {
  border-top-color: rgba(148, 184, 212, 0.1);
}
.dark .sp-forms-widget__item,
[data-theme=dark] .sp-forms-widget__item {
  border-bottom-color: rgba(148, 184, 212, 0.1);
}
.dark .sp-forms-widget__item-icon,
[data-theme=dark] .sp-forms-widget__item-icon {
  background: rgba(94, 146, 184, 0.2);
}
.dark .sp-forms-widget__footer,
[data-theme=dark] .sp-forms-widget__footer {
  border-top-color: rgba(148, 184, 212, 0.1);
}

.sp-welcome-container {
  margin-top: -1.5rem;
  margin-bottom: 2rem;
  position: relative;
  z-index: 2;
}

.sp-welcome-card {
  padding: 2rem 0;
  z-index: 2;
  margin-top: calc(-1 * var(--sp-space-8) - 40px);
}

.sp-welcome-button-section {
  z-index: 10;
  margin-top: -4.2rem;
  padding: 0;
  position: relative;
}

.sp-welcome-button {
  z-index: 10;
  margin-top: 0;
}

.sp-page-title--signature::after {
  z-index: 5;
}

.sp-welcome-content__body {
  line-height: 1.6;
}
.sp-welcome-content__body ul {
  margin: var(--sp-space-4) 0;
  padding-left: var(--sp-space-6);
}
.sp-welcome-content__body ul li {
  margin-bottom: var(--sp-space-2);
}

.sp-mb-0 {
  margin-bottom: 0;
}

.sp-mb-2 {
  margin-bottom: var(--sp-space-2);
}

.sp-mb-4 {
  margin-bottom: var(--sp-space-4);
}

.sp-mb-6 {
  margin-bottom: var(--sp-space-6);
}

.sp-mb-8 {
  margin-bottom: var(--sp-space-8);
}

.sp-mt-0 {
  margin-top: 0;
}

.sp-mt-2 {
  margin-top: var(--sp-space-2);
}

.sp-mt-4 {
  margin-top: var(--sp-space-4);
}

.sp-mt-6 {
  margin-top: var(--sp-space-6);
}

.sp-p-4 {
  padding: var(--sp-space-4);
}

.sp-p-6 {
  padding: var(--sp-space-6);
}

.sp-hidden {
  display: none !important;
}

.sp-visible {
  display: block !important;
}

.sp-invisible {
  visibility: hidden !important;
}

.sp-text-primary {
  color: var(--sp-text-primary);
}

.sp-text-secondary {
  color: var(--sp-text-secondary);
}

.sp-text-muted {
  color: var(--sp-text-muted);
}

.sp-text-success {
  color: var(--sp-success);
}

.sp-text-warning {
  color: var(--sp-warning);
}

.sp-text-danger {
  color: var(--sp-danger);
}

.sp-text-center {
  text-align: center;
}

.sp-text-left {
  text-align: left;
}

.sp-text-right {
  text-align: right;
}

.sp-bg-white {
  background: var(--sp-white);
}

.sp-bg-light {
  background: #f0f5fa;
}

.sp-bg-primary {
  background: var(--sp-gradient-primary);
}

.sp-bg-secondary {
  background: var(--sp-gradient-secondary);
}

.sp-rounded {
  border-radius: 4px;
}

.sp-rounded-lg {
  border-radius: 6px;
}

.sp-shadow {
  box-shadow: var(--sp-shadow-sm);
}

.sp-shadow-md {
  box-shadow: var(--sp-shadow-md);
}

.sp-shadow-lg {
  box-shadow: var(--sp-shadow-lg);
}

@media (max-width: 768px) {
  h1 {
    font-size: 2rem;
  }
  h2 {
    font-size: 1.5rem;
  }
  h3 {
    font-size: 1.25rem;
  }
}
.sp-text-responsive {
  font-size: 0.9rem;
}
@media (min-width: 768px) {
  .sp-text-responsive {
    font-size: 1rem;
  }
}

.sp-touch-target {
  min-height: 44px;
  min-width: 44px;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
}

.sp-touch-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  min-width: 44px;
  padding: 8px;
  touch-action: manipulation;
  -webkit-tap-highlight-color: transparent;
  text-decoration: none;
}
.sp-touch-link:focus {
  outline: 2px solid var(--sp-red);
  outline-offset: 2px;
  border-radius: 4px;
}

.sp-desktop-only {
  display: none;
}
@media (min-width: 768px) {
  .sp-desktop-only {
    display: block;
  }
}

.sp-mobile-only {
  display: block;
}
@media (min-width: 768px) {
  .sp-mobile-only {
    display: none;
  }
}

.sp-safe-area {
  padding-left: env(safe-area-inset-left);
  padding-right: env(safe-area-inset-right);
  padding-bottom: env(safe-area-inset-bottom);
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    animation-duration: 0.01ms !important;
    transition-duration: 0.01ms !important;
  }
}
:focus-visible {
  outline: 2px solid var(--sp-red);
  outline-offset: 2px;
}

.sp-focus-visible:focus {
  outline: 2px solid var(--sp-red);
  outline-offset: 2px;
}

.sp-focus-visible:focus:not(:focus-visible) {
  outline: none;
}

.sp-focus-visible:focus-visible {
  outline: 2px solid var(--sp-red);
  outline-offset: 2px;
}

.sp-sr-only {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

.sp-skip-link {
  position: absolute;
  top: -100px;
  left: 16px;
  padding: 12px 20px;
  background-color: var(--sp-red);
  color: #fff;
  font-weight: var(--sp-font-weight-semibold);
  text-decoration: none;
  border-radius: 4px;
  z-index: 10000;
  transition: top var(--sp-transition-fast);
}
.sp-skip-link:focus {
  top: 16px;
  outline: 2px solid #fff;
  outline-offset: 2px;
}

@media (prefers-contrast: high) {
  .sp-btn {
    border: 2px solid currentColor;
  }
  .sp-card {
    border: 2px solid var(--sp-text-primary);
  }
}
.sp-live-region {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

body.sp-dark-mode {
  --sp-body-bg: #041624;
  --sp-card-bg: #0f2438;
  --sp-card-border: rgba(255, 255, 255, 0.1);
  --sp-text-dark: #ffffff;
  --sp-text-primary: #e1ebf4;
  --sp-text-secondary: #94b8d4;
  --sp-text-muted: #5e92b8;
  --sp-border-subtle: 1px solid rgba(255, 255, 255, 0.08);
  --sp-border-light: 1px solid rgba(255, 255, 255, 0.12);
  --sp-gradient-light: linear-gradient(180deg, #041624 0%, #0f2438 100%);
}

/*# sourceMappingURL=sparkus-2026.css.map */
