/* Shared color tokens for the site's standalone Blade templates. */
html[data-bs-theme="light"] {
    --theme-bg: #f7f9fc; --theme-surface: #ffffff; --theme-elevated: #edf2f8;
    --theme-text: #182338; --theme-muted: #506078; --theme-border: #c5cfdd;
    --theme-link: #1754b8; --theme-glass: rgba(255,255,255,.96);
    --page-accent: #006b68;
}
:root, html[data-bs-theme="dark"] {
    --theme-bg: #090d16; --theme-surface: #111a2a; --theme-elevated: #1c2940;
    --theme-text: #f1f5f9; --theme-muted: #b1bed0; --theme-border: #43516a;
    --theme-link: #91baff; --theme-glass: rgba(17,26,42,.96);
    --page-accent: #65e8e4;
}
:root, html[data-bs-theme] {
    --bg-dark: var(--theme-bg); --bg-primary: var(--theme-bg); --dark-bg: var(--theme-bg);
    --bg-secondary: var(--theme-surface); --bg-surface: var(--theme-surface);
    --bg-surface-elevated: var(--theme-elevated); --dark-surface: var(--theme-surface);
    --bg-card: var(--theme-surface); --card-bg: var(--theme-surface); --dark-card: var(--theme-surface);
    --bg-card-hover: var(--theme-elevated); --dark-card-hover: var(--theme-elevated);
    --bg-glass: var(--theme-glass); --glass-bg: var(--theme-glass);
    --light-bg: var(--theme-elevated); --brand-dark: var(--theme-bg);
    --brand-surface: var(--theme-surface); --brand-card-bg: var(--theme-surface);
    --text-main: var(--theme-text); --text-dark: var(--theme-text);
    --text-muted: var(--theme-muted); --text-dim: var(--theme-muted);
    --brand-text-main: var(--theme-text); --brand-text-muted: var(--theme-muted);
    --border-color: var(--theme-border); --border-glass: var(--theme-border);
    --glass-border: var(--theme-border); --card-border: var(--theme-border);
    --dark-border: var(--theme-border); --brand-border: var(--theme-border);
    --ts-dark: var(--theme-text); --ts-secondary: var(--theme-muted); --ts-glass-bg: var(--theme-glass);
    --page-bg: var(--theme-bg); --page-text: var(--theme-text); --page-muted: var(--theme-muted);
}
html { background: var(--theme-bg); color: var(--theme-text); }
html body { background: var(--theme-bg); color: var(--theme-text); }
html[data-bs-theme] :is(.navbar, .navbar.scrolled, .dropdown-menu, .fab-menu) {
    background: var(--theme-glass) !important; border-color: var(--theme-border);
}
html[data-bs-theme] :is(.navbar-brand, .navbar-brand-logo, .brand-text, .nav-link, .dropdown-item) { color: var(--theme-text) !important; }
html[data-bs-theme] :is(.nav-link:hover, .nav-link.active, .dropdown-item:hover, .dropdown-item:focus) { color: var(--theme-link) !important; background-color: var(--theme-elevated); }
html[data-bs-theme] :is(.card, .service-card, .feature-card, .project-card, .testimonial-card, .estimator-card, .floating-card, .floating-badge, .timeline-box, .launch-note, .accordion-item, .accordion-button, .form-control, .form-select) {
    background-color: var(--theme-surface); color: var(--theme-text); border-color: var(--theme-border);
}
html[data-bs-theme] :is(.form-control, .form-select)::placeholder { color: var(--theme-muted); opacity: 1; }
html[data-bs-theme] :is(.text-muted, .text-secondary, .contact-hint) { color: var(--theme-muted) !important; }
html[data-bs-theme] :is(h1,h2,h3,h4,h5,h6) { color: var(--theme-text); }
html[data-bs-theme] :is(.bg-white, .bg-light) { background-color: var(--theme-surface) !important; }
html[data-bs-theme] .text-dark { color: var(--theme-text) !important; }
/* Keep deliberately dark code previews, photo overlays and banners readable. */
html[data-bs-theme] :is(.code-window, .code-block, pre, .terminal, .project-overlay, .cta-dark) {
    --text-main: #f1f5f9; --text-muted: #b1bed0; color: #f1f5f9;
}
html[data-bs-theme] :is(.cta-dark, .project-overlay) :is(h1,h2,h3,h4,h5,h6) { color: #f1f5f9; }
html[data-bs-theme] :is(footer, .site-footer, .footer) { background: var(--theme-surface); color: var(--theme-muted); }
html[data-bs-theme] :is(footer, .site-footer, .footer) a:not(.btn) { color: var(--theme-link); }
html[data-bs-theme="light"] :is(.eyebrow, .heading-accent) { color: var(--page-accent); }
html[data-bs-theme="light"] :is(.btn-outline-light, .btn-outline-glass, .btn-glass) {
    color: var(--theme-text); border-color: var(--theme-muted); background: transparent;
    --bs-btn-hover-color: #fff; --bs-btn-hover-bg: #182338; --bs-btn-hover-border-color: #182338;
}
html[data-bs-theme="light"] :is(.btn-outline-light, .btn-outline-glass, .btn-glass):hover { background: #182338; color: #fff; }
html[data-bs-theme="dark"] .btn-outline-dark { --bs-btn-color: #f1f5f9; --bs-btn-border-color: #b1bed0; --bs-btn-hover-bg: #43516a; }
.ts-theme-toggle {
    flex-shrink: 0; min-height: 44px; margin: .5rem; padding: .5rem .875rem;
    border: 1px solid var(--theme-border); border-radius: 2rem;
    background: var(--theme-surface); color: var(--theme-text);
    font: inherit; font-size: .875rem; font-weight: 600; cursor: pointer;
}
.ts-theme-toggle:hover { background: var(--theme-elevated); }
.ts-theme-toggle:focus-visible { outline: 3px solid var(--theme-link); outline-offset: 3px; }
@media (prefers-reduced-motion: reduce) { .ts-theme-toggle { transition: none; } }
/* Additional surfaces used by the service, Zoho and legal templates. */
html[data-bs-theme] :is(.case-card, .feature-box, .metric-card, .process-card, .stat-card, .stats-bar, .sticky-card, .timeline-card, .glass-card, .glass-card-sm, .stat-box, .sync-flow-container, .calc-stat-box, .crm-preview-card, .custom-modal-content, .modal-content-glass, .floating-pill-card, .input-group-text, .policy-search-input, .compliance-table td, .marquee-item) {
    background: var(--theme-surface); color: var(--theme-text); border-color: var(--theme-border);
}
html[data-bs-theme] :is(.form-control:focus, .form-select:focus, .policy-search-input:focus) { background-color: var(--theme-surface); color: var(--theme-text); }
html[data-bs-theme] :is(.footer-custom, .footer-dark, .footer-universe, .footer-tech) { background: var(--theme-surface); color: var(--theme-muted); }
html[data-bs-theme="light"] .text-white:not(.btn):not(.badge):not(.bg-primary):not(.bg-success):not(.bg-dark):not(.bg-danger) { color: var(--theme-text) !important; }
html[data-bs-theme] :is(.code-window, .code-box, .code-block, .code-terminal, .terminal, .terminal-window, .terminal-card, .code-snippet-box, .project-overlay, .cta-dark, .bg-dark) {
    --theme-text: #f1f5f9; --theme-muted: #b1bed0; --text-main: #f1f5f9; --text-muted: #b1bed0;
}
html[data-bs-theme="light"] .brand:hover { color: var(--theme-text); }
html[data-bs-theme="light"] .navbar-toggler-icon { filter: none; }
html[data-bs-theme="dark"] .navbar-toggler-icon { filter: none; }
/* Bootstrap and legacy templates share the same neutral palette. */
:root, html[data-bs-theme] {
    --bs-body-bg: var(--theme-bg);
    --bs-body-color: var(--theme-text);
    --bs-heading-color: var(--theme-text);
    --bs-secondary-color: var(--theme-muted);
    --bs-secondary-bg: var(--theme-surface);
    --bs-tertiary-bg: var(--theme-elevated);
    --bs-border-color: var(--theme-border);
    --bs-link-color: var(--theme-link);
    --bs-emphasis-color: var(--theme-text);
    --text-light: var(--theme-muted);
    --text-white: var(--theme-text);
    --muted: var(--theme-muted);
    --border-light: var(--theme-border);
}
html[data-bs-theme="dark"] {
    --bs-body-bg-rgb: 9, 13, 22;
    --bs-body-color-rgb: 241, 245, 249;
    --bs-secondary-bg-rgb: 17, 26, 42;
    --bs-tertiary-bg-rgb: 28, 41, 64;
    --bs-emphasis-color-rgb: 241, 245, 249;
    --bs-link-color-rgb: 145, 186, 255;
}
html[data-bs-theme="light"] {
    --bs-body-bg-rgb: 247, 249, 252;
    --bs-body-color-rgb: 24, 35, 56;
    --bs-secondary-bg-rgb: 255, 255, 255;
    --bs-tertiary-bg-rgb: 237, 242, 248;
    --bs-emphasis-color-rgb: 24, 35, 56;
    --bs-link-color-rgb: 23, 84, 184;
}
/* Home estimator: pair every surface with the selected theme's text colors. */
html[data-bs-theme] #estimator .calc-box {
    background: var(--theme-surface);
    color: var(--theme-text);
    border: 1px solid var(--theme-border);
    padding: clamp(1rem, 3vw, 2.25rem);
    box-shadow: 0 16px 48px -24px rgba(0, 0, 0, .25);
}
html[data-bs-theme] #estimator .estimate-summary {
    background: var(--theme-elevated);
    color: var(--theme-text);
    border: 1px solid var(--theme-border);
}
html[data-bs-theme] #estimator .estimate-details {
    background: var(--theme-surface);
    color: var(--theme-text);
    border: 1px solid var(--theme-border);
}
html[data-bs-theme] #estimator .form-check-custom {
    display: flex;
    align-items: flex-start;
    gap: .75rem;
    background: var(--theme-elevated);
    border-color: var(--theme-border);
    padding: 1rem;
    min-height: 60px;
}
#estimator .form-check-input { flex-shrink: 0; float: none; margin: .25rem 0 0; }
#estimator .form-check-label { cursor: pointer; min-width: 0; }
html[data-bs-theme] #estimator .form-check-custom:is(:hover, .active, :focus-within) {
    background: var(--theme-surface);
    border-color: var(--theme-link);
    box-shadow: inset 0 0 0 1px var(--theme-link);
}
html[data-bs-theme] #estimator .calc-price-display {
    color: var(--theme-link);
    font-size: clamp(1.75rem, 3.3vw, 2.75rem);
    line-height: 1.2;
    overflow-wrap: anywhere;
    font-variant-numeric: tabular-nums;
}
html[data-bs-theme] #estimator .text-dim { color: var(--theme-muted); }
html[data-bs-theme] #estimator .estimate-live-badge {
    background: var(--theme-surface);
    color: var(--theme-text);
    border: 1px solid var(--theme-border);
    white-space: normal;
    line-height: 1.5;
}
#estimator .estimate-summary > .d-flex { flex-wrap: wrap; gap: .75rem; }
#estimator .estimate-details .d-flex { flex-wrap: wrap; gap: .25rem .75rem; }
html[data-bs-theme="light"] #estimator .estimate-details strong { color: #146c43; }
html[data-bs-theme="light"] #estimator .estimate-details strong[style] { color: #146c43 !important; }
#estimator { scroll-margin-top: 100px; }
/* Portfolio surfaces and controls follow the shared palette. */
html[data-bs-theme] .portfolio-page .hero-badge { color: var(--theme-link); border-color: var(--theme-border); }
html[data-bs-theme] .portfolio-page .filter-btn { min-height: 44px; background: var(--theme-surface); color: var(--theme-text); }
html[data-bs-theme] .portfolio-page .filter-btn:is(.active, :hover) { background: var(--theme-elevated); color: var(--theme-link); border-color: var(--theme-link); }
.portfolio-page .filter-btn:focus-visible { outline: 3px solid var(--theme-link); outline-offset: 3px; }
.portfolio-page .metric-card { height: 100%; }
html[data-bs-theme="dark"] .portfolio-page .metric-badge { color: #6ee7b7; }
html[data-bs-theme="dark"] .portfolio-page .counter.text-primary { color: #91baff !important; }
html[data-bs-theme="dark"] .portfolio-page .counter.text-success { color: #6ee7b7 !important; }
html[data-bs-theme] .portfolio-page .cta-dark .btn-light { color: #182338 !important; white-space: normal; }
@media (max-width: 575.98px) {
    .portfolio-page .page-hero { padding: 3rem 0; }
    .portfolio-page .metric-card { padding: 1rem; }
    .portfolio-page .cta-dark { padding: 2rem 1.25rem; }
}
@media (prefers-reduced-motion: reduce) {
    .portfolio-page .hero-badge { animation: none; }
}
/* Web development: keep hero, cards and estimator in the selected theme. */
html[data-bs-theme] .web-development-page .badge-live { color: var(--theme-link); border-color: var(--theme-border); }
html[data-bs-theme] .web-development-page .custom-option-label { color: var(--theme-text); background: var(--theme-elevated); }
html[data-bs-theme] .web-development-page .btn-check:checked + .custom-option-label { color: var(--theme-link); background: var(--theme-surface); border-color: var(--theme-link); }
.web-development-page .btn-check:focus-visible + .custom-option-label { outline: 3px solid var(--theme-link); outline-offset: 3px; }
html[data-bs-theme="dark"] .web-development-page .hero-section .text-primary { color: var(--theme-link) !important; }
html[data-bs-theme] .web-development-page .cta-dark .btn-light { color: #182338 !important; }
@media (max-width: 575.98px) {
    .web-development-page .hero-section { padding: 3rem 0; }
    .web-development-page .floating-badge-top { right: 0; }
    .web-development-page .floating-badge-bottom { left: 0; }
    .web-development-page .estimator-card,
    .web-development-page .cta-dark { padding: 1.5rem; }
}
@media (prefers-reduced-motion: reduce) {
    .web-development-page .pulse-orb,
    .web-development-page .floating-badge,
    .web-development-page .marquee-track { animation: none; }
}
/* Laravel's dark CTA keeps a readable foreground in either page theme. */
html[data-bs-theme] .laravel-development-page .cta-banner h2 {
    color: #f1f5f9 !important;
}
html[data-bs-theme] .laravel-development-page .cta-banner p {
    color: #cbd5e1 !important;
}
html[data-bs-theme] .laravel-development-page .cta-banner .btn-light {
    background: #f8fafc;
    color: #182338 !important;
    position: relative;
}
html[data-bs-theme] .laravel-development-page .cta-banner .btn-light:hover {
    background: #e2e8f0;
}
.laravel-development-page .cta-banner .btn-light:focus-visible {
    outline: 3px solid #91baff;
    outline-offset: 4px;
}
html[data-bs-theme="light"] .laravel-development-page .metric-value {
    background: none;
    color: var(--theme-text);
    -webkit-text-fill-color: currentColor;
}
@media (max-width: 575.98px) {
    .laravel-development-page .cta-banner { padding: 2rem 1.25rem; }
    .laravel-development-page .cta-banner .btn-light { width: 100%; }
}
/* CodeIgniter is rendered inside the shared layout. */
html[data-bs-theme] .codeigniter-page .badge-pill-soft { color: var(--theme-link); border-color: var(--theme-border); }
html[data-bs-theme="dark"] .codeigniter-page :is(.metric-value, .feature-icon-wrapper) { color: #a5b4fc; }
html[data-bs-theme="dark"] .codeigniter-page .hero-title span {
    background-image: linear-gradient(135deg, #a5b4fc, #67e8f9);
}
html[data-bs-theme] .codeigniter-page .cta-banner :is(h2, h3) { color: #f1f5f9 !important; }
html[data-bs-theme] .codeigniter-page .cta-banner p { color: #cbd5e1 !important; }
html[data-bs-theme] .codeigniter-page .cta-banner .btn-light { color: #182338 !important; }
@media (max-width: 575.98px) {
    .codeigniter-page .hero-section { padding: 3rem 0; }
    .codeigniter-page .floating-card { position: relative !important; inset: auto !important; margin-top: 1rem; max-width: 100% !important; }
    .codeigniter-page .cta-banner { padding: 2rem 1.25rem; }
}
@media (prefers-reduced-motion: reduce) {
    .codeigniter-page :is(.floating-card, .pulse-dot) { animation: none; }
}
/* MySQL delivery panels, badges and controls use paired theme colors. */
html[data-bs-theme] .mysql-development-page :is(.hero-badge, .metric-number, .tech-badge) { color: var(--theme-link); }
html[data-bs-theme] .mysql-development-page .tech-badge { background: var(--theme-elevated); border-color: var(--theme-border); }
html[data-bs-theme] .mysql-development-page .btn-outline-glow { color: var(--theme-text); border-color: var(--theme-border); background: var(--theme-surface); }
html[data-bs-theme] .mysql-development-page .btn-outline-glow:hover { color: var(--theme-link); background: var(--theme-elevated); border-color: var(--theme-link); }
.mysql-development-page .btn-outline-glow:focus-visible { outline: 3px solid var(--theme-link); outline-offset: 3px; }
html[data-bs-theme] .mysql-development-page .accordion-button::after { filter: none; }
html[data-bs-theme="light"] .mysql-development-page .text-info { color: #087990 !important; }
html[data-bs-theme="light"] .mysql-development-page .text-gradient {
    background-image: linear-gradient(135deg, #1754b8, #087990, #7233b7);
}
@media (prefers-reduced-motion: reduce) {
    .mysql-development-page :is(.floating-pill-card, .pulse-dot) { animation: none; }
}
/* Doctor booking: theme-aware surfaces, with readable dark demo panels. */
html[data-bs-theme] .doctor-booking-page .badge-pill-tech { color: var(--theme-link); border-color: var(--theme-border); }
html[data-bs-theme] .doctor-booking-page .floating-glass-card { color: var(--theme-text); }
html[data-bs-theme="dark"] .doctor-booking-page .hero-title .highlight { background-image: linear-gradient(135deg, #91baff, #67e8f9); }
html[data-bs-theme="dark"] .doctor-booking-page .hero-section .text-primary { color: var(--theme-link) !important; }
html[data-bs-theme] .doctor-booking-page .role-nav-pill:not(.active) { color: var(--theme-text); background: var(--theme-elevated); }
html[data-bs-theme] .doctor-booking-page :is(.simulator-container, .cta-banner) {
    --theme-text: #f1f5f9; --theme-muted: #cbd5e1;
    color: var(--theme-text);
}
html[data-bs-theme] .doctor-booking-page :is(.simulator-container, .cta-banner) :is(h2,h3,h4,h5,h6) { color: #f1f5f9 !important; }
html[data-bs-theme] .doctor-booking-page :is(.simulator-container, .cta-banner) .text-white-50 { color: #cbd5e1 !important; }
html[data-bs-theme] .doctor-booking-page .cta-banner .btn-light { color: #182338 !important; }
@media (max-width: 575.98px) {
    .doctor-booking-page .hero-section { padding: 3rem 0; }
    .doctor-booking-page :is(.simulator-container, .cta-banner) { padding: 2rem 1.25rem; }
}
@media (prefers-reduced-motion: reduce) {
    .doctor-booking-page :is(.floating-glass-card, .pulse-dot, .cta-banner) { animation: none; }
}
/* Zoho setup content must remain available if reveal scripts fail. */
html[data-bs-theme] .zoho-setup-page .reveal-on-scroll {
    opacity: 1;
    transform: none;
}
html[data-bs-theme] .zoho-setup-page .setup-surface {
    background: var(--theme-surface);
    color: var(--theme-text);
}
html[data-bs-theme] .zoho-setup-page .text-light-50 { color: var(--theme-muted); }
html[data-bs-theme="light"] .zoho-setup-page .text-info { color: #087990 !important; }
html[data-bs-theme="light"] .zoho-setup-page .text-gradient {
    background: none;
    color: var(--theme-link);
    -webkit-text-fill-color: currentColor;
}
/* Availability status stays readable in both themes. */
html[data-bs-theme] .zoho-setup-page .setup-availability {
    background: var(--theme-surface);
    color: var(--theme-text);
    border: 1px solid var(--theme-border);
    line-height: 1.5;
    max-width: 100%;
}
.zoho-setup-page .setup-availability .pulse-dot { flex-shrink: 0; }
/* Zoho CRM hero and floating labels share the selected palette. */
html[data-bs-theme] .zoho-crm-page .floating-pill { color: var(--theme-text); border: 1px solid var(--theme-border); }
html[data-bs-theme] .zoho-crm-page :is(.badge-pill-soft, .step-circle) { color: var(--theme-link); }
html[data-bs-theme="dark"] .zoho-crm-page .text-gradient { background-image: linear-gradient(135deg, #91baff, #67e8f9); }
html[data-bs-theme] .zoho-crm-page .cta-banner :is(h2,h3) { color: #f1f5f9 !important; }
html[data-bs-theme] .zoho-crm-page .cta-banner p { color: #cbd5e1 !important; }
html[data-bs-theme] .zoho-crm-page .cta-banner .btn-light { color: #182338 !important; }
@media (max-width: 575.98px) {
    .zoho-crm-page .hero-section { padding: 3rem 0; }
    .zoho-crm-page .floating-pill { position: relative; inset: auto; margin-top: 1rem; }
    .zoho-crm-page .cta-banner { padding: 2rem 1.25rem; }
}
@media (prefers-reduced-motion: reduce) {
    .zoho-crm-page .floating-pill { animation: none; }
}
/* Zoho Books: readable gradients, surfaces and CTA in either theme. */
html[data-bs-theme="light"] .zoho-books-page :is(.text-gradient, .stat-number) {
    background: none;
    color: var(--theme-link);
    -webkit-text-fill-color: currentColor;
}
html[data-bs-theme] .zoho-books-page :is(.badge-soft-primary, .badge-soft-accent) { color: var(--theme-link); }
html[data-bs-theme] .zoho-books-page .tech-pill { color: var(--theme-text); background: var(--theme-elevated); }
html[data-bs-theme] .zoho-books-page .tech-pill:hover { color: var(--theme-link); border-color: var(--theme-link); }
html[data-bs-theme] .zoho-books-page .cta-box { --theme-text: #f1f5f9; --theme-muted: #cbd5e1; --theme-link: #91baff; }
html[data-bs-theme] .zoho-books-page .cta-box h2 { color: #f1f5f9 !important; }
html[data-bs-theme] .zoho-books-page .cta-box p { color: #cbd5e1 !important; }
html[data-bs-theme] .zoho-books-page .cta-box .btn-light { color: #182338 !important; }
html[data-bs-theme] .zoho-books-page .reveal { opacity: 1; transform: none; }
@media (max-width: 575.98px) {
    .zoho-books-page .floating-card { position: relative; inset: auto; margin-top: 1rem; }
    .zoho-books-page .cta-box { padding: 2rem 1.25rem; }
}
@media (prefers-reduced-motion: reduce) {
    .zoho-books-page .floating-card { animation: none; }
}