/* Custom theme overrides */
:root {
  --brand-primary: #8B5FBF;
  --brand-secondary: #B8A4D9;
  --brand-accent: #F4C2A1;
  --brand-pink: #F4A6CD;
  --brand-gradient: linear-gradient(135deg, #8B5FBF 0%, #B8A4D9 35%, #F4C2A1 70%, #F4A6CD 100%);
  --brand-primary-gradient: linear-gradient(135deg, #8B5FBF, #B8A4D9);
  --brand-accent-gradient: linear-gradient(135deg, #F4C2A1, #F4A6CD);
}body {
    font-family: system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
    line-height: 1.5;
    -webkit-font-smoothing: antialiased;
}

h1,h2,h3,h4 { font-weight: 600; }

/* Card helpers */
.page-card {
    background: #fff;
    border-radius: .75rem;
    box-shadow: 0 4px 18px -6px rgba(0,0,0,.12);
    padding: 2rem 2.25rem;
    margin-bottom: 2rem;
    position: relative;
}
.page-card::before {
    content: "";
    position: absolute; inset: 0; border-radius: inherit; padding: 1px;
    background: var(--brand-gradient); -webkit-mask: linear-gradient(#000 0 0) content-box, linear-gradient(#000 0 0);
    -webkit-mask-composite: xor; mask-composite: exclude;
    pointer-events: none;
}

/* Tables */
table { background:#fff; }
table thead th { background: var(--brand-primary); color:#fff; border-color: var(--brand-primary); }
table tbody tr:nth-child(even){ background:#f8f9fa; }
table td, table th { vertical-align: middle; }

/* Buttons / forms tweak */
button, .btn-primary { 
  background: var(--brand-primary-gradient);
  border: none;
  box-shadow: 0 2px 6px -1px rgba(139,95,191,.4); 
}
button:hover, .btn-primary:hover { 
  background: var(--brand-primary-gradient);
  box-shadow: 0 4px 14px -3px rgba(139,95,191,.55); 
  transform: translateY(-1px);
}
button:focus, .btn-primary:focus { 
  background: var(--brand-primary-gradient);
  box-shadow: 0 0 0 .2rem rgba(139,95,191,.35); 
}

form small { color:#6c757d; }

/* PDF object responsive wrapper */
.pdf-viewer { position: relative; width:100%; height:600px; }
.pdf-viewer object { width:100%; height:100%; border:1px solid #dee2e6; border-radius: .5rem; background:#fff; }

/* Footer */
footer { background:#fff; border-top: 1px solid #e5e7eb; padding: 1.25rem 0; margin-top: 2rem; }
footer p { margin:0; font-size:.9rem; color:#6c757d; }

/* Utility */
.muted { color:#6c757d; }
.gradient-text { background: var(--brand-gradient); -webkit-background-clip: text; color: transparent; }

/* Override default hr removal (rely on spacing) */
hr { display:none; }
