/* Shared visual polish for the existing TechPhile screens. Layout and workflows stay intact. */
:root {
    --brand-cyan: #159db5;
    --brand-cyan-hover: #0d8299;
    --edu-border: #e3eaf2;
    --edu-radius-md: 14px;
    --edu-radius-lg: 20px;
    --edu-shadow-sm: 0 8px 24px rgba(25, 45, 75, .055);
}

body { background-color: #f3f7fb; }
.main-content {
    background:
        radial-gradient(ellipse at 88% 0%, rgba(68, 190, 204, .075), transparent 32rem),
        radial-gradient(ellipse at 10% 18%, rgba(104, 135, 232, .045), transparent 34rem),
        #f5f8fc;
}

.sidebar {
    background: linear-gradient(180deg, #0b132b 0%, #111b36 100%);
    border-right: 1px solid rgba(255,255,255,.055);
}
.sidebar-top { min-height: 82px; }
.sidebar-link { height: 48px; border-radius: 13px; }
.sidebar-link.active {
    background: linear-gradient(100deg, rgba(27,164,196,.22), rgba(27,164,196,.10));
    box-shadow: inset 0 0 0 1px rgba(91,211,226,.10);
}
.sidebar-link.active::before { background: linear-gradient(180deg, #50d1d6, #1ba4c4); }
.sidebar-avatar { background: linear-gradient(140deg, #25b9c5, #537fdb); }

.ld-header { margin-bottom: 2rem; }
.ld-header h1 { font-size: clamp(1.8rem, 2.5vw, 2.25rem); letter-spacing: -.045em; }
.ld-header p { max-width: 48rem; line-height: 1.65; }
.ld-card, .ld-panel, .ld-stat-card, .career-path-setup,
.public-step-card, .contact-intro-card, .contact-form-card {
    border-color: rgba(215, 225, 237, .9);
    box-shadow: 0 14px 36px rgba(24, 43, 73, .065), 0 2px 5px rgba(24, 43, 73, .025);
}
.ld-card, .ld-panel, .ld-stat-card { transition: transform .18s ease, box-shadow .18s ease, border-color .18s ease; }
.ld-card:hover, .ld-panel:hover, .ld-stat-card:hover {
    transform: translateY(-2px);
    border-color: #d0e0eb;
    box-shadow: 0 18px 42px rgba(24, 43, 73, .09), 0 3px 8px rgba(24, 43, 73, .035);
}
.ld-stat-card { position: relative; overflow: hidden; }
.ld-stat-card::after {
    content: ""; position: absolute; top: 0; left: 1.5rem; right: 1.5rem; height: 3px;
    border-radius: 0 0 4px 4px; background: linear-gradient(90deg, #20b5bf, #648ce0); opacity: .75;
}
.ld-stat-value { letter-spacing: -.04em; }
.ld-feature-banner, .ld-hero {
    background: radial-gradient(ellipse at 86% 10%, rgba(69,195,207,.28), transparent 34%),
                linear-gradient(125deg, #101d3a 0%, #173a5d 62%, #1c5265 100%);
    box-shadow: 0 20px 48px rgba(15, 35, 65, .16);
}
.ld-feature-kicker { border: 1px solid rgba(126,224,232,.17); }

.ld-btn, .edu-btn, .btn { transition: transform .16s ease, box-shadow .16s ease, background-color .16s ease, border-color .16s ease; }
.ld-btn-primary, .edu-btn-primary {
    background: linear-gradient(115deg, #18a8b9, #168fae);
    box-shadow: 0 7px 16px rgba(21,157,181,.2);
}
.ld-btn-primary:hover, .edu-btn-primary:hover { transform: translateY(-1px); box-shadow: 0 10px 22px rgba(21,157,181,.27); }
.ld-btn-outline, .edu-btn-outline { border-color: #dbe4ee; box-shadow: 0 3px 10px rgba(24,43,73,.035); }
input.form-control, select.form-select, textarea.form-control,
.career-path-field select, .public-contact #contactForm input,
.public-contact #contactForm textarea, .public-contact #contactForm select {
    border-color: #d5dfeb;
    border-radius: 11px;
    box-shadow: 0 1px 2px rgba(24,43,73,.025);
}
input.form-control:focus, select.form-select:focus, textarea.form-control:focus {
    border-color: #41b8c6;
    box-shadow: 0 0 0 .22rem rgba(27,164,196,.13);
}
.ld-table th { letter-spacing: .045em; text-transform: uppercase; font-size: .7rem; }
.ld-table tbody tr { transition: background-color .15s ease; }
.ld-table tbody tr:hover { background: #f7fafc; }
.ld-progress-track { background: #e8eef5; }

.public-navbar {
    background: rgba(255,255,255,.88);
    border-bottom-color: rgba(219,228,238,.8);
    box-shadow: 0 4px 20px rgba(24,43,73,.035);
    backdrop-filter: blur(16px);
}
.public-nav-links a { position: relative; padding-block: .45rem; }
.public-nav-links a::after {
    content: ""; position: absolute; left: 0; right: 100%; bottom: .08rem; height: 2px;
    background: #1ba4c4; border-radius: 2px; transition: right .18s ease;
}
.public-nav-links a:hover::after { right: 0; }
.public-step-card { transition: transform .18s ease, box-shadow .18s ease; }
.public-step-card:hover { transform: translateY(-3px); box-shadow: 0 18px 38px rgba(26,48,76,.085); }
.site-footer { background: linear-gradient(145deg, #0b132b, #101e38); }

@media (prefers-reduced-motion: reduce) {
    *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
@media (max-width: 640px) {
    .ld-header { margin-bottom: 1.4rem; }
    .ld-card:hover, .ld-panel:hover, .ld-stat-card:hover, .public-step-card:hover { transform: none; }
}

/* Sidebar responsiveness: keep the layout transition short and decisive. */
@media (min-width: 993px) {
    .sidebar {
        transition: width 140ms cubic-bezier(.2, .8, .2, 1);
    }
    .main-content {
        transition: margin-left 140ms cubic-bezier(.2, .8, .2, 1);
    }
}
@media (max-width: 992px) {
    .sidebar {
        transition: transform 160ms cubic-bezier(.2, .8, .2, 1);
        will-change: transform;
    }
}
@media (prefers-reduced-motion: reduce) {
    .sidebar,
    .main-content {
        transition: none !important;
        will-change: auto;
    }
}



/* Refined viewport-level tooltips for the sidebar icon rail. */
.tp-sidebar-tooltip {
    position: fixed;
    z-index: 2000;
    max-width: 220px;
    padding: .5rem .75rem;
    border: 1px solid rgba(255,255,255,.12);
    border-radius: 9px;
    background: #13243d;
    color: #f8fbff;
    box-shadow: 0 8px 24px rgba(5,14,30,.24);
    font-size: .76rem;
    font-weight: 650;
    line-height: 1.3;
    letter-spacing: .01em;
    white-space: nowrap;
    pointer-events: none;
    animation: tp-tooltip-in .12s ease-out both;
}
.tp-sidebar-tooltip[hidden] { display: none !important; }
@keyframes tp-tooltip-in {
    from { opacity: 0; transform: translateY(3px); }
    to { opacity: 1; transform: translateY(0); }
}
@media (max-width: 767.98px) {
    .tp-sidebar-tooltip { display: none !important; }
}
@media (prefers-reduced-motion: reduce) {
    .tp-sidebar-tooltip { animation: none; }
}
