:root {
    --tingu-primary: #3157d5;
    --tingu-dark: #16233f;
    --tingu-soft: #f4f7fc;
}

body { color: #25324a; background: #fff; }
.navbar-brand, .brand { color: var(--tingu-dark); }
.hero { padding: 6rem 0; background: linear-gradient(135deg, #f7f9ff 0%, #eaf0ff 100%); }
.hero-badge { color: var(--tingu-primary); background: #e4eaff; }
.btn-primary { background: var(--tingu-primary); border-color: var(--tingu-primary); }
.feature-card, .login-card, .status-card { border: 0; box-shadow: 0 .5rem 2rem rgba(22, 35, 63, .08); }
.content-card { border: 0; box-shadow: 0 .35rem 1.5rem rgba(22, 35, 63, .07); }
.table > :not(caption) > * > * { vertical-align: middle; }
.form-control, .form-select { min-height: 44px; border-color: #d9e0ec; }
.form-control:focus, .form-select:focus { border-color: #8da4ec; box-shadow: 0 0 0 .2rem rgba(49,87,213,.12); }
.invite-link { min-width: 230px; min-height: 32px; font-size: .78rem; }
.invite-page { min-height: calc(100vh - 58px); background: linear-gradient(180deg, #f4f7fc, #fff); }
.privacy-notice { padding: 1.25rem; background: #f7f9fd; border-left: 4px solid var(--tingu-primary); border-radius: .5rem; }
.questionnaire-page { min-height: calc(100vh - 58px); background: #f4f7fc; }
.question-card { transition: transform .15s ease, box-shadow .15s ease; }
.question-card:focus-within { transform: translateY(-2px); box-shadow: 0 .6rem 2rem rgba(22,35,63,.11); }
.question-number { display: inline-grid; place-items: center; width: 30px; height: 30px; margin-right: .65rem; border-radius: 50%; color: #fff; background: var(--tingu-primary); font-size: .85rem; }
.progress { height: .65rem; background: #dfe6f5; }
.progress-bar { background: var(--tingu-primary); }
.progress-summary strong { color: var(--tingu-primary); font-size: 1.35rem; }
.sticky-actions { position: sticky; bottom: 0; z-index: 10; margin-top: 1.5rem; padding: 1rem; border-radius: .75rem .75rem 0 0; background: rgba(255,255,255,.96); box-shadow: 0 -.4rem 1.5rem rgba(22,35,63,.08); backdrop-filter: blur(8px); }
.success-mark { display: inline-grid; place-items: center; width: 72px; height: 72px; border-radius: 50%; color: #fff; background: #198754; font-size: 2rem; font-weight: 700; }
.answer-text { padding: 1rem; border-radius: .5rem; background: #f7f9fd; white-space: normal; }
.admin-body { background: var(--tingu-soft); }
.sidebar { width: 260px; flex-shrink: 0; background: var(--tingu-dark); display: flex; flex-direction: column; }
.sidebar .nav-link { color: rgba(255,255,255,.75); border-radius: .5rem; }
.sidebar .nav-link:hover, .sidebar .nav-link.active { color: #fff; background: rgba(255,255,255,.12); }
.sidebar-user { margin-top: auto; }

@media (max-width: 767.98px) {
    .hero { padding: 4rem 0; }
    .sidebar { width: 92px; }
    .sidebar .brand { font-size: 1rem; }
    .sidebar .small, .sidebar-user .small { display: none; }
    .sidebar .nav-link { padding: .6rem .35rem; font-size: .8rem; text-align: center; }
}
