.gttutor-dashboard {
    --gt-navy: #0b2239;
    --gt-teal: #0f8f8d;
    --gt-gold: #c7a24a;
    --gt-border: #dfe6ec;
    --gt-muted: #637282;
    max-width: 1180px;
    margin: 0 auto;
}

.gttutor-hero {
    background: linear-gradient(120deg, var(--gt-navy), #123a55);
    color: #fff;
    border-radius: 16px;
    padding: 28px 32px;
    margin-bottom: 20px;
    border-left: 5px solid var(--gt-gold);
}

.gttutor-hero h2 { color: #fff; margin: 4px 0 8px; }
.gttutor-hero p { margin: 0; opacity: .9; }
.gttutor-eyebrow, .gttutor-kicker { font-size: .76rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.gttutor-eyebrow { color: #d9c07d; }
.gttutor-kicker { color: var(--gt-teal); margin-bottom: 5px; }

.gttutor-stats {
    display: grid;
    grid-template-columns: repeat(4, minmax(0, 1fr));
    gap: 14px;
    margin-bottom: 24px;
}

.gttutor-stat, .gttutor-course-card, .gttutor-section {
    background: #fff;
    border: 1px solid var(--gt-border);
    border-radius: 14px;
}

.gttutor-stat { padding: 18px 20px; }
.gttutor-stat-value { font-size: 1.8rem; line-height: 1; font-weight: 800; color: var(--gt-navy); }
.gttutor-stat-label { margin-top: 7px; color: var(--gt-muted); font-size: .9rem; }

.gttutor-section { padding: 24px; margin-bottom: 20px; scroll-margin-top: 90px; }
.gttutor-section > h3 { color: var(--gt-navy); margin: 0 0 18px; font-size: 1.25rem; }
.gttutor-course-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 16px; }
.gttutor-course-card { padding: 20px; }
.gttutor-course-card h4 { min-height: 2.7em; color: var(--gt-navy); margin-bottom: 8px; }
.gttutor-course-card .btn { margin-top: 16px; }
.gttutor-muted { color: var(--gt-muted); font-size: .9rem; }
.gttutor-next { margin-top: 10px; font-weight: 600; }

.gttutor-list { border-top: 1px solid var(--gt-border); }
.gttutor-list-row { display: grid; grid-template-columns: minmax(0, 1fr) auto auto; gap: 16px; align-items: center; padding: 14px 0; border-bottom: 1px solid var(--gt-border); }
.gttutor-list-main { display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.gttutor-list-date { white-space: nowrap; font-size: .9rem; color: var(--gt-muted); }
.gttutor-empty { color: var(--gt-muted); margin-bottom: 0; }
.gttutor-grading-section-title{margin:1.5rem 0 .75rem;color:var(--gt-navy);font-size:1.15rem}.gttutor-grading-section-title:first-of-type{margin-top:1rem}.gttutor-grading-badge{display:inline-block;width:max-content;border-radius:999px;padding:.18rem .5rem;font-size:.74rem;font-weight:700;margin-top:.25rem}.gttutor-grading-awaiting{background:#fff3c4;color:#8d2b0b}.gttutor-grading-complete{background:#eae2f8;color:#51279b}

.gttutor-pupil-course { margin: 18px 0 10px; color: var(--gt-navy); font-size: 1rem; }
.gttutor-pupil-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.gttutor-pupil-card { display: flex; gap: 12px; align-items: center; border: 1px solid var(--gt-border); border-radius: 10px; padding: 12px; }
.gttutor-pupil-meta { display: flex; flex-direction: column; min-width: 0; }

@media (max-width: 900px) {
    .gttutor-stats { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .gttutor-course-grid, .gttutor-pupil-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 600px) {
    .gttutor-hero { padding: 22px; }
    .gttutor-stats, .gttutor-course-grid, .gttutor-pupil-grid { grid-template-columns: 1fr; }
    .gttutor-list-row { grid-template-columns: 1fr; gap: 8px; }
}

.gttutor-avatar { display: inline-flex; width: 48px; height: 48px; border-radius: 50%; align-items: center; justify-content: center; flex: 0 0 48px; background: #eef6f6; color: var(--gt-teal); font-weight: 800; }

/* v1.1.4 Join GemTuition */
.gtt-join-shell {
    max-width: 1120px;
    margin: 2rem auto 3rem;
    padding: 0 1rem 1.5rem;
}
.gtt-join-hero {
    background: linear-gradient(135deg, #071e33 0%, #123f5c 100%);
    border-left: 4px solid #c59a50;
    border-radius: 14px;
    color: #fff;
    padding: 2.25rem 2.5rem;
    margin-bottom: 1.25rem;
}
.gtt-join-hero h1 {
    color: #fff;
    margin: .25rem 0 .5rem;
    font-size: 2rem;
}
.gtt-join-kicker,
.gtt-join-card-eyebrow {
    color: #d7b46d;
    font-size: .78rem;
    font-weight: 700;
    letter-spacing: .08em;
    text-transform: uppercase;
}
.gtt-join-intro {
    margin: 0;
    max-width: 720px;
    opacity: .92;
}
.gtt-join-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 1rem;
}
.gtt-join-card {
    background: #fff;
    border: 1px solid #d9e2e8;
    border-radius: 14px;
    padding: 1.6rem;
    min-height: 250px;
    display: flex;
    flex-direction: column;
    box-shadow: 0 4px 16px rgba(9, 31, 49, .05);
}
.gtt-join-card h2 {
    margin: .4rem 0 .65rem;
    color: #0b2940;
}
.gtt-join-card p {
    color: #52697a;
    flex: 1;
}
.gtt-join-button {
    align-self: flex-start;
    background: #b78a43;
    border-color: #b78a43;
    color: #071e33;
    font-weight: 600;
}
.gtt-join-button:hover,
.gtt-join-button:focus {
    background: #c79b54;
    border-color: #c79b54;
    color: #071e33;
}
.gtt-join-login {
    text-align: center;
    margin-top: 1.5rem;
    color: #fff;
    font-weight: 600;
    text-shadow: 0 1px 3px rgba(0, 0, 0, .7);
}
.gtt-join-login a {
    color: #fff;
    font-weight: 700;
    text-decoration: underline;
    text-decoration-thickness: 1px;
    text-underline-offset: .2em;
}
.gtt-join-login .btn-outline-secondary {
    border-color: #fff;
    color: #fff;
    text-decoration: none;
    text-shadow: none;
}
.gtt-join-login .btn-outline-secondary:hover,
.gtt-join-login .btn-outline-secondary:focus {
    background: #fff;
    color: #0b2940;
}

/* v1.4.5 Accessible Tutor registration surface. */
.gtt-registration-shell {
    background: #fff;
    border: 1px solid #d9e2e8;
    border-radius: 16px;
    box-shadow: 0 16px 42px rgba(4, 20, 35, .24);
    color: #172b3a;
    margin: 2rem auto;
    max-width: 780px;
    padding: clamp(1.25rem, 3vw, 2.5rem);
    width: calc(100% - 2rem);
}
.gtt-registration-shell h1,
.gtt-registration-shell h2,
.gtt-registration-shell h3,
.gtt-registration-shell label,
.gtt-registration-shell .form-label,
.gtt-registration-shell .col-form-label {
    color: #172b3a;
}
.gtt-registration-shell .text-muted,
.gtt-registration-shell .form-text {
    color: #4c6273 !important;
}
.gtt-registration-back {
    display: inline-block;
    font-weight: 700;
    margin-bottom: 1.25rem;
}
.gtt-registration-page .login-container,
.gtt-registration-page #region-main {
    max-width: none;
    width: 100%;
}
.gtt-registration-result {
    margin-top: clamp(3.5rem, 10vh, 7rem);
}
.gtt-registration-result .alert {
    margin: 1.25rem 0;
}

/* v1.4.6 Core Parent/Pupil signup reached after policy acknowledgement. */
body#page-login-signup #page {
    min-height: calc(100vh - 70px);
}
body#page-login-signup #page-content {
    margin: 0 auto !important;
    max-width: 100% !important;
    padding: 1rem !important;
    width: 100% !important;
}
body#page-login-signup #region-main {
    background: #fff !important;
    background-image: none !important;
    border: 1px solid #d9e2e8;
    border-radius: 16px;
    box-shadow: 0 16px 42px rgba(4, 20, 35, .16);
    color: #172b3a !important;
    margin: 2rem auto !important;
    max-width: 860px !important;
    padding: clamp(1.25rem, 3vw, 2.5rem) !important;
    width: calc(100% - 2rem) !important;
}
body#page-login-signup .login-container,
body#page-login-signup .login-wrapper {
    background: transparent !important;
    background-image: none !important;
    box-shadow: none !important;
    margin: 0 auto !important;
    max-width: none !important;
    padding: 0 !important;
    width: 100% !important;
}
body#page-login-signup #region-main h1,
body#page-login-signup #region-main h2,
body#page-login-signup #region-main h3,
body#page-login-signup #region-main label,
body#page-login-signup #region-main .form-label,
body#page-login-signup #region-main .col-form-label,
body#page-login-signup #region-main legend {
    color: #172b3a !important;
}
body#page-login-signup #region-main .text-muted,
body#page-login-signup #region-main .form-text,
body#page-login-signup #region-main .fdescription {
    color: #4c6273 !important;
}
body#page-login-signup #region-main .mform {
    margin: 0 auto;
    max-width: 780px;
    width: 100%;
}
body#page-login-signup .login-layout-left {
    display: none !important;
}
body#page-login-signup .login-layout-right {
    flex: 0 0 100% !important;
    max-width: 100% !important;
    width: 100% !important;
}
@media (max-width: 900px) {
    .gtt-join-grid { grid-template-columns: 1fr; }
    .gtt-join-card { min-height: auto; }
    .gtt-join-hero { padding: 1.6rem; }
}

/* v1.2.0 Public Tutor Profiles */
.gtt-public-profile{max-width:900px;margin:0 auto 2rem;padding:2rem;background:#fff;border:1px solid #d5dee5;border-radius:16px;box-shadow:0 8px 28px rgba(15,23,42,.06);color:#172b3a;font-size:1rem;line-height:1.55}
.gtt-profile-photo{width:150px;height:150px;object-fit:cover;border-radius:50%;border:4px solid #fff;box-shadow:0 3px 16px rgba(15,23,42,.18);margin-bottom:1rem}
.gtt-profile-headline{font-size:1.25rem;color:#203b50;margin-top:-.25rem}
.gtt-profile-chips{display:inline-block;margin:.4rem 0 1.25rem;padding:.5rem .85rem;border-radius:999px;background:#f1f5f9;font-weight:600;color:#0f3d4a}
.gtt-public-profile h4{margin-top:1.5rem;color:#0f2942}

/* v1.3.0 Public Tutor Directory & Booking Integration */
.gtt-directory-shell{max-width:1180px;margin:0 auto 3rem}
.gtt-directory-intro{max-width:760px;color:#52697a;font-size:1.05rem;margin-bottom:1.25rem}
.gtt-directory-filters{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) auto;gap:1rem;align-items:end;padding:1.25rem;margin-bottom:1.5rem;background:#fff;border:1px solid #d9e2e8;border-radius:14px}
.gtt-filter-field{display:flex;flex-direction:column;gap:.35rem}.gtt-filter-field label{font-weight:700;color:#0b2940}
.gtt-filter-actions{display:flex;gap:.5rem;flex-wrap:wrap}
.gtt-directory-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.25rem}
.gtt-directory-card{display:flex;flex-direction:column;align-items:flex-start;padding:1.5rem;background:#fff;border:1px solid #d9e2e8;border-radius:16px;box-shadow:0 6px 22px rgba(9,31,49,.06)}
.gtt-directory-photo,.gtt-directory-avatar{width:104px;height:104px;border-radius:50%;margin-bottom:1rem}
.gtt-directory-photo{object-fit:cover;border:3px solid #fff;box-shadow:0 3px 14px rgba(15,23,42,.18)}
.gtt-directory-avatar{display:flex;align-items:center;justify-content:center;background:#e8f3f3;color:#0f5f67;font-size:1.6rem;font-weight:800}
.gtt-directory-name{font-size:1.35rem;color:#0b2940;margin:0 0 .25rem}
.gtt-directory-headline{font-size:1rem;color:#29465a;margin:0 0 .75rem}
.gtt-directory-chips{padding:.45rem .7rem;border-radius:999px;background:#eef6f6;color:#0f3d4a;font-size:.85rem;font-weight:600;margin-bottom:.85rem}
.gtt-directory-summary{color:#203545;flex:1}.gtt-directory-formats{font-weight:700;color:#0b5962}
.gtt-availability-list{display:grid;gap:.75rem}.gtt-availability-item{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:.2rem 1rem;align-items:center;padding:1rem;border:1px solid #d9e2e8;border-radius:10px}
.gtt-availability-item strong,.gtt-availability-meta{display:block}.gtt-availability-item strong{color:#0b2940;font-size:1.02rem}.gtt-availability-meta{grid-column:1;color:#29465a;font-size:.98rem;font-weight:500}.gtt-availability-item .btn{grid-column:2;grid-row:1/span 3;background:#b78a43;border-color:#9a7133;color:#071e33;font-weight:700}
.gtt-public-profile .btn-outline-primary{border:2px solid #0f5f67;color:#0b4f57;background:#fff;font-weight:700}.gtt-public-profile .btn-outline-primary:hover,.gtt-public-profile .btn-outline-primary:focus{background:#0f5f67;color:#fff;border-color:#0f5f67}
.gtt-availability-note{color:#29465a;font-size:.95rem;font-weight:600}
.gtt-booking-account-notice{max-width:800px;margin:2rem auto;padding:1.5rem;background:#fff;border:1px solid #d5dee5;border-radius:14px}
@media(max-width:900px){.gtt-directory-filters{grid-template-columns:repeat(2,minmax(0,1fr))}.gtt-directory-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){.gtt-directory-filters,.gtt-directory-grid{grid-template-columns:1fr}.gtt-availability-item{grid-template-columns:1fr}.gtt-availability-item .btn{grid-column:1;grid-row:auto;margin-top:.5rem}}
