:root { --td-green: #188a58; --td-green-bright: #20c574; --td-ink: #173124; --td-muted: #557164; --td-line: #d6e7de; --td-mint: #eef9f3; --td-page: #fbfefd; --td-navy: #123d35; }
.tutoring-directory-page { background: var(--td-page); color: var(--td-ink); }
.tutoring-directory, .tutoring-profile, .tutoring-register, .tutoring-admin { width: min(1180px, calc(100% - 32px)); margin: 48px auto 72px; }
.tutoring-directory { margin-top: clamp(42px, 6vw, 76px); }
.tutoring-directory__hero, .tutoring-profile__hero, .tutoring-register__intro, .tutoring-admin__header { max-width: 760px; margin-bottom: 28px; }
.tutoring-directory__hero { margin: 0 auto 38px; text-align: center; }
.tutoring-directory__eyebrow { margin: 0 0 8px; color: var(--td-green); font-weight: 800; font-size: .78rem; letter-spacing: .1em; text-transform: uppercase; }
.tutoring-directory h1, .tutoring-profile h1, .tutoring-register h1, .tutoring-admin h1 { color: #10261b; font-family: Georgia, serif; font-size: clamp(2rem, 5vw, 3.6rem); line-height: 1.05; margin: 0 0 14px; }
.tutoring-directory__hero h1 { margin-inline: auto; max-width: 760px; text-wrap: balance; }
.tutoring-directory__hero > p:not(.tutoring-directory__eyebrow), .tutoring-profile__hero > p:not(.tutoring-directory__eyebrow), .tutoring-register__intro > p:not(.tutoring-directory__eyebrow), .tutoring-admin__header > p:not(.tutoring-directory__eyebrow) { color: var(--td-muted); font-size: 1.08rem; line-height: 1.6; }
.tutoring-directory__hero > p:not(.tutoring-directory__eyebrow) { margin-inline: auto; max-width: 680px; }
.tutoring-directory__notice { border-left: 4px solid var(--td-green-bright); background: linear-gradient(90deg, #ecf8f1, #f8fcfa); color: #315541 !important; margin: 22px auto 0; max-width: 760px; padding: 14px 18px; border-radius: 0 11px 11px 0; font-size: .94rem !important; text-align: left; }
.tutoring-directory__request-button { margin-top: 18px; }
.tutoring-directory__finder, .tutoring-register__card, .tutoring-admin__panel, .tutoring-profile__content, .tutoring-profile__contact { background: #fff; border: 1px solid var(--td-line); border-radius: 20px; box-shadow: 0 14px 32px rgba(22, 77, 51, .08); }
.tutoring-directory__controls { padding: 28px 24px 24px; border-bottom: 1px solid var(--td-line); text-align: center; }
.tutoring-directory__controls h2, .tutoring-profile h2, .tutoring-register legend, .tutoring-admin h2 { color: #163325; font-size: 1.25rem; font-weight: 800; }
.tutoring-directory__controls h2 { margin: 0 0 3px; }
.tutoring-search { margin: 0 auto; max-width: 640px; }
.tutoring-search label, .tutoring-register label, .tutoring-admin label { color: #294c3a; display: block; font-size: .9rem; font-weight: 700; margin: 13px 0 6px; }
.tutoring-search__input-row { display: flex; gap: 9px; }
.tutoring-search input, .tutoring-register input, .tutoring-register textarea, .tutoring-register select, .tutoring-admin input { width: 100%; border: 1px solid #b9d2c4; border-radius: 9px; color: var(--td-ink); font: inherit; padding: 10px 12px; }
.tutoring-search__input-row input { flex: 1; }
.tutoring-register textarea { min-height: 105px; resize: vertical; }
.tutoring-button { align-items: center; border: 1px solid transparent; border-radius: 999px; cursor: pointer; display: inline-flex; font: inherit; font-weight: 800; gap: 6px; justify-content: center; padding: 10px 16px; text-decoration: none; transition: transform .15s ease, background .15s ease; }
.tutoring-button:hover { text-decoration: none; transform: translateY(-1px); }
.tutoring-button--primary { background: var(--td-green); color: #fff; }
.tutoring-button--primary:hover { background: #0c7344; color: #fff; }
.tutoring-button--quiet { background: #fff; border-color: #b4d2c2; color: #1d6645; margin-top: 10px; }
.tutoring-button--map-toggle { display: none; }
.tutoring-button--large { font-size: 1.05rem; margin-top: 18px; padding: 13px 20px; }
.tutoring-search__status { color: var(--td-muted); font-size: .88rem; margin: 11px 0 0; min-height: 1.3em; }
.tutoring-directory__layout { display: grid; grid-template-columns: minmax(0, 1fr) minmax(400px, .94fr); min-height: 620px; }
.tutoring-directory__results { max-height: 700px; overflow: auto; padding: 12px; }
.tutoring-centre-card { border: 1px solid transparent; border-radius: 13px; display: flex; gap: 16px; justify-content: space-between; margin: 2px 0 8px; padding: 18px; transition: background .15s ease, border-color .15s ease; }
.tutoring-centre-card:hover, .tutoring-centre-card--selected { background: #f3fbf6; border-color: #95d2b4; outline: none; }
.tutoring-centre-card--preview { background: #f6fbff; border-color: #a8cce0; }
.tutoring-centre-card__area { color: var(--td-green); font-size: .78rem; font-weight: 800; letter-spacing: .08em; margin: 0 0 5px; text-transform: uppercase; }
.tutoring-centre-card h2 { font-size: 1.15rem; margin: 0 0 6px; }
.tutoring-centre-card h2 a { color: #183828; }
.tutoring-centre-card p { color: #416151; font-size: .91rem; line-height: 1.45; margin: 6px 0; }
.tutoring-centre-card__address { font-weight: 600; }
.tutoring-centre-card__actions { align-content: start; display: grid; gap: 7px; min-width: 128px; }
.tutoring-centre-card__actions a { color: #167249; font-size: .85rem; font-weight: 750; }
.tutoring-centre-card__detail { color: #173124 !important; }
.tutoring-centre-card__preview-label { color: #256481; font-size: .83rem; font-weight: 750; }
.tutoring-map { background: linear-gradient(145deg, #fbfefd, #f2faf5); border-left: 1px solid var(--td-line); min-height: 560px; padding: 26px; position: sticky; top: 18px; }
.tutoring-map__frame { aspect-ratio: 1 / 1.15; background-color: #fff; background-image: radial-gradient(circle, rgba(20, 68, 54, .13) 1px, transparent 1.15px); background-size: 18px 18px; border: 1px solid #e0eee6; border-radius: 16px; min-height: 430px; overflow: hidden; position: relative; }
.tutoring-map__outline { height: 100%; left: 0; position: absolute; top: 0; width: 100%; }
.tutoring-map__land { fill: url(#tutoring-map-land-gradient); filter: drop-shadow(0 7px 7px rgba(19, 65, 52, .15)); stroke: #123d35; stroke-linejoin: round; stroke-width: .55; }
.tutoring-map__markers { inset: 0; position: absolute; }
.tutoring-map__marker { align-items: center; background: var(--td-green-bright); border: 3px solid #fff; border-radius: 50%; box-shadow: 0 3px 9px rgba(8, 85, 48, .3), 0 0 0 1px #087e47; color: #073d28; cursor: pointer; display: flex; font-size: .72rem; font-weight: 900; height: 17px; justify-content: center; position: absolute; transform: translate(-50%, -50%); width: 17px; }
.tutoring-map__marker--selected { background: #0a6b42; box-shadow: 0 0 0 4px rgba(32, 197, 116, .28); color: #fff; z-index: 2; }
.tutoring-map__marker--preview { background: #2d85a7; box-shadow: 0 3px 9px rgba(23, 74, 94, .3), 0 0 0 1px #1d617c; }
.tutoring-map__marker:not(:empty) { height: 28px; width: 28px; }
.tutoring-map__hint { color: #4f695b; font-size: .86rem; margin: 12px 0 0; min-height: 1.3em; text-align: center; }
.tutoring-map__legend { color: var(--td-muted); font-size: .82rem; margin: 7px 0 0; text-align: center; }
.tutoring-map__legend span { background: var(--td-green-bright); border: 2px solid #fff; border-radius: 50%; box-shadow: 0 1px 3px rgba(0,0,0,.2); display: inline-block; height: 12px; vertical-align: -1px; width: 12px; }
.tutoring-map__legend .tutoring-map__preview-dot { background: #2d85a7; border: 2px solid #fff; border-radius: 50%; box-shadow: 0 1px 3px rgba(0,0,0,.2); display: inline-block; height: 12px; vertical-align: -1px; width: 12px; }
.tutoring-empty-state { padding: 50px 28px; text-align: center; }
.tutoring-empty-state h2 { font-family: Georgia, serif; font-size: 1.6rem; }
.tutoring-directory__request { margin: 34px auto 0; max-width: 900px; scroll-margin-top: 24px; }
.tutoring-directory__request-card { background: linear-gradient(135deg, #f4fbf7, #ffffff 62%); border: 1px solid var(--td-line); border-radius: 20px; box-shadow: 0 14px 32px rgba(22, 77, 51, .06); padding: clamp(22px, 5vw, 40px); }
.tutoring-directory__request-intro { max-width: 660px; }
.tutoring-directory__request-intro h2 { color: #10261b; font-family: Georgia, serif; font-size: clamp(1.7rem, 4vw, 2.35rem); line-height: 1.1; margin: 0 0 10px; }
.tutoring-directory__request-intro > p:last-child { color: var(--td-muted); line-height: 1.6; margin: 0; }
.tutoring-directory__request-form { margin-top: 22px; }
.tutoring-directory__request-grid { display: grid; gap: 15px 16px; grid-template-columns: 1fr 1fr; }
.tutoring-directory__request-form label { color: #294c3a; display: block; font-size: .9rem; font-weight: 700; }
.tutoring-directory__request-form label span { color: #6c8376; font-size: .82rem; font-weight: 500; }
.tutoring-directory__request-form input, .tutoring-directory__request-form textarea { box-sizing: border-box; width: 100%; border: 1px solid #b9d2c4; border-radius: 9px; color: var(--td-ink); font: inherit; margin-top: 6px; padding: 10px 12px; }
.tutoring-directory__request-form textarea { min-height: 100px; resize: vertical; }
.tutoring-directory__request-message-label { margin-top: 15px; }
.tutoring-directory__request-message { border-radius: 10px; font-weight: 650; line-height: 1.45; margin: 22px 0 0; padding: 13px 15px; }
.tutoring-directory__request-message--success { background: #e6f8ed; border: 1px solid #a7d9bb; color: #17633c; }
.tutoring-directory__request-message--error { background: #fff0f0; border: 1px solid #ebbbbb; color: #902f2f; }
.tutoring-directory__honeypot { display: none !important; }
.tutoring-profile__breadcrumb { color: var(--td-muted); display: flex; flex-wrap: wrap; font-size: .88rem; gap: 8px; margin-bottom: 25px; }
.tutoring-profile__breadcrumb a { color: var(--td-green); }
.tutoring-profile__grid { display: grid; gap: 22px; grid-template-columns: minmax(0, 1fr) 300px; }
.tutoring-profile__content, .tutoring-profile__contact { padding: 28px; }
.tutoring-profile__content p { color: #3b5848; line-height: 1.7; }
.tutoring-profile__location { border-top: 1px solid var(--td-line); margin-top: 25px; padding-top: 22px; }
.tutoring-profile__contact { align-self: start; display: grid; gap: 9px; }
.tutoring-profile__contact .tutoring-button { margin: 0; }
.tutoring-profile__contact-link { color: var(--td-green); font-weight: 700; overflow-wrap: anywhere; }
.tutoring-register { max-width: 820px; }
.tutoring-register__card { padding: clamp(22px, 5vw, 42px); }
.tutoring-register__card fieldset { border: 0; border-top: 1px solid var(--td-line); margin: 25px 0 0; padding: 22px 0 0; }
.tutoring-register__card fieldset:first-of-type { border-top: 0; margin-top: 0; }
.tutoring-register legend { margin-bottom: 5px; }
.tutoring-register__row { display: grid; gap: 16px; grid-template-columns: 1fr 1fr; }
.tutoring-check-grid { display: grid; gap: 8px; grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 8px; }
.tutoring-check-grid label, .tutoring-radio, .tutoring-register__confirmations label { align-items: start; display: flex; gap: 8px; margin: 4px 0; }
.tutoring-check-grid input, .tutoring-radio input, .tutoring-register__confirmations input { flex: 0 0 auto; margin-top: 4px; width: auto; }
.tutoring-field-label { color: #294c3a; display: block; font-size: .9rem; font-weight: 700; margin: 15px 0 4px; }
.tutoring-field-help { color: #637b6e; font-size: .82rem; margin: 5px 0; }
.tutoring-field-error, .tutoring-form-error { color: #a02727; font-size: .85rem; font-weight: 700; margin: 5px 0; }
.tutoring-form-error { background: #fff0f0; border: 1px solid #ebbbbb; border-radius: 9px; padding: 12px; }
.tutoring-poster-fields { background: #f3fbf6; border-radius: 10px; margin-top: 14px; padding: 8px 15px 16px; }
.tutoring-register__card--message { margin: 80px auto; max-width: 620px; text-align: center; }
.tutoring-register__success-note { color: var(--td-muted); margin: 20px 0 0; }
.tutoring-admin { max-width: 1280px; }
.tutoring-admin__panel { margin: 20px 0; padding: 24px; }
.tutoring-admin__panel form:not(.tutoring-admin__inline-form):not(.tutoring-admin__coordinates) { display: flex; flex-wrap: wrap; gap: 10px; align-items: end; }
.tutoring-admin__panel form:not(.tutoring-admin__inline-form):not(.tutoring-admin__coordinates) label { width: 100%; }
.tutoring-admin__message { border-radius: 9px; padding: 12px 15px; }
.tutoring-admin__message--success { background: #eaf8ef; color: #216840; }
.tutoring-admin__message--error { background: #fff0f0; color: #982c2c; }
.tutoring-admin__section-heading { align-items: center; display: flex; gap: 15px; justify-content: space-between; }
.tutoring-admin__section-heading h2, .tutoring-admin__section-heading p { margin: 0; }
.tutoring-admin__table-wrap { overflow-x: auto; }
.tutoring-admin__table { border-collapse: collapse; min-width: 920px; width: 100%; }
.tutoring-admin__table th, .tutoring-admin__table td { border-top: 1px solid var(--td-line); padding: 12px 9px; text-align: left; vertical-align: top; }
.tutoring-admin__table th { color: #416151; font-size: .77rem; letter-spacing: .06em; text-transform: uppercase; }
.tutoring-admin__table small { color: var(--td-muted); display: block; margin-top: 3px; overflow-wrap: anywhere; }
.tutoring-admin__inline-form { display: inline-block; margin: 2px 4px 2px 0; }
.tutoring-admin__inline-form .tutoring-button, .tutoring-admin__coordinates .tutoring-button { font-size: .78rem; margin: 0; padding: 7px 10px; }
.tutoring-admin__coordinates { display: grid; gap: 5px; grid-template-columns: 1fr 1fr; margin-top: 8px; max-width: 350px; }
.tutoring-admin__coordinates label { font-size: .74rem; margin: 0; }
.tutoring-admin__coordinates input { padding: 6px; }
.tutoring-status { border-radius: 999px; display: inline-block; font-size: .74rem; font-weight: 800; padding: 4px 8px; text-transform: capitalize; }
.tutoring-status--invited { background: #eef2ff; color: #4052a2; }.tutoring-status--submitted,.tutoring-status--requested { background: #fff7d9; color: #806000; }.tutoring-status--approved,.tutoring-status--posted { background: #e4f7ea; color: #176b3d; }.tutoring-status--declined,.tutoring-status--withdrawn { background: #fff0f0; color: #9c3434; }.tutoring-status--packed { background: #eaf4ff; color: #245e93; }
.tutoring-admin__profile-link { color: var(--td-green); display: inline-block; font-size: .83rem; font-weight: 750; margin: 3px 0; }
@media (max-width: 820px) { .tutoring-directory, .tutoring-profile, .tutoring-register, .tutoring-admin { width: min(100% - 22px, 720px); margin-top: 28px; }.tutoring-directory { margin-top: 38px; }.tutoring-directory__hero { margin-bottom: 26px; }.tutoring-directory h1 { font-size: clamp(2.4rem, 11vw, 3.35rem); line-height: 1.04; }.tutoring-directory__hero > p:not(.tutoring-directory__eyebrow) { font-size: 1rem; line-height: 1.55; }.tutoring-directory__notice { font-size: .9rem !important; margin-top: 19px; padding: 13px 14px; }.tutoring-directory__controls { padding: 22px 16px 20px; }.tutoring-directory__controls h2 { font-size: 1.16rem; }.tutoring-directory__layout { display: block; min-height: 0; }.tutoring-directory__results { max-height: none; }.tutoring-map { border-left: 0; border-top: 1px solid var(--td-line); display: none; margin-top: 4px; min-height: 0; padding: 16px; position: static; }.tutoring-map--mobile-open { display: block; }.tutoring-map__frame { min-height: 0; }.tutoring-button--map-toggle { display: inline-flex; margin-top: 16px; }.tutoring-centre-card { display: block; }.tutoring-centre-card__actions { margin-top: 12px; }.tutoring-profile__grid { grid-template-columns: 1fr; }.tutoring-register__row, .tutoring-check-grid, .tutoring-directory__request-grid { grid-template-columns: 1fr; }.tutoring-search__input-row { display: grid; grid-template-columns: 1fr; }.tutoring-search__input-row .tutoring-button { width: 100%; }.tutoring-admin__panel { padding: 17px; } }
@media (max-width: 420px) { .tutoring-directory, .tutoring-profile, .tutoring-register, .tutoring-admin { width: min(100% - 18px, 720px); }.tutoring-directory { margin-top: 28px; }.tutoring-directory h1 { font-size: clamp(2.2rem, 12vw, 2.85rem); }.tutoring-directory__controls { padding-inline: 13px; }.tutoring-map { padding: 12px; }.tutoring-map__hint { font-size: .81rem; } }
@media (prefers-reduced-motion: reduce) { .tutoring-button, .tutoring-centre-card { transition: none; } }
