/* CFP System – Global Styles */

:root {
    --cfp-primary: #4f46e5;
    --cfp-radius: 0.75rem;
}

body {
    font-family: 'Inter', system-ui, -apple-system, sans-serif;
    color: #1e1e2e;
}

/* Cards */
.card {
    transition: box-shadow .15s ease;
}

.rounded-4 {
    border-radius: var(--cfp-radius) !important;
}

/* Form check cards */
.form-check-card {
    cursor: pointer;
    transition: border-color .15s, background .15s;
}
.form-check-card:has(.form-check-input:checked) {
    border-color: var(--cfp-primary) !important;
    background: #eef2ff;
}

/* Sidebar active link */
.sidebar .nav-link.active {
    color: #fff !important;
    background: rgba(255,255,255,.15) !important;
}

/* Table tweaks */
.table th {
    font-weight: 600;
    font-size: .8rem;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: #6b7280;
}

/* Badges */
.badge {
    font-weight: 500;
    letter-spacing: .02em;
}

/* Privacy policy content */
.privacy-content h2, .privacy-content h3 {
    color: #1e1e2e;
    margin-top: 1.5rem;
}
.privacy-content a {
    color: var(--cfp-primary);
}

/* Score stars */
.score-stars i { color: #facc15; }

/* Btn xs */
.btn-xs {
    padding: .125rem .375rem;
    font-size: .75rem;
    border-radius: .375rem;
}

/* Alerts */
.alert {
    border-radius: var(--cfp-radius) !important;
}

/* Inputs */
.form-control:focus,
.form-select:focus {
    border-color: var(--cfp-primary);
    box-shadow: 0 0 0 0.2rem rgba(79,70,229,.15);
}

/* Navbar brand */
.navbar-brand .text-primary {
    color: var(--cfp-primary) !important;
}

/* ── Placeholder styling ── */
::placeholder {
    color: #a1a1aa !important;
    opacity: 1;
    font-weight: 400;
}

::-webkit-input-placeholder { color: #a1a1aa !important; }
::-moz-placeholder          { color: #a1a1aa !important; opacity: 1; }
:-ms-input-placeholder      { color: #a1a1aa !important; }
:-moz-placeholder           { color: #a1a1aa !important; opacity: 1; }

input.form-control,
textarea.form-control,
select.form-select {
    color: #212529;
}

input.form-control:not(:placeholder-shown),
textarea.form-control:not(:placeholder-shown) {
    color: #212529;
    font-weight: 400;
}

/* ── Mobile optimizations ── */
@media (max-width: 767.98px) {
    .card-body { padding: 1rem; }

    /* Stack button groups vertically */
    .btn-group-mobile .btn { display: block; width: 100%; margin-bottom: 0.25rem; }

    /* Navbar links larger tap target */
    .navbar-nav .nav-link { padding: 0.75rem 1rem; }

    /* Sidebar section padding */
    .sidebar .sidebar-section { padding-top: 0.75rem; }

    /* Profile photo sizes */
    .profile-photo-lg { width: 80px !important; height: 80px !important; }

    /* Pagination smaller */
    .pagination .page-link { padding: 0.375rem 0.5rem; font-size: 0.875rem; }

    /* Horizontal form labels left-align */
    .form-horizontal .col-form-label { text-align: left; }

    /* Table cells: allow word wrap */
    td, th { word-break: break-word; }

    /* Status badges: allow wrap */
    .badge { white-space: normal; }
}

/* ── Presentation Details Card ── */
.section-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
    flex-shrink: 0;
}
.section-icon-purple { background: #f3f0ff; color: #7c3aed; }

.presentation-meta {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1.25rem;
}
@media (min-width: 768px) {
    .presentation-meta { grid-template-columns: 1fr 1fr 1fr; }
}

.meta-item {
    display: flex;
    align-items: flex-start;
    gap: 0.75rem;
}

.meta-icon {
    width: 36px;
    height: 36px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.9rem;
    flex-shrink: 0;
}
.meta-icon-purple { background: #f3f0ff; color: #7c3aed; }
.meta-icon-indigo  { background: #eef2ff; color: #4f46e5; }
.meta-icon-blue    { background: #eff6ff; color: #2563eb; }
.meta-icon-pink    { background: #fdf2f8; color: #db2777; }
.meta-icon-green   { background: #f0fdf4; color: #16a34a; }
.meta-icon-yellow  { background: #fefce8; color: #ca8a04; }

.meta-label {
    font-size: 11px;
    font-weight: 600;
    color: #9ca3af;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 2px;
}
.meta-value {
    font-size: 14px;
    font-weight: 500;
    color: #1e1e2e;
    line-height: 1.4;
}

.small-section-icon {
    width: 32px;
    height: 32px;
    border-radius: 8px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.85rem;
    flex-shrink: 0;
}
.small-section-icon-blue   { background: #eff6ff; color: #2563eb; }
.small-section-icon-purple { background: #f3f0ff; color: #7c3aed; }

.rich-text {
    font-size: 15px;
    line-height: 1.75;
    color: #374151;
}

/* iOS zoom prevention: font-size must be >= 16px on inputs */
@media screen and (max-width: 767px) {
    input[type="text"],
    input[type="email"],
    input[type="tel"],
    input[type="url"],
    input[type="password"],
    input[type="number"],
    input[type="date"],
    input[type="time"],
    select,
    textarea { font-size: 16px !important; }
}
