:root { --ink:#17222d; --muted:#6b7785; --line:#dfe5ea; --paper:#f7f9fb; --blue:#176b87; --blue-dark:#0f4f65; --mint:#dff1eb; --white:#fff; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; font-family:Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; color:var(--ink); background:var(--paper); }
a { color:inherit; text-decoration:none; }
.topbar { height:76px; padding:0 6vw; display:flex; align-items:center; justify-content:space-between; background:rgba(247,249,251,.95); border-bottom:1px solid var(--line); position:sticky; top:0; z-index:5; }
.brand { font-size:1.18rem; font-weight:800; letter-spacing:-.04em; }
.brand { font-size:0; }.brand::after { content:'AirCFI'; font-size:1.18rem; }
.brand-logo { font-size:initial; }.brand-logo::after { content:none; }.brand-logo img { display:block; width:150px; height:auto; }
nav { display:flex; align-items:center; gap:28px; font-size:.9rem; color:var(--muted); }
nav a:hover { color:var(--ink); }
.button { border:0; border-radius:8px; padding:12px 18px; font-weight:700; cursor:pointer; font-size:.9rem; display:inline-block; }
.button-primary { color:white; background:var(--blue); box-shadow:0 6px 15px rgba(23,107,135,.18); }
.button-primary:hover { background:var(--blue-dark); }
.button-outline { background:transparent; color:var(--blue); border:1px solid #b7ccd5; padding:9px 13px; }
.hero { max-width:1180px; margin:0 auto; padding:92px 6vw 84px; display:grid; grid-template-columns:1.25fr .75fr; gap:80px; align-items:center; }
.eyebrow { text-transform:uppercase; letter-spacing:.15em; font-size:.72rem; font-weight:800; color:var(--blue); margin:0 0 14px; }
h1 { font-size:clamp(2.65rem, 6vw, 5.3rem); line-height:.98; letter-spacing:-.07em; max-width:680px; margin:0 0 25px; font-weight:800; }
h2 { font-size:2rem; letter-spacing:-.05em; margin:0; }
h3 { margin:12px 0 8px; font-size:1.05rem; }
.hero-copy { color:var(--muted); font-size:1.08rem; line-height:1.65; max-width:535px; margin-bottom:29px; }
.hero-card { background:var(--white); border:1px solid var(--line); border-radius:14px; padding:34px; box-shadow:0 18px 45px rgba(31,55,70,.08); }
.mini-label { color:var(--muted); font-size:.75rem; text-transform:uppercase; letter-spacing:.13em; margin-bottom:38px; }
.hero-card strong { display:block; font-size:1.65rem; letter-spacing:-.04em; margin-bottom:18px; }
.hero-meta { color:var(--muted); font-size:.87rem; }.dot { width:8px; height:8px; display:inline-block; border-radius:50%; background:#35a982; margin-right:7px; }
.search-panel, .results, .how { max-width:1080px; margin:0 auto; padding-left:6vw; padding-right:6vw; }
.search-panel { padding-top:34px; }.section-heading { display:flex; align-items:end; justify-content:space-between; margin-bottom:25px; }.result-count { color:var(--muted); font-size:.85rem; }
.filters { display:grid; grid-template-columns:1.4fr 1fr 1fr auto; gap:12px; align-items:end; padding-bottom:30px; border-bottom:1px solid var(--line); }
label { display:grid; gap:8px; color:var(--muted); font-size:.78rem; font-weight:700; }.check-label { display:flex; align-items:center; gap:8px; white-space:nowrap; padding-bottom:11px; }.check-label input { accent-color:var(--blue); }
select, input, textarea { width:100%; border:1px solid var(--line); border-radius:7px; background:white; color:var(--ink); padding:11px 12px; font:inherit; font-size:.9rem; outline:none; }.filters select { min-width:0; }.modal input,.modal textarea { margin-top:0; }.modal textarea { resize:vertical; }
select:focus, input:focus, textarea:focus { border-color:var(--blue); box-shadow:0 0 0 3px rgba(23,107,135,.1); }
.results { padding-top:22px; display:grid; grid-template-columns:repeat(2,1fr); gap:16px; }.card { background:white; border:1px solid var(--line); border-radius:12px; padding:23px; }.card-top { display:flex; justify-content:space-between; gap:14px; }.avatar { width:44px; height:44px; border-radius:50%; display:grid; place-items:center; background:var(--mint); color:var(--blue-dark); font-weight:800; }.identity { display:flex; gap:12px; align-items:center; }.identity h3 { margin:0 0 3px; }.role { color:var(--muted); font-size:.8rem; }.rating { font-size:.82rem; color:#8a6412; white-space:nowrap; }.card-description { color:var(--muted); line-height:1.5; font-size:.88rem; min-height:43px; }.tags { display:flex; flex-wrap:wrap; gap:7px; margin:16px 0; }.tag { color:var(--blue-dark); background:#edf5f7; border-radius:5px; padding:5px 8px; font-size:.72rem; font-weight:700; }.availability { border-top:1px solid var(--line); padding-top:14px; display:flex; justify-content:space-between; align-items:center; font-size:.78rem; color:var(--muted); }.availability strong { color:#278264; font-size:.78rem; }.card .button { margin-top:17px; width:100%; }.empty { grid-column:1/-1; padding:55px 20px; text-align:center; color:var(--muted); background:white; border:1px dashed var(--line); border-radius:12px; }
.how { margin-top:100px; padding-top:70px; padding-bottom:95px; border-top:1px solid var(--line); }.steps { display:grid; grid-template-columns:repeat(3,1fr); gap:35px; margin-top:35px; }.steps span { color:var(--blue); font-size:.75rem; font-weight:800; }.steps p { color:var(--muted); line-height:1.55; font-size:.9rem; margin:0; }
.modal-backdrop { position:fixed; inset:0; background:rgba(10,27,36,.42); display:grid; place-items:center; padding:20px; z-index:10; }.hidden { display:none !important; }.modal { position:relative; width:min(480px,100%); background:white; border-radius:14px; padding:31px; box-shadow:0 24px 80px rgba(0,0,0,.2); }.modal-close { position:absolute; top:13px; right:15px; border:0; background:transparent; font-size:1.6rem; cursor:pointer; color:var(--muted); }.modal h2 { margin-bottom:7px; }.muted { color:var(--muted); font-size:.9rem; line-height:1.5; }.modal form { display:grid; gap:15px; margin-top:22px; }.success { margin-top:20px; background:var(--mint); color:#1e6d57; border-radius:8px; padding:15px; font-size:.9rem; line-height:1.45; }
@media (max-width:760px) { .topbar { padding:0 20px; }.topbar nav a { display:none; }.topbar nav a.nav-signup { display:inline-flex; }.hero { padding:60px 20px; display:block; }.hero-card { margin-top:38px; }.search-panel,.results,.how { padding-left:20px; padding-right:20px; }.filters { grid-template-columns:1fr 1fr; }.check-label { grid-column:1/-1; }.results { grid-template-columns:1fr; }.steps { grid-template-columns:1fr; gap:25px; }.section-heading { align-items:start; gap:12px; flex-direction:column; } }
.card-actions { display:grid; grid-template-columns:1fr 1.25fr; gap:9px; margin-top:17px; }.card-actions .button { width:100%; text-align:center; }
.materials-page { max-width:1080px; margin:0 auto; padding:60px 6vw 100px; }.materials-heading { display:flex; justify-content:space-between; align-items:flex-start; padding:55px 0 38px; }.materials-heading h1 { font-size:clamp(2.6rem,5vw,4.7rem); margin-bottom:20px; }.static-badge { color:var(--blue-dark); background:var(--mint); padding:8px 11px; border-radius:20px; font-size:.72rem; font-weight:800; white-space:nowrap; }.bucket { border:1.5px dashed #aac2ca; background:#f5faf9; border-radius:12px; padding:44px 20px; text-align:center; }.bucket-icon { width:48px; height:48px; margin:0 auto 15px; border-radius:50%; display:grid; place-items:center; background:var(--mint); color:var(--blue); font-size:1.5rem; font-weight:800; }.bucket h2 { font-size:1.35rem; }.bucket p { color:var(--muted); font-size:.9rem; margin:10px 0 20px; }.material-section { padding-top:58px; }.material-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:12px; margin-top:22px; }.material-card { display:flex; align-items:center; gap:14px; background:white; border:1px solid var(--line); border-radius:10px; padding:17px; }.material-card h3 { margin:0 0 5px; font-size:.92rem; }.material-card p { margin:0; color:var(--muted); font-size:.76rem; }.file-icon { width:38px; height:42px; flex:0 0 38px; display:grid; place-items:center; border-radius:5px; font-size:.62rem; font-weight:800; }.file-icon.pdf { color:#a33c3c; background:#f9e7e7; }.file-icon.doc { color:#286a9a; background:#e5f0f8; }.file-icon.link { color:#5e6f34; background:#edf3df; font-size:1.15rem; }.material-menu { margin-left:auto; color:var(--muted); letter-spacing:2px; }
.assessment-section { margin-top:55px; border-top:1px solid var(--line); padding-top:48px; }.assessment-heading { display:flex; justify-content:space-between; gap:25px; align-items:flex-start; }.assessment-heading h2 { margin-bottom:10px; }.assessment-heading .muted { max-width:650px; }.assessment-form { margin-top:25px; background:white; border:1px solid var(--line); border-radius:12px; padding:28px; display:grid; gap:20px; }.assessment-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:15px; }.assessment-saved { color:#1e6d57; background:var(--mint); border-radius:7px; padding:12px; font-size:.85rem; }
.lesson-page { max-width:1080px; margin:0 auto; padding:60px 6vw 100px; }.lesson-heading { padding:52px 0 30px; }.lesson-heading h1 { font-size:clamp(2.4rem,5vw,4.5rem); max-width:800px; }.status-track { display:grid; grid-template-columns:repeat(5,1fr); gap:8px; margin-bottom:28px; }.track-step { border-top:3px solid var(--line); padding-top:10px; color:var(--muted); font-size:.8rem; }.track-step span { display:inline-grid; place-items:center; width:23px; height:23px; border-radius:50%; background:#e9eef1; margin-right:6px; }.track-step.active { border-color:var(--blue); color:var(--ink); }.track-step.active span { background:var(--blue); color:white; }.lesson-grid { display:grid; grid-template-columns:1.35fr .65fr; gap:18px; }.lesson-main { display:grid; gap:18px; }.lesson-card { background:white; border:1px solid var(--line); border-radius:12px; padding:25px; }.card-label { color:var(--blue); text-transform:uppercase; letter-spacing:.12em; font-size:.7rem; font-weight:800; margin-bottom:15px; }.lesson-facts { display:grid; grid-template-columns:1fr 1fr; gap:18px; }.lesson-facts div { border-top:1px solid var(--line); padding-top:10px; }.lesson-facts span { display:block; color:var(--muted); font-size:.75rem; margin-bottom:6px; }.lesson-facts strong { font-size:.86rem; }.confirmed-note { color:#278264; font-size:.8rem; margin-top:20px; }.payment-options { display:grid; gap:10px; margin:20px 0; }.payment-option { display:flex; grid-template-columns:auto 1fr; flex-direction:row; align-items:flex-start; gap:10px; border:1px solid var(--line); border-radius:8px; padding:14px; cursor:pointer; }.payment-option:has(input:checked) { border-color:var(--blue); background:#f3f9fa; }.payment-option input { width:auto; margin-top:3px; accent-color:var(--blue); }.payment-option strong,.payment-option small { display:block; }.payment-option small { color:var(--muted); margin-top:4px; }.payment-status { margin-top:15px; color:#1e6d57; background:var(--mint); border-radius:7px; padding:12px; font-size:.85rem; }.lesson-side { display:grid; align-content:start; gap:14px; }.lesson-side h2 { font-size:1.4rem; }.side-rule { border-top:1px solid var(--line); margin:20px 0; }
.onboarding-page { max-width:1000px; margin:0 auto; padding:60px 6vw 100px; }.onboarding-heading { padding:52px 0 35px; }.onboarding-heading h1 { font-size:clamp(2.7rem,5vw,4.8rem); }.onboarding-form { display:grid; gap:16px; }.onboarding-section { display:grid; grid-template-columns:45px 1fr; gap:20px; background:white; border:1px solid var(--line); border-radius:12px; padding:27px; }.section-number { color:var(--blue); font-weight:800; font-size:.78rem; padding-top:3px; }.onboarding-section h2 { font-size:1.45rem; margin-bottom:6px; }.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:17px; margin-top:20px; }.form-grid .full { grid-column:1/-1; }.optional { font-weight:400; color:#9aa4ad; }.check-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:10px; margin-top:20px; }.check-grid label,.verification-check { display:flex; flex-direction:row; align-items:center; gap:8px; color:var(--ink); background:#f7f9fb; border:1px solid var(--line); padding:11px; border-radius:7px; }.check-grid input,.verification-check input { width:auto; accent-color:var(--blue); }.notice { margin-top:17px; background:#fff8e7; color:#806329; padding:12px; border-radius:7px; font-size:.8rem; line-height:1.45; }.verification-check { background:transparent; border:0; padding:5px 0; font-size:.86rem; }.onboarding-success { background:var(--mint); border-radius:12px; padding:32px; }.onboarding-success h2 { margin-bottom:10px; }.onboarding-success p:not(.eyebrow) { color:#397a69; max-width:620px; line-height:1.55; }
@media (max-width:760px) { .onboarding-section { grid-template-columns:1fr; gap:8px; }.form-grid,.check-grid { grid-template-columns:1fr; }.form-grid .full { grid-column:auto; }.materials-heading,.assessment-heading { display:block; }.static-badge { display:inline-block; margin-top:15px; }.lesson-grid { grid-template-columns:1fr; }.lesson-facts { grid-template-columns:1fr; } }
.availability-page,.requests-page { max-width:1080px; margin:0 auto; padding:60px 6vw 100px; }.availability-heading,.requests-heading { padding:50px 0 35px; }.availability-heading h1,.requests-heading h1 { font-size:clamp(2.6rem,5vw,4.7rem); }.availability-layout { display:grid; grid-template-columns:1.4fr .6fr; gap:18px; }.calendar-card,.availability-card,.request-card { background:white; border:1px solid var(--line); border-radius:12px; padding:24px; }.calendar-toolbar { display:flex; justify-content:space-between; align-items:center; margin-bottom:20px; }.calendar-toolbar h2 { font-size:1.15rem; }.calendar-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:7px; }.day-column { min-height:180px; background:#f7f9fb; border:1px solid var(--line); border-radius:7px; padding:8px; }.day-heading { display:flex; justify-content:space-between; font-size:.78rem; margin-bottom:12px; }.day-heading span { color:var(--muted); }.empty-day { color:#a3adb4; font-size:.7rem; text-align:center; padding-top:45px; }.calendar-block { border-radius:5px; padding:8px; margin-bottom:6px; font-size:.72rem; font-weight:800; color:#1e6d57; background:var(--mint); }.calendar-block.unavailable { color:#8e4f4f; background:#f8e7e5; }.calendar-block small { display:block; font-weight:500; margin-top:4px; }.availability-card { display:grid; align-content:start; gap:15px; }.mode-buttons { display:grid; grid-template-columns:1fr 1fr; gap:7px; }.mode { border:1px solid var(--line); background:white; border-radius:7px; padding:10px 7px; font:inherit; font-size:.75rem; cursor:pointer; }.mode.active { border-color:var(--blue); background:#edf5f7; color:var(--blue-dark); font-weight:700; }.availability-card .form-grid { margin-top:0; }.availability-card .button { width:100%; text-align:center; }.availability-saved { color:#1e6d57; background:var(--mint); padding:10px; border-radius:6px; font-size:.8rem; }.request-card { max-width:760px; }.request-top { display:flex; justify-content:space-between; gap:20px; }.request-top h2 { margin-bottom:6px; }.request-status { color:#806329; background:#fff8e7; border-radius:20px; padding:7px 10px; height:max-content; font-size:.72rem; font-weight:700; white-space:nowrap; }.requested-time { border-top:1px solid var(--line); border-bottom:1px solid var(--line); padding:17px 0; margin:20px 0; }.requested-time span { display:block; color:var(--muted); font-size:.75rem; margin-bottom:5px; }.requested-time p { color:var(--muted); font-size:.85rem; }.request-actions { display:flex; flex-wrap:wrap; gap:9px; }.danger { color:#9a4a4a; }.alternative-form { display:grid; grid-template-columns:1fr auto; gap:10px; align-items:end; margin-top:18px; }.request-result { color:#1e6d57; background:var(--mint); padding:12px; border-radius:7px; margin-top:15px; font-size:.85rem; }
@media (max-width:760px) { .availability-layout { grid-template-columns:1fr; }.calendar-card { overflow-x:auto; }.calendar-grid { min-width:650px; }.request-top { display:block; }.request-status { display:inline-block; margin-top:12px; }.alternative-form { grid-template-columns:1fr; } }

.month-weekdays { display:grid; grid-template-columns:repeat(7,1fr); gap:7px; margin-bottom:7px; color:var(--muted); font-size:.72rem; font-weight:700; text-align:center; }
.month-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:7px; }
.month-day { min-height:105px; background:#f7f9fb; border:1px solid var(--line); border-radius:7px; padding:8px; }
.month-day.outside-month { opacity:.45; }
.month-day-heading { display:flex; justify-content:space-between; align-items:center; margin-bottom:8px; font-size:.78rem; }
.month-day-heading span { color:var(--blue); font-size:.62rem; font-weight:700; }
.month-grid .calendar-block { padding:6px; font-size:.66rem; }
.availability-student-notice { max-width:720px; margin:28px 0; padding:28px; background:#fff; border:1px solid var(--line); border-radius:12px; }
.availability-student-notice h2 { margin:5px 0 10px; }
.error-report-button { position:fixed; right:18px; bottom:18px; z-index:30; border:1px solid var(--line); border-radius:99px; padding:9px 13px; background:#fff; color:var(--blue-dark); box-shadow:0 8px 24px rgba(31,55,70,.14); font:inherit; font-size:.75rem; cursor:pointer; }
.error-report-modal { max-width:480px; }
@media (max-width:760px) { .month-grid,.month-weekdays { min-width:650px; } .calendar-card { overflow-x:auto; } .error-report-button { right:12px; bottom:12px; } }

.calendar-sync-card { border:1px solid var(--line); background:#f7fafb; border-radius:9px; padding:16px; margin-bottom:6px; }.calendar-sync-card h2 { font-size:1.05rem; margin:5px 0 8px; }.calendar-sync-card p:not(.eyebrow) { color:var(--muted); font-size:.78rem; line-height:1.45; }.calendar-sync-card .button { margin-top:8px; }.sync-options { display:grid; gap:10px; margin-top:12px; }.checkbox-line { display:flex; gap:8px; align-items:flex-start; color:var(--muted); font-size:.76rem; line-height:1.35; }.checkbox-line input { width:auto; margin-top:2px; accent-color:var(--blue); }
.dashboard-page { max-width:1080px; margin:0 auto; padding:60px 6vw 100px; }.dashboard-heading { display:flex; justify-content:space-between; align-items:flex-start; padding:45px 0 35px; }.dashboard-heading h1 { font-size:clamp(2.4rem,5vw,4.5rem); }.dashboard-heading select { width:auto; min-width:170px; }.dashboard-stats { display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin-bottom:18px; }.dashboard-stats div { background:white; border:1px solid var(--line); border-radius:10px; padding:20px; }.dashboard-stats span { display:block; color:var(--muted); font-size:.78rem; margin-bottom:8px; }.dashboard-stats strong { font-size:1.25rem; }.dashboard-columns { display:grid; grid-template-columns:1.35fr .65fr; gap:18px; }.dashboard-panel { background:white; border:1px solid var(--line); border-radius:12px; padding:25px; }.dashboard-bottom { margin-top:18px; }.panel-heading { display:flex; justify-content:space-between; align-items:flex-start; margin-bottom:22px; }.panel-heading h2 { font-size:1.35rem; }.dashboard-lesson { border:1px solid var(--line); border-radius:9px; padding:20px; }.lesson-status { color:#1e6d57; font-size:.76rem; font-weight:800; margin-bottom:12px; }.dashboard-lesson h2 { font-size:1.2rem; margin-bottom:7px; }.dashboard-lesson p,.progress-card small { color:var(--muted); font-size:.85rem; }.dashboard-actions { display:flex; flex-wrap:wrap; gap:9px; margin-top:18px; }.progress-card { padding-top:22px; }.progress-card span { display:block; color:var(--muted); font-size:.78rem; margin-top:5px; }.progress-card .progress { margin:15px 0 7px; }.notification-list { display:grid; gap:17px; }.notification-list>div { display:flex; gap:10px; }.notification-list p { margin:0; }.notification-list strong,.notification-list small { display:block; }.notification-list small { color:var(--muted); font-size:.77rem; line-height:1.4; margin-top:4px; }.notification-dot { width:8px; height:8px; flex:0 0 8px; margin-top:5px; border-radius:50%; background:var(--blue); }.muted-dot { background:#cbd3d8; }.request-summary { display:grid; gap:14px; }.request-summary>div,.admin-list>div { border:1px solid var(--line); border-radius:8px; padding:16px; display:flex; align-items:center; gap:13px; }.request-summary p,.admin-list span { color:var(--muted); font-size:.8rem; margin:5px 0 0; }.request-summary .button,.admin-list .button { margin-left:auto; white-space:nowrap; }.count { color:var(--blue); font-size:1.5rem; font-weight:800; }.admin-list { display:grid; gap:10px; }.admin-list>div { display:block; }.admin-list span { display:block; }.admin-list .button { display:inline-block; margin-top:10px; }.message-row { display:flex; align-items:center; gap:12px; border-top:1px solid var(--line); padding-top:17px; }.message-avatar { width:38px; height:38px; border-radius:50%; display:grid; place-items:center; background:var(--mint); color:var(--blue-dark); font-weight:800; }.message-row p { color:var(--muted); margin:5px 0 0; font-size:.85rem; }.message-row>span { margin-left:auto; color:var(--muted); font-size:.75rem; }
@media (max-width:760px) { .dashboard-heading { display:block; }.dashboard-heading select { margin-top:16px; }.dashboard-stats,.dashboard-columns { grid-template-columns:1fr; }.request-summary>div { display:block; }.request-summary .button { margin:12px 0 0; }.message-row>span { display:none; } }
.plane-access { color:var(--blue-dark); background:#f2f8f8; border-radius:6px; padding:9px 10px; font-size:.78rem; line-height:1.35; }
.review-page { max-width:820px; margin:0 auto; padding:60px 6vw 100px; }.review-intro { padding:55px 0 35px; }.review-intro h1 { font-size:clamp(2.5rem,5vw,4.5rem); max-width:700px; }.review-form { background:white; border:1px solid var(--line); border-radius:12px; padding:30px; display:grid; gap:20px; }.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }.review-form textarea { resize:vertical; }.acknowledge { display:flex; grid-template-columns:auto 1fr; flex-direction:row; align-items:center; gap:9px; }.acknowledge input { width:auto; accent-color:var(--blue); }.review-success { margin-top:24px; background:var(--mint); border-radius:12px; padding:25px; display:grid; gap:12px; color:#1e6d57; }.review-success span { color:#397a69; font-size:.9rem; }.review-success .button { width:max-content; }
.contact-page { max-width:1000px; margin:0 auto; padding:60px 6vw 100px; }.contact-heading { padding:52px 0 38px; }.contact-heading h1 { font-size:clamp(2.7rem,5vw,4.8rem); margin-bottom:20px; }.contact-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }.contact-card { background:white; border:1px solid var(--line); border-radius:12px; padding:28px; }.contact-card h2 { font-size:1.45rem; margin-bottom:12px; }.contact-card p { color:var(--muted); line-height:1.6; }.contact-card .muted { font-size:.86rem; }.contact-email { color:var(--blue-dark); font-weight:800; text-decoration:underline; text-underline-offset:3px; }.contact-details { margin-top:70px; border-top:1px solid var(--line); padding-top:45px; }.contact-details h2 { margin-bottom:18px; }.contact-details ul { margin:0; padding-left:20px; color:var(--muted); line-height:1.9; }.contact-note { margin-top:45px; background:var(--mint); border-radius:12px; padding:24px 27px; color:#1e6d57; }.contact-note strong { font-size:1rem; }.contact-note p { margin:8px 0 0; line-height:1.55; font-size:.9rem; }
@media (max-width:760px) { .contact-grid { grid-template-columns:1fr; }.contact-page { padding-left:20px; padding-right:20px; } }
.service-card-top { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; }.service-card-featured { border-color:#9bc9d0; box-shadow:0 10px 24px rgba(23,107,135,.08); }.service-price { color:var(--blue-dark); background:var(--mint); border-radius:999px; padding:7px 10px; font-size:.75rem; font-weight:800; white-space:nowrap; }.time-building-page { max-width:1000px; margin:0 auto; padding:60px 6vw 100px; }.time-building-hero { padding:52px 0 42px; }.time-building-hero h1 { font-size:clamp(2.7rem,5vw,4.8rem); margin-bottom:20px; }.time-building-title { display:flex; justify-content:space-between; align-items:flex-end; gap:32px; }.time-building-price { display:grid; min-width:145px; padding:20px; border:1px solid var(--line); border-radius:12px; background:white; }.time-building-price strong { color:var(--blue-dark); font-size:2.5rem; letter-spacing:-.06em; }.time-building-price span { color:var(--muted); font-size:.8rem; }.time-building-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }.time-building-grid .contact-card { min-height:190px; }
@media (max-width:760px) { .time-building-page { padding-left:20px; padding-right:20px; }.time-building-title { display:block; }.time-building-price { margin:24px 0; width:max-content; }.time-building-grid { grid-template-columns:1fr; } }
.time-building-hero #subscriptionStatus { max-width:520px; margin-top:18px; }.auth-message.error { color:#a33b3b; background:#fff0f0; }
.profile-page { max-width:1080px; margin:0 auto; padding:60px 6vw 100px; }.back-link { color:var(--muted); font-size:.85rem; }.profile-heading { display:flex; align-items:center; gap:20px; padding:58px 0 50px; border-bottom:1px solid var(--line); }.profile-heading h1 { font-size:clamp(2.4rem,5vw,4.5rem); margin:0 0 10px; }.profile-heading .button { margin-left:auto; white-space:nowrap; }.profile-avatar { width:86px; height:86px; border-radius:50%; display:grid; place-items:center; background:var(--mint); color:var(--blue-dark); font-size:1.6rem; font-weight:800; }.profile-location { color:var(--muted); margin:0; }.profile-grid { display:grid; grid-template-columns:1.35fr .65fr; gap:70px; padding-top:48px; }.profile-section { padding-bottom:42px; }.large-copy { color:var(--muted); font-size:1.08rem; line-height:1.7; max-width:620px; }.profile-facts { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin-top:30px; }.profile-facts div { border-top:1px solid var(--line); padding-top:13px; }.profile-facts span { display:block; color:var(--muted); font-size:.75rem; margin-bottom:7px; }.profile-facts strong { font-size:.85rem; }.profile-tags { display:flex; flex-wrap:wrap; gap:9px; margin-top:16px; }.availability-box { background:white; border:1px solid var(--line); border-radius:12px; padding:27px; height:max-content; box-shadow:0 14px 30px rgba(31,55,70,.06); }.availability-box h2 { margin:5px 0 10px; }.availability-box p { color:var(--muted); line-height:1.5; font-size:.88rem; }.availability-box .button { width:100%; text-align:center; margin-top:18px; }.calendar-row { border-top:1px solid var(--line); padding:14px 0; display:grid; grid-template-columns:45px 1fr auto; gap:9px; align-items:center; font-size:.82rem; }.calendar-row span:first-child { color:var(--muted); }.open-slot { color:#278264; font-weight:700; }.progress { height:8px; background:#e9eef1; border-radius:20px; overflow:hidden; margin:22px 0 4px; }.progress span { display:block; height:100%; width:80%; background:var(--blue); }
.view-switcher { display:flex; gap:7px; margin-top:20px; }.view-button { border:1px solid var(--line); background:white; color:var(--muted); border-radius:7px; padding:9px 14px; font:inherit; font-size:.78rem; cursor:pointer; }.view-button.active { background:var(--blue-dark); color:white; border-color:var(--blue-dark); }.map-view { display:grid; grid-template-columns:1.35fr .65fr; gap:16px; margin-top:22px; }.map-canvas { min-height:520px; border:1px solid var(--line); border-radius:12px; position:relative; overflow:hidden; background:linear-gradient(145deg,#edf6f4,#dcecf0 50%,#e9eef1); }.map-canvas:before,.map-canvas:after { content:""; position:absolute; background:rgba(255,255,255,.8); border:1px solid rgba(255,255,255,.8); transform:rotate(-24deg); }.map-canvas:before { width:120%; height:75px; left:-8%; top:35%; }.map-canvas:after { width:105%; height:42px; left:8%; top:68%; transform:rotate(18deg); }.map-label { position:absolute; color:rgba(31,55,70,.38); text-transform:uppercase; letter-spacing:.12em; font-size:.68rem; font-weight:800; z-index:1; }.map-label-one { left:23%; top:18%; }.map-label-two { left:15%; top:79%; }.map-label-three { right:13%; top:42%; }.map-pin { position:absolute; transform:translate(-50%,-50%); z-index:2; border:3px solid white; border-radius:20px; background:var(--blue-dark); color:white; padding:8px 10px; box-shadow:0 5px 13px rgba(31,55,70,.2); font:inherit; font-size:.68rem; font-weight:800; cursor:pointer; }.map-pin:hover { background:var(--blue); }.map-results { background:white; border:1px solid var(--line); border-radius:12px; padding:24px; }.map-results h2 { font-size:1.35rem; margin:5px 0 8px; }.map-instructor { width:100%; text-align:left; border:0; border-top:1px solid var(--line); background:transparent; padding:15px 0; cursor:pointer; font:inherit; }.map-instructor strong,.map-instructor span { display:block; }.map-instructor span { color:var(--muted); font-size:.76rem; margin-top:5px; }.map-selected { border-top:1px solid var(--line); padding-top:15px; display:grid; gap:10px; }.map-selected strong { font-size:.85rem; line-height:1.45; }.map-selected span { color:var(--muted); font-size:.76rem; }.map-selected .button { text-align:center; }
.brand-logo { display:inline-flex; flex-direction:column; align-items:flex-start; gap:3px; }.brand-logo img { width:150px; height:auto; display:block; }.brand-logo span { color:var(--muted); font-size:.62rem; letter-spacing:.04em; white-space:nowrap; }
.payment-breakdown { display:grid; gap:6px; background:#f7f9fb; border:1px solid var(--line); border-radius:8px; padding:14px; margin:16px 0; font-size:.8rem; }.payment-breakdown strong { color:var(--blue-dark); }.payment-breakdown span { display:flex; justify-content:space-between; color:var(--muted); }.payment-breakdown span:nth-of-type(3) { color:#1e6d57; font-weight:700; }.payment-breakdown small { color:var(--muted); line-height:1.4; margin-top:4px; }
.card-payment-method { display:grid; gap:8px; margin:20px 0; }.card-payment-method > strong { font-size:.85rem; }.method-option { display:flex; gap:10px; align-items:flex-start; border:1px solid var(--line); border-radius:8px; padding:12px; cursor:pointer; }.method-option:has(input:checked) { border-color:var(--blue); background:#f3f9fa; }.method-option input { margin-top:3px; accent-color:var(--blue); }.method-option b,.method-option small { display:block; }.method-option small { color:var(--muted); margin-top:3px; }.method-option.disabled { opacity:.55; cursor:not-allowed; }
.auth-page { max-width:560px; margin:0 auto; padding:80px 6vw; }.auth-card { background:white; border:1px solid var(--line); border-radius:14px; padding:32px; box-shadow:0 12px 35px rgba(18,48,70,.08); }.auth-card h1 { margin:.2rem 0 .6rem; }.auth-tabs { display:flex; gap:8px; margin:24px 0; }.auth-tabs .button { flex:1; }.auth-card form { display:grid; gap:16px; }.auth-card label { display:grid; gap:7px; color:var(--ink); font-size:.85rem; font-weight:700; }.auth-card input,.auth-card select { width:100%; box-sizing:border-box; padding:12px; border:1px solid var(--line); border-radius:7px; font:inherit; background:white; }.auth-message { margin-top:16px; color:#1e6d57; background:var(--mint); border-radius:7px; padding:12px; font-size:.85rem; }.auth-footnote { margin:20px 0 0; color:var(--muted); font-size:.75rem; line-height:1.5; }
.employee-bar .brand small { display:block; font-size:.62rem; color:var(--muted); letter-spacing:.08em; text-transform:uppercase; }.employee-page { max-width:1180px; margin:0 auto; padding:58px 6vw 100px; }.employee-heading { display:flex; justify-content:space-between; align-items:end; gap:25px; margin-bottom:30px; }.internal-badge { background:#e8f3f1; color:#1e6d57; border-radius:999px; padding:9px 13px; font-size:.75rem; font-weight:700; }.metric-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-bottom:18px; }.metric-card,.employee-panel { background:white; border:1px solid var(--line); border-radius:12px; padding:22px; }.metric-card span,.metric-card small { display:block; color:var(--muted); font-size:.78rem; }.metric-card strong { display:block; font-size:2rem; margin:10px 0 5px; }.employee-columns { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-bottom:18px; }.panel-heading { display:flex; align-items:start; justify-content:space-between; gap:15px; margin-bottom:18px; }.panel-heading h2 { margin:0; font-size:1.2rem; }.employee-row { display:grid; grid-template-columns:auto 1fr auto auto; align-items:center; gap:12px; border-top:1px solid var(--line); padding:14px 0; font-size:.82rem; }.employee-row > div:not(.row-avatar) { display:grid; gap:4px; }.employee-row span,.employee-row em { color:var(--muted); font-size:.74rem; font-style:normal; }.employee-row em { text-align:right; }.row-avatar { width:34px; height:34px; display:grid; place-items:center; border-radius:50%; background:#dcecf0; color:var(--blue-dark); font-weight:800; font-size:.72rem; }.text-button { border:0; background:transparent; color:var(--blue); cursor:pointer; font:inherit; font-weight:700; }.support-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }.support-item { border:1px solid var(--line); border-radius:9px; padding:15px; display:grid; gap:8px; font-size:.82rem; }.support-item span { color:var(--muted); font-size:.75rem; line-height:1.4; }
.analytics-controls { display:flex; gap:10px; align-items:center; }.analytics-controls select { border:1px solid var(--line); border-radius:7px; padding:10px; background:white; color:var(--ink); }.analytics-grid { display:grid; grid-template-columns:1.4fr .8fr; gap:18px; margin:18px 0; }.analytics-card { background:white; border:1px solid var(--line); border-radius:12px; padding:22px; }.analytics-card.wide { grid-row:span 2; }.chart-legend { color:var(--muted); font-size:.72rem; display:flex; gap:6px; align-items:center; }.chart-legend i { width:9px; height:9px; border-radius:2px; display:inline-block; }.legend-request { background:#9ccbd3; }.legend-completed { background:#1f7180; margin-left:7px; }.bar-chart { height:190px; display:flex; align-items:end; justify-content:space-around; gap:10px; border-bottom:1px solid var(--line); padding:10px 0 0; }.chart-column { height:100%; display:grid; align-content:end; justify-items:center; gap:7px; color:var(--muted); font-size:.66rem; }.chart-bars { height:165px; display:flex; align-items:end; gap:3px; }.bar { display:block; width:12px; border-radius:4px 4px 0 0; }.request-bar { background:#9ccbd3; }.complete-bar { background:#1f7180; }.rank-row { display:grid; gap:6px; margin:14px 0; font-size:.78rem; }.rank-row > div:first-child { display:flex; justify-content:space-between; gap:10px; }.rank-row span { color:var(--muted); }.rank-track { height:7px; background:#edf1f3; border-radius:99px; overflow:hidden; }.rank-track i { display:block; height:100%; border-radius:99px; background:var(--blue); }.payment-analytics { display:grid; gap:10px; }.payment-row { display:grid; grid-template-columns:1fr auto 70px; align-items:center; border-top:1px solid var(--line); padding:13px 0; font-size:.8rem; }.payment-row b { text-align:right; }.payment-pill { border-radius:99px; padding:5px 9px; font-size:.7rem; font-weight:700; }.positive { color:#1e6d57 !important; }
.map-toolbar { position:absolute; z-index:500; left:14px; top:14px; display:grid; gap:3px; padding:10px 12px; background:rgba(255,255,255,.94); border:1px solid var(--line); border-radius:8px; box-shadow:0 4px 14px rgba(31,55,70,.12); }
.map-toolbar strong { font-size:.82rem; color:var(--blue-dark); }
.map-toolbar span { font-size:.7rem; color:var(--muted); }
.settings-page { max-width:1100px; margin:0 auto; padding:70px 6vw 100px; }
.settings-heading { display:flex; justify-content:space-between; align-items:end; gap:24px; margin-bottom:36px; }
.settings-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:20px; }
.settings-card { background:#fff; border:1px solid var(--line); border-radius:18px; padding:26px; box-shadow:0 10px 28px rgba(17,42,70,.05); }
.settings-card h2 { margin:6px 0 18px; }
.settings-card label { display:grid; gap:7px; margin:14px 0; color:var(--ink); font-weight:600; }
.settings-card input { width:100%; box-sizing:border-box; }
.settings-card input[readonly] { background:#f4f7fa; color:#66778a; }
.settings-card .checkbox-line { display:flex; align-items:center; gap:10px; font-weight:500; }
.settings-card .checkbox-line input { width:auto; }
.settings-note { margin-top:20px; }
.settings-signout { display:block; margin-top:22px; color:#b44040; }
.payment-profile-card { margin-top:20px; }
.payment-choice-row { display:flex; align-items:end; gap:14px; flex-wrap:wrap; }
.payment-choice-row label { min-width:220px; margin:0; }
.payment-inline-status { display:block; margin-top:12px; color:#65778b; font-size:.9rem; }
.legal-page { max-width:820px; margin:0 auto; padding:70px 6vw 100px; }
.legal-page h1 { margin-bottom:8px; }
.legal-page section { background:#fff; border:1px solid var(--line); border-radius:16px; padding:24px; margin:18px 0; }
.legal-page h2 { margin-top:0; }
.legal-disclaimer { border-left:4px solid #d9a441; padding:12px 16px; background:#fff8e8; }
.auth-message.error { color:#a33b3b; background:#fff0f0; }
@media (max-width:760px) { .settings-page { padding:45px 20px 70px; }.settings-heading { align-items:start; flex-direction:column; }.settings-grid { grid-template-columns:1fr; } }
 .site-signout { margin-left:8px; padding:9px 13px; border:1px solid var(--line); border-radius:7px; color:var(--ink); white-space:nowrap; }
 .site-signout:hover { background:var(--surface); color:var(--blue-dark); }
.financials-section { margin-top:55px; border-top:1px solid var(--line); padding-top:48px; }
.financials-heading { display:flex; justify-content:space-between; gap:25px; align-items:flex-start; }
.financials-heading h2 { margin-bottom:8px; }
.financial-summary { display:grid; grid-template-columns:repeat(3,1fr); gap:14px; margin:24px 0 18px; }
.financial-metric,.financial-panel { background:white; border:1px solid var(--line); border-radius:12px; padding:21px; }
.financial-metric span,.financial-metric small { display:block; color:var(--muted); font-size:.78rem; }
.financial-metric strong { display:block; font-size:1.8rem; letter-spacing:-.04em; margin:9px 0 5px; color:var(--blue-dark); }
.financial-columns { display:grid; grid-template-columns:1.25fr .75fr; gap:18px; }
.financial-panel .panel-heading { margin-bottom:8px; }
.financial-panel h3 { margin:0; font-size:1.1rem; }
.financial-list { display:grid; }
.financial-row { display:flex; justify-content:space-between; align-items:center; gap:16px; border-top:1px solid var(--line); padding:14px 0; font-size:.82rem; }
.financial-row div { display:grid; gap:5px; }
.financial-row span { color:var(--muted); font-size:.74rem; }
.financial-row b { color:var(--blue-dark); white-space:nowrap; }
.financial-empty { color:var(--muted); font-size:.85rem; padding:18px 0 4px; }
@media (max-width:760px) { .financial-summary,.financial-columns { grid-template-columns:1fr; }.financials-heading { align-items:start; flex-direction:column; } }
.auth-card .checkbox-line { align-items:center; gap:7px; line-height:1.4; }
.auth-card .checkbox-line a { color:var(--blue); text-decoration:underline; text-underline-offset:2px; }
.payment-line { display:flex; justify-content:space-between; gap:16px; padding:7px 0; border-top:1px solid var(--line); font-size:.82rem; }
.payment-line.total { color:var(--blue-dark); font-weight:800; }
.student-profile-tabs { display:flex; gap:8px; margin:0 0 22px; padding:6px; background:#eef5f8; border-radius:10px; width:max-content; }
.student-profile-tabs button { border:0; background:transparent; color:var(--muted); border-radius:7px; padding:10px 15px; font:inherit; font-size:.8rem; cursor:pointer; }
.student-profile-tabs button.active { background:white; color:var(--blue-dark); box-shadow:0 1px 5px rgba(31,55,70,.12); font-weight:700; }
.profile-photo-editor { border-bottom:1px solid var(--line); padding-bottom:22px; margin-bottom:22px; }.profile-photo-row { display:flex; align-items:center; gap:14px; }.profile-photo-preview { width:64px; height:64px; border-radius:50%; display:grid; place-items:center; overflow:hidden; background:var(--mint); color:var(--blue-dark); font-size:1.3rem; font-weight:800; }.profile-photo-preview img,.profile-avatar.has-photo img { width:100%; height:100%; object-fit:cover; }.profile-photo-row small { display:block; color:var(--muted); margin:7px 0; }
.analytics-empty { display:grid; gap:5px; padding:24px 10px; color:var(--muted); }.analytics-empty strong { color:var(--blue-dark); }.analytics-empty span { font-size:.88rem; }.analytics-ops-card { margin-top:22px; }.analytics-tabs { display:flex; gap:8px; flex-wrap:wrap; border-bottom:1px solid var(--line); margin:0 -4px 18px; padding:0 4px; }.analytics-tabs button { border:0; background:transparent; color:var(--muted); padding:11px 10px; font:inherit; font-size:.82rem; cursor:pointer; border-bottom:2px solid transparent; }.analytics-tabs button.active { color:var(--blue-dark); font-weight:700; border-color:var(--blue); }.analytics-tab-panel { display:none; }.analytics-tab-panel.active { display:block; }.ops-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; }.ops-grid > div { border:1px solid var(--line); border-radius:10px; padding:16px; display:grid; gap:8px; background:#fbfdfd; }.ops-label { color:var(--muted); font-size:.74rem; text-transform:uppercase; letter-spacing:.06em; }.ops-grid strong { color:var(--blue-dark); font-size:1.35rem; }.ops-footnote { margin:16px 0 0; }.error-row { display:flex; justify-content:space-between; gap:16px; padding:13px 0; border-bottom:1px solid var(--line); }.error-row div { display:grid; gap:4px; }.error-row span,.error-row small { color:var(--muted); font-size:.82rem; }.bar-column { min-width:22px; flex:1; display:grid; gap:6px; align-items:end; }.bars { height:110px; display:flex; align-items:end; gap:3px; }.bars i { display:block; width:8px; min-height:3px; border-radius:3px 3px 0 0; }.bar-request { background:#7aa7ba; }.bar-completed { background:#0e6f83; }.bar-column small { color:var(--muted); font-size:.68rem; transform:rotate(-40deg); transform-origin:top left; }
@media (max-width:700px) { .ops-grid { grid-template-columns:repeat(2,1fr); }.error-row { display:grid; }.analytics-tabs { overflow:auto; flex-wrap:nowrap; } }
#termsField.checkbox-line { display:flex; align-items:flex-start; gap:8px; }
#termsField.checkbox-line input { width:auto; flex:0 0 auto; margin-top:2px; }
.profile-saved-notice { margin:10px 0 0; padding:9px 11px; border-radius:7px; color:#1e6d57; background:var(--mint); font-size:.78rem; }

/* Mobile layout tuning */
@media (max-width:760px) {
  html { overflow-x:hidden; }
  body { min-width:0; overflow-x:hidden; }
  .topbar { min-height:68px; height:auto; padding:12px 16px; align-items:center; gap:10px; }
  .brand { min-width:0; }
  .brand-logo img { width:34px; height:34px; }
  .brand-logo span { display:none; }
  .topbar nav { min-width:0; gap:7px; flex-wrap:wrap; justify-content:flex-end; }
  .topbar nav a, .topbar nav button { font-size:.72rem; }
  .topbar nav a.nav-signup, .topbar nav .site-signout { display:inline-flex; }
  .topbar nav .button { padding:8px 10px; }
  .hero { padding:46px 20px 42px; }
  .hero h1 { font-size:clamp(2.25rem,12vw,3.25rem); line-height:1.02; }
  .hero-copy { font-size:.98rem; }
  .hero .button { width:100%; margin:4px 0; text-align:center; }
  .search-panel,.results,.how { padding-left:16px; padding-right:16px; }
  .search-panel { padding-top:35px; }
  .filters { grid-template-columns:1fr; gap:10px; }
  .check-label { grid-column:auto; padding-bottom:0; }
  .view-switcher { width:100%; }
  .view-button { flex:1; }
  .card { padding:17px; }
  .card-top { align-items:flex-start; }
  .identity h3 { font-size:1rem; }
  .availability { display:grid; gap:7px; }
  .card-actions { grid-template-columns:1fr; }
  .modal-backdrop { padding:12px; align-items:end; }
  .modal { max-height:92vh; overflow:auto; padding:24px 18px 20px; border-radius:14px 14px 8px 8px; }
  .form-grid,.assessment-grid { grid-template-columns:1fr; }
  .form-grid .full { grid-column:auto; }
  .profile-heading { display:grid; grid-template-columns:auto 1fr; gap:12px; padding:35px 0 28px; }
  .profile-heading .button { grid-column:1/-1; margin:0; width:100%; text-align:center; }
  .profile-grid,.lesson-grid,.dashboard-columns,.contact-grid,.map-view,.analytics-grid,.employee-columns { grid-template-columns:1fr; gap:14px; }
  .profile-grid { padding-top:28px; }
  .profile-facts { grid-template-columns:1fr 1fr; gap:12px; }
  .profile-page,.lesson-page,.availability-page,.requests-page,.dashboard-page,.review-page,.contact-page,.employee-page,.settings-page,.materials-page,.onboarding-page,.time-building-page { padding-left:16px; padding-right:16px; }
  .dashboard-heading,.employee-heading,.analytics-controls { display:block; }
  .dashboard-heading select,.analytics-controls select,.analytics-controls .button { width:100%; margin-top:12px; }
  .dashboard-stats,.metric-grid,.support-grid,.financial-summary,.financial-columns,.time-building-grid { grid-template-columns:1fr; }
  .dashboard-panel,.lesson-card,.calendar-card,.availability-card,.request-card,.settings-card,.analytics-card,.employee-panel,.contact-card { padding:18px; }
  .request-summary>div,.admin-list>div { display:block; }
  .request-summary .button,.admin-list .button { display:inline-block; margin:12px 0 0; }
  .status-track { gap:4px; }
  .track-step { font-size:.68rem; }
  .track-step strong { display:block; margin-top:4px; }
  .track-step span { margin-right:0; }
  .lesson-facts { grid-template-columns:1fr; gap:12px; }
  .onboarding-section { padding:18px; }
  .check-grid { grid-template-columns:1fr 1fr; }
  .calendar-toolbar { gap:8px; }
  .calendar-toolbar h2 { text-align:center; font-size:1rem; }
  .month-day { min-height:82px; padding:6px; }
  .month-grid .calendar-block { font-size:.58rem; padding:5px; }
  .month-grid .calendar-block small { font-size:.58rem; }
  .error-report-button { max-width:calc(100vw - 24px); }
  .payment-row { grid-template-columns:1fr auto; gap:8px; }
  .payment-row b { grid-column:2; }
}
.analytics-data-note { margin:0 0 20px; color:var(--muted); font-size:.8rem; }
/* Accessible compact navigation; keep every destination reachable on phones. */
.mobile-menu-toggle { display:none; }
.modal-backdrop { z-index:1000; }
.error-report-button { z-index:20; }
@media(max-width:760px) {
  .mobile-menu-toggle { display:inline-flex; min-height:44px; align-items:center; }
  .topbar { flex-wrap:wrap; height:auto; min-height:68px; }
  .topbar nav { display:none; }
  .topbar.mobile-menu-open nav { display:flex; width:100%; flex-direction:column; align-items:stretch; max-height:70dvh; overflow-y:auto; }
  .topbar.mobile-menu-open nav a:not(.nav-signup),.topbar.mobile-menu-open nav a.nav-signup,.topbar.mobile-menu-open nav button.site-signout { display:flex; min-height:44px; padding:12px; align-items:center; font-size:1rem; }
  input,select,textarea { font-size:16px; }
  .month-grid,.month-weekdays { min-width:0; grid-template-columns:repeat(7,minmax(0,1fr)); gap:2px; }
  .month-day { min-width:0; padding:3px; overflow-wrap:anywhere; }
  .month-day-heading { font-size:.7rem; flex-wrap:wrap; }
  .calendar-card { min-width:0; padding:10px; }
  .calendar-toolbar .button { min-width:44px; min-height:44px; }
  .modal { max-height:85dvh; overflow-y:auto; }
  .error-report-button { bottom:max(12px,env(safe-area-inset-bottom)); min-height:44px; }
  main { padding-bottom:90px; }
}
.google-map-embed { position:absolute; inset:0; width:100%; height:100%; min-height:520px; border:0; z-index:1; }
.map-toolbar { position:absolute; top:12px; left:12px; z-index:2; background:rgba(255,255,255,.94); border:1px solid var(--line); border-radius:8px; padding:9px 12px; box-shadow:0 4px 14px rgba(18,48,70,.12); }
.map-toolbar strong,.map-toolbar span { display:block; }
.map-toolbar span { color:var(--muted); font-size:.72rem; margin-top:3px; }
@media (max-width:390px) {
  .profile-heading > *, .profile-grid > *, .profile-facts > * { min-width:0; max-width:100%; }
  .topbar nav a:not(.nav-signup), .topbar nav .site-signout { display:none; }
  .topbar nav a.nav-signup { font-size:.68rem; }
  .profile-facts { grid-template-columns:1fr; }
  .check-grid { grid-template-columns:1fr; }
  .track-step strong { font-size:.62rem; }
}

/* Aircraft marketplace */
.aircraft-page,.aircraft-profile-page,.aircraft-form-page { max-width:1180px; margin:0 auto; padding:52px 32px 90px; }
.aircraft-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:28px; margin-bottom:30px; }
.aircraft-heading h1 { max-width:720px; margin:.18rem 0 .65rem; }
.aircraft-heading .hero-copy { max-width:720px; margin:0; }
.aircraft-filters { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:14px; padding:18px; margin-bottom:24px; background:var(--surface); border:1px solid var(--line); border-radius:12px; }
.aircraft-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
.aircraft-card { overflow:hidden; background:var(--surface); border:1px solid var(--line); border-radius:12px; box-shadow:0 8px 24px rgba(18,48,70,.07); }
.aircraft-card-photo { display:block; height:190px; background:#dcecee; }
.aircraft-card-photo img { width:100%; height:100%; object-fit:cover; display:block; }
.aircraft-photo-placeholder { display:grid; place-items:center; height:100%; color:var(--blue-dark); font-size:3rem; background:linear-gradient(135deg,#dcecee,#eff7f5); }
.aircraft-card-body { padding:18px; }
.aircraft-card-top { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; }
.aircraft-card h2 { margin:.2rem 0 0; font-size:1.28rem; }
.aircraft-card h2 a { color:inherit; text-decoration:none; }
.aircraft-rate { color:var(--blue-dark); font-size:1.35rem; white-space:nowrap; }
.aircraft-rate small { font-size:.75rem; font-weight:500; }
.aircraft-meta { color:var(--muted); margin:.55rem 0 .9rem; font-size:.85rem; }
.aircraft-card .muted { min-height:48px; }
.aircraft-profile-hero { display:flex; justify-content:space-between; gap:24px; align-items:flex-end; padding:36px 0 28px; border-bottom:1px solid var(--line); }
.aircraft-profile-hero h1 { margin:.2rem 0 .5rem; }
.aircraft-profile-rate { text-align:right; }
.aircraft-profile-rate strong { display:block; color:var(--blue-dark); font-size:2.6rem; line-height:1; }
.aircraft-profile-rate span { color:var(--muted); font-size:.85rem; }
.aircraft-profile-grid { display:grid; grid-template-columns:minmax(0,1.6fr) minmax(280px,.8fr); gap:24px; padding-top:28px; }
.aircraft-gallery { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-bottom:26px; }
.aircraft-gallery img { width:100%; height:250px; object-fit:cover; border-radius:10px; border:1px solid var(--line); }
.aircraft-gallery-empty { grid-column:1/-1; min-height:190px; display:grid; place-items:center; border:1px dashed var(--line); border-radius:10px; color:var(--muted); }
.aircraft-form-page .aircraft-heading { margin-top:24px; }
.form-help { display:block; color:var(--muted); font-size:.78rem; margin-top:5px; }
.aircraft-form-page .aircraft-details-section { display:block; }
.aircraft-form-page .aircraft-details-section h2 { margin:0 0 4px; }
.field-label { display:block; color:var(--ink); font-weight:700; margin-bottom:8px; }
.photo-dropzone { display:flex; min-height:140px; align-items:center; justify-content:center; flex-direction:column; gap:7px; border:2px dashed #9dbec3; border-radius:10px; background:#f5fbfb; color:var(--blue-dark); cursor:pointer; text-align:center; padding:24px; }
.photo-dropzone.dragging,.photo-dropzone:hover { background:#eaf5f5; border-color:var(--blue); }
.photo-dropzone span { color:var(--muted); font-size:.85rem; font-weight:400; }
.photo-dropzone input { position:absolute; width:1px; height:1px; opacity:0; pointer-events:none; }
.photo-preview { display:grid; grid-template-columns:repeat(auto-fill,minmax(110px,1fr)); gap:10px; margin-top:12px; }
.photo-preview-item { position:relative; min-height:88px; overflow:hidden; border-radius:8px; border:1px solid var(--line); background:#edf4f4; }
.photo-preview-item img { width:100%; height:100%; min-height:88px; object-fit:cover; display:block; }
.photo-preview-item span { position:absolute; left:5px; right:5px; bottom:5px; padding:3px 5px; border-radius:4px; color:white; background:rgba(18,48,70,.78); font-size:.68rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.split-time-workspace { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:22px; align-items:start; }
.split-time-intro { padding:24px 0; }
.split-time-intro h2 { margin:.3rem 0 .65rem; }
.split-time-form,.split-time-matches { background:white; border:1px solid var(--line); border-radius:12px; padding:24px; display:grid; gap:16px; }
.split-time-form .full { grid-column:1/-1; }
.split-time-form { grid-template-columns:1fr 1fr; }
.split-time-form button,.split-time-form p { grid-column:1/-1; }
.split-time-matches { grid-column:1/-1; }
.split-match-card { display:flex; justify-content:space-between; gap:18px; padding:16px 0; border-top:1px solid var(--line); align-items:center; }
.split-match-card h3 { margin:.25rem 0 .35rem; }
.split-match-card p,.split-match-card span { display:block; color:var(--muted); margin:0; font-size:.85rem; }
.split-match-card span { margin-top:6px; }
@media (max-width:760px) { .split-time-workspace,.split-time-form { grid-template-columns:1fr; }.split-time-form .full,.split-time-form button,.split-time-form p { grid-column:auto; }.split-match-card { display:grid; }.split-match-card .button { width:100%; text-align:center; } }
@media (max-width:760px) {
  .aircraft-page,.aircraft-profile-page,.aircraft-form-page { padding-left:16px; padding-right:16px; }
  .aircraft-heading,.aircraft-profile-hero { display:block; }
  .aircraft-heading .button { margin-top:18px; width:100%; text-align:center; }
  .aircraft-filters,.aircraft-grid,.aircraft-profile-grid { grid-template-columns:1fr; }
  .aircraft-profile-rate { text-align:left; margin-top:20px; }
  .aircraft-gallery { grid-template-columns:1fr; }
  .aircraft-gallery img { height:220px; }
}

.user-directory-row .button { white-space: nowrap; }

.flight-clubs-page { max-width:1180px; margin:0 auto; padding:58px 6vw 100px; }.flight-clubs-layout { display:grid; grid-template-columns:320px 1fr; gap:18px; }.flight-clubs-sidebar,.flight-club-chat { background:white; border:1px solid var(--line); border-radius:12px; padding:22px; }.club-list,.club-discover { display:grid; gap:8px; }.club-discover { border-top:1px solid var(--line); margin-top:22px; padding-top:20px; }.club-item { position:relative; border:1px solid transparent; background:transparent; border-radius:8px; padding:13px; text-align:left; cursor:pointer; font:inherit; }.club-item:hover,.club-item.active { border-color:var(--line); background:#f3f9fa; }.club-item strong,.club-item span { display:block; padding-right:36px; }.club-item span { color:var(--muted); font-size:.76rem; margin-top:5px; }.club-item em { position:absolute; top:14px; right:12px; color:var(--blue); font-size:.72rem; font-style:normal; font-weight:700; }.flight-club-chat { min-height:580px; display:flex; flex-direction:column; }.chat-heading { border-bottom:1px solid var(--line); padding-bottom:18px; }.chat-heading h2 { margin:0 0 6px; }.chat-heading p:last-child { color:var(--muted); margin:0; }.chat-messages { flex:1; overflow:auto; padding:18px 0; display:grid; align-content:start; gap:12px; }.chat-message { max-width:75%; padding:12px 14px; background:#f1f6f7; border-radius:10px 10px 10px 2px; }.chat-message.mine { justify-self:end; background:var(--mint); border-radius:10px 10px 2px 10px; }.chat-message strong,.chat-message p,.chat-message time { display:block; }.chat-message p { margin:5px 0; line-height:1.5; white-space:pre-wrap; }.chat-message time { color:var(--muted); font-size:.68rem; }.chat-compose { border-top:1px solid var(--line); padding-top:16px; display:flex; gap:10px; align-items:end; }.chat-compose textarea { flex:1; resize:vertical; min-height:48px; padding:12px; border:1px solid var(--line); border-radius:7px; font:inherit; }.chat-compose .button { white-space:nowrap; }.modal { position:relative; max-width:520px; margin:10vh auto; background:white; border-radius:12px; padding:28px; box-shadow:0 20px 50px rgba(18,48,70,.2); }.modal-close { position:absolute; right:16px; top:12px; border:0; background:transparent; font-size:1.5rem; cursor:pointer; }.modal form { display:grid; gap:14px; }.modal label { display:grid; gap:7px; font-weight:700; font-size:.85rem; }.modal input,.modal textarea { width:100%; box-sizing:border-box; padding:11px; border:1px solid var(--line); border-radius:7px; font:inherit; }.modal-backdrop { position:fixed; z-index:20; inset:0; padding:20px; background:rgba(18,48,70,.35); }.hidden { display:none !important; }
@media (max-width:760px) { .flight-clubs-layout { grid-template-columns:1fr; }.flight-club-chat { min-height:500px; }.chat-compose { display:grid; }.chat-compose .button { width:100%; }.chat-message { max-width:88%; } }

