: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; }.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; } }
.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; } }
.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; } }
