/* css/tutor-app.css - the redesigned tutor area (profile wizard, dashboard).
   Loaded only by pages built on tutor-area/inc/app-shell.php, which do NOT
   load the purchased theme, so these rules need no specificity games.
   Colours, spacing and radii come from tokens.css; nothing is re-declared. */

/* ---------------------------------------------------------------- frame */
.tt-app{ margin:0; background:var(--surface); color:var(--ink-900); font:16px/1.55 var(--font-body);
  -webkit-font-smoothing:antialiased; }
.tt-app *,.tt-app *::before,.tt-app *::after{ box-sizing:border-box; }
.tt-app a:not(.tt-btn){ color:var(--blue-700); }   /* not buttons: .tt-btn sets its own colour */
.tt-app img{ max-width:100%; }
.tt-app .tt-icon{ flex:none; vertical-align:-3px; }
.tt-app-skip{ position:absolute; left:-9999px; }
.tt-app-skip:focus{ left:var(--sp-4); top:var(--sp-2); z-index:10; background:var(--white); padding:var(--sp-2) var(--sp-3); }
.tt-app :focus-visible{ outline:3px solid var(--blue-600); outline-offset:2px; }

.tt-app-top{ display:flex; align-items:center; justify-content:space-between; gap:var(--sp-3);
  padding:var(--sp-3) var(--sp-4); background:var(--white); border-bottom:1px solid var(--line); }
.tt-app-top__logo img{ display:block; height:37px; width:auto; }
.tt-app-top__actions{ display:flex; gap:var(--sp-1); }
.tt-app-top__actions .tt-btn{ gap:6px; }
@media (max-width:480px){ /* icon-only, label kept for screen readers */
  .tt-app-top__actions .tt-btn span{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; } }

.tt-app-foot{ padding:var(--sp-6) var(--sp-4); text-align:center; color:var(--ink-500); font-size:14px; }

/* ---------------------------------------------------------------- profile page */
.tt-pf{ max-width:880px; margin:0 auto; padding:var(--sp-6) var(--sp-4) 0; }
.tt-pf__title{ margin:0; font:800 28px/1.2 var(--font-display); color:var(--navy-900); letter-spacing:-.01em; }
.tt-pf__lede{ margin:var(--sp-2) 0 0; color:var(--ink-700); }
@media (max-width:600px){ .tt-pf{ padding-top:var(--sp-5); } .tt-pf__title{ font-size:23px; } }

/* progress */
.tt-pf-steps{ display:grid; grid-template-columns:repeat(4,1fr); gap:var(--sp-2); list-style:none;
  margin:var(--sp-5) 0; padding:0; counter-reset:none; }
.tt-pf-steps__item{ position:relative; }
.tt-pf-steps__item > a,.tt-pf-steps__item > span:first-child{ text-decoration:none; }
.tt-pf-steps__item a,.tt-pf-steps__item{ display:flex; flex-direction:column; align-items:flex-start; gap:6px; color:var(--ink-500); }
.tt-pf-steps__item::before{ content:""; display:block; width:100%; height:4px; border-radius:var(--r-pill);
  background:var(--line); margin-bottom:var(--sp-2); }
.tt-pf-steps__item.is-done::before,.tt-pf-steps__item.is-current::before{ background:var(--blue-600); }
.tt-pf-steps__dot{ display:inline-flex; align-items:center; justify-content:center; width:26px; height:26px;
  border-radius:50%; font:700 13px/1 var(--font-display); background:var(--white); border:1.5px solid var(--line-control); color:var(--ink-700); }
.tt-pf-steps__item.is-current .tt-pf-steps__dot{ background:var(--blue-600); border-color:var(--blue-600); color:var(--white); }
.tt-pf-steps__item.is-done .tt-pf-steps__dot{ background:var(--green-50); border-color:var(--green-700); color:var(--green-700); }
.tt-pf-steps__label{ font-size:14px; font-weight:600; line-height:1.3; }
.tt-pf-steps__item.is-current .tt-pf-steps__label{ color:var(--navy-900); }
.tt-pf-steps__item a:hover .tt-pf-steps__label{ color:var(--blue-700); text-decoration:underline; }
@media (max-width:600px){
  .tt-pf-steps__label{ font-size:12px; }
  .tt-pf-steps__item:not(.is-current) .tt-pf-steps__label{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
}

/* tabs (edit mode) */
.tt-pf-tabs{ display:flex; gap:var(--sp-1); margin:var(--sp-5) 0; border-bottom:1px solid var(--line); overflow-x:auto; }
.tt-pf-tabs__tab{ padding:var(--sp-3) var(--sp-4); font-weight:600; color:var(--ink-700) !important; text-decoration:none;
  border-bottom:3px solid transparent; margin-bottom:-1px; white-space:nowrap; }
.tt-pf-tabs__tab:hover{ color:var(--blue-700) !important; }
.tt-pf-tabs__tab.is-active{ color:var(--navy-900) !important; border-bottom-color:var(--blue-600); }

/* alerts */
.tt-pf-alert{ display:flex; gap:var(--sp-3); align-items:flex-start; padding:var(--sp-3) var(--sp-4);
  border-radius:var(--r); margin:0 0 var(--sp-4); border:1px solid; }
.tt-pf-alert p{ margin:0; }
.tt-pf-alert ul{ margin:var(--sp-1) 0 0; padding-left:18px; }
.tt-pf-alert .tt-icon{ margin-top:3px; }
.tt-pf-alert--ok{ background:var(--green-50); border-color:#A7DDBF; color:var(--green-700); }
.tt-pf-alert--err{ background:#FDF0F0; border-color:#F2B8B5; color:#9B1C1C; }
.tt-pf-alert--err a{ color:#9B1C1C; }
.tt-pf-alert--warn{ background:#FFF7E8; border-color:#F5D08A; color:#7A4A06; }

/* form card and sections */
.tt-pf-form{ background:var(--white); border:1px solid var(--line); border-radius:var(--r-lg); box-shadow:var(--shadow-card); }
.tt-pf-sec{ padding:var(--sp-5); border-bottom:1px solid var(--line); }
.tt-pf-sec:last-of-type{ border-bottom:0; }
.tt-pf-sec__title{ display:flex; align-items:center; gap:var(--sp-2); margin:0 0 var(--sp-4);
  font:700 19px/1.3 var(--font-display); color:var(--navy-900); }
.tt-pf-sec__title .tt-icon{ color:var(--blue-600); }
.tt-pf-note{ margin:calc(-1 * var(--sp-2)) 0 var(--sp-4); color:var(--ink-700); font-size:15px; }
.tt-pf-legacy{ margin:0 0 var(--sp-4); padding:var(--sp-2) var(--sp-3); background:var(--blue-50);
  border-radius:var(--r-sm); color:var(--ink-700); font-size:14px; }
.tt-pf-grid{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:0 var(--sp-4); }
@media (max-width:640px){ .tt-pf-grid{ grid-template-columns:1fr; } .tt-pf-sec{ padding:var(--sp-4); } }

/* fields */
.tt-pf-field{ margin:0 0 var(--sp-4); min-width:0; }
fieldset.tt-pf-field,.tt-pf-addr{ border:0; padding:0; margin-left:0; margin-right:0; }
.tt-pf-label{ display:block; margin:0 0 6px; padding:0; font-weight:600; font-size:15px; color:var(--ink-900); }
.tt-pf-opt{ font-weight:400; color:var(--ink-500); }
.tt-pf-input{ display:block; width:100%; min-height:48px; padding:10px 14px; font:inherit; color:var(--ink-900);
  background:var(--white); border:1px solid var(--line-control); border-radius:var(--r-sm); }
.tt-pf-input:focus{ outline:none; border-color:var(--blue-600); box-shadow:0 0 0 3px rgba(21,101,216,.2); }
.tt-pf-input[aria-invalid="true"]{ border-color:#B42318; }
select.tt-pf-input{ appearance:none; padding-right:40px; background:var(--white) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='20' height='20' viewBox='0 0 24 24' fill='none' stroke='%23334155' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E") no-repeat right 12px center; }
.tt-pf-textarea{ min-height:96px; resize:vertical; }
.tt-pf-hint{ margin:6px 0 0; font-size:14px; color:var(--ink-500); }
.tt-pf-err{ margin:6px 0 0; font-size:14px; font-weight:600; color:#B42318; }
.tt-pf-addr{ margin-bottom:var(--sp-2); }
.tt-pf-addr[hidden],[data-pf-count][hidden]{ display:none; }

/* radios / checkboxes */
.tt-pf-choices{ display:flex; flex-wrap:wrap; gap:var(--sp-2); }
.tt-pf-choice{ display:inline-flex; align-items:center; gap:var(--sp-2); min-height:44px; padding:8px 14px;
  border:1px solid var(--line-control); border-radius:var(--r-sm); background:var(--white); cursor:pointer; font-size:15px; }
.tt-pf-choice input{ width:18px; height:18px; margin:0; accent-color:var(--blue-600); flex:none; }
.tt-pf-choice:has(input:checked){ border-color:var(--blue-600); background:var(--blue-50); }
.tt-pf-choice:has(input:focus-visible){ outline:3px solid var(--blue-600); outline-offset:2px; }
.tt-pf-choice--solo{ border:0; padding-left:0; background:none !important; margin-bottom:var(--sp-2); }
.tt-pf-group--cols .tt-pf-choices{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); }
@media (max-width:640px){ .tt-pf-group--cols .tt-pf-choices{ grid-template-columns:1fr; } }
.tt-pf-group--chips .tt-pf-choice{ border-radius:var(--r-pill); min-height:40px; padding:6px 14px; }

/* photo */
.tt-pf-photo{ display:flex; gap:var(--sp-4); align-items:flex-start; margin:0 0 var(--sp-4); }
.tt-pf-photo__img{ width:72px; height:72px; border-radius:50%; object-fit:cover; background:var(--blue-50); border:1px solid var(--line); flex:none; }
.tt-pf-file{ font:inherit; font-size:15px; max-width:100%; }

/* category tiles (step 2) */
.tt-pf-cats{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--sp-3); align-items:start; }
@media (max-width:640px){ .tt-pf-cats{ grid-template-columns:1fr; } }
.tt-pf-cat{ border:1px solid var(--line-control); border-radius:var(--r); background:var(--white); }
.tt-pf-cat[open]{ border-color:var(--blue-600); box-shadow:var(--shadow-sm); }
.tt-pf-cat__head{ display:flex; align-items:center; gap:var(--sp-2); min-height:52px; padding:var(--sp-2) var(--sp-4);
  cursor:pointer; list-style:none; font-weight:600; color:var(--navy-900); }
.tt-pf-cat__head::-webkit-details-marker{ display:none; }
.tt-pf-cat__name{ flex:1; }
.tt-pf-cat__count{ min-width:24px; height:24px; padding:0 7px; border-radius:var(--r-pill); background:var(--blue-600);
  color:var(--white); font:700 13px/24px var(--font-display); text-align:center; }
.tt-pf-cat__chev{ color:var(--ink-500); transition:transform var(--t) var(--ease); }
.tt-pf-cat[open] .tt-pf-cat__chev{ transform:rotate(180deg); }
.tt-pf-cat__body{ display:flex; flex-wrap:wrap; gap:var(--sp-2); padding:0 var(--sp-4) var(--sp-4); }
.tt-pf-cat__body .tt-pf-choice{ min-height:40px; padding:6px 12px; font-size:14px; }
[data-pf-boards][data-pf-idle].is-js{ display:none; }

/* actions */
.tt-pf-actions{ display:flex; justify-content:flex-end; gap:var(--sp-3); padding:var(--sp-4) var(--sp-5);
  background:var(--surface); border-top:1px solid var(--line); border-radius:0 0 var(--r-lg) var(--r-lg);
  position:sticky; bottom:0; }
@media (max-width:640px){ .tt-pf-actions{ padding:var(--sp-3) var(--sp-4); } .tt-pf-actions .tt-btn{ flex:1; } }

@media (prefers-reduced-motion:reduce){ .tt-pf-cat__chev{ transition:none; } }

/* [hidden] must win over every display rule here (.tt-btn is inline-flex). */
.tt-app [hidden]{ display:none !important; }

/* location step */
.tt-pf-place{ position:relative; }
.tt-pf-map{ margin-top:var(--sp-2); }
.tt-pf-map__bar{ display:flex; align-items:center; justify-content:space-between; gap:var(--sp-3); flex-wrap:wrap; margin-bottom:var(--sp-2); }
.tt-pf-map__bar .tt-pf-hint{ margin:0; }
.tt-pf-map__bar .tt-btn{ gap:6px; }
.tt-pf-map__canvas{ height:clamp(260px, 48vh, 420px); border-radius:var(--r); border:1px solid var(--line-control); background:var(--blue-50); }

/* verify step */
.tt-pf-otp{ display:flex; align-items:flex-end; gap:var(--sp-3); flex-wrap:wrap; margin-bottom:var(--sp-3); }
.tt-pf-otp .tt-pf-field{ margin:0; flex:0 1 220px; }
.tt-pf-otp .tt-pf-input{ font:700 20px/1 var(--font-display); letter-spacing:.3em; }
.tt-pf-otp-send .tt-btn{ gap:6px; }
.tt-pf-actions form{ margin:0; display:contents; }

/* ---------------------------------------------------------------- dashboard frame */
.tt-sr{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
.tt-app-top--dash{ position:sticky; top:0; z-index:20; }
.tt-app-top--dash .tt-app-top__logo{ margin-right:auto; }
.tt-app-top__menu{ padding:0 10px; }
.tt-dash{ display:grid; grid-template-columns:260px minmax(0,1fr); max-width:1280px; margin:0 auto; }
.tt-dash__side{ position:sticky; top:62px; align-self:start; height:calc(100vh - 62px); overflow-y:auto;
  padding:var(--sp-5) var(--sp-4); border-right:1px solid var(--line); background:var(--white); }
.tt-dash__main{ padding:var(--sp-6) var(--sp-5) var(--sp-7); min-width:0; }
.tt-dash-me{ display:flex; gap:var(--sp-3); align-items:center; }
.tt-dash-me__photo{ width:56px; height:56px; border-radius:50%; object-fit:cover; background:var(--blue-50); border:1px solid var(--line); }
.tt-dash-me__name{ margin:0; font:700 16px/1.3 var(--font-display); color:var(--navy-900); overflow-wrap:anywhere; }
.tt-dash-me__id{ margin:2px 0 0; font-size:13px; color:var(--ink-500); }
.tt-dash-me__plan{ display:flex; align-items:center; gap:6px; margin:var(--sp-4) 0; padding:var(--sp-2) var(--sp-3);
  border-radius:var(--r-sm); background:var(--green-50); color:var(--green-700); font-size:14px; font-weight:600; text-decoration:none; }
.tt-dash-me__plan--none{ background:var(--blue-50); color:var(--blue-700) !important; }
.tt-dash-nav{ list-style:none; margin:0; padding:0; }
.tt-dash-nav__link{ display:flex; align-items:center; gap:var(--sp-3); min-height:44px; padding:0 var(--sp-3); border-radius:var(--r-sm);
  color:var(--ink-700) !important; text-decoration:none; font-weight:500; }
.tt-dash-nav__link:hover{ background:var(--blue-50); color:var(--blue-700) !important; }
.tt-dash-nav__link.is-active{ background:var(--blue-50); color:var(--blue-700) !important; font-weight:700; }
.tt-dash-nav__link .tt-icon{ color:currentColor; }

@media (max-width:959px){
  .tt-dash{ grid-template-columns:1fr; }
  .tt-dash__side{ position:static; height:auto; border-right:0; border-bottom:1px solid var(--line); }
  /* With JS the side becomes a drawer; without it, it stays in the flow above the content. */
  .tt-js .tt-dash__side{ position:fixed; top:62px; left:0; z-index:30; width:min(320px, 88vw); height:calc(100dvh - 62px);
    transform:translateX(-105%); transition:transform var(--t) var(--ease); box-shadow:var(--shadow-float); }
  .tt-js .tt-dash__side:not(.is-open){ visibility:hidden; }   /* off-screen links must not take Tab focus */
  .tt-js .tt-dash__side.is-open{ transform:none; }
  .tt-dash-locked, .tt-dash-locked body{ overflow:hidden; }
  .tt-dash__main{ padding:var(--sp-5) var(--sp-4) var(--sp-7); }
}
@media (min-width:960px){ .tt-app-top__menu{ display:none !important; } }
@media (prefers-reduced-motion:reduce){ .tt-js .tt-dash__side{ transition:none; } }

/* ---------------------------------------------------------------- dashboard content */
.tt-dash-head{ margin-bottom:var(--sp-5); }
.tt-dash-head__title{ margin:0; font:800 28px/1.2 var(--font-display); color:var(--navy-900); }
.tt-dash-head__lede{ margin:var(--sp-1) 0 0; color:var(--ink-700); }
.tt-dash-cta{ display:flex; align-items:center; justify-content:space-between; gap:var(--sp-4); flex-wrap:wrap;
  padding:var(--sp-5); margin-bottom:var(--sp-4); border-radius:var(--r-lg); background:var(--navy-900); color:var(--white); }
.tt-dash-cta__title{ margin:0 0 var(--sp-1); font:700 20px/1.3 var(--font-display); color:var(--white); }
.tt-dash-cta p{ margin:0; color:#D6E2F5; }
.tt-dash-status{ display:flex; gap:var(--sp-3); align-items:flex-start; padding:var(--sp-4) var(--sp-5); margin-bottom:var(--sp-4);
  border-radius:var(--r-lg); border:1px solid; }
.tt-dash-status h2{ margin:0; font:700 18px/1.3 var(--font-display); }
.tt-dash-status p{ margin:var(--sp-1) 0 0; }
.tt-dash-status--live{ background:var(--green-50); border-color:#A7DDBF; color:var(--green-700); }
.tt-dash-status--live h2{ color:var(--green-700); }
.tt-dash-status--review{ background:#FFF7E8; border-color:#F5D08A; color:#7A4A06; }
.tt-dash-status--review h2{ color:#7A4A06; }
.tt-dash-status .tt-icon{ margin-top:2px; }

.tt-dash-kpis{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--sp-4); margin-bottom:var(--sp-4); }
@media (max-width:720px){ .tt-dash-kpis{ grid-template-columns:1fr; } }
.tt-dash-kpi{ padding:var(--sp-4) var(--sp-5); background:var(--white); border:1px solid var(--line); border-radius:var(--r-lg); box-shadow:var(--shadow-sm); }
.tt-dash-kpi__label{ margin:0; font-size:14px; font-weight:600; color:var(--ink-700); }
.tt-dash-kpi__value{ margin:var(--sp-1) 0; font:800 32px/1.1 var(--font-display); color:var(--navy-900); }
.tt-dash-kpi__note{ margin:0; font-size:14px; color:var(--ink-500); }
.tt-dash-bar{ height:8px; border-radius:var(--r-pill); background:var(--line); overflow:hidden; margin-top:var(--sp-2); }
.tt-dash-bar span{ display:block; height:100%; background:var(--green-700); border-radius:inherit; }

.tt-dash-cols{ display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:var(--sp-4); margin-bottom:var(--sp-4); }
@media (max-width:1100px){ .tt-dash-cols{ grid-template-columns:1fr; } }
.tt-dash-card{ padding:var(--sp-5); background:var(--white); border:1px solid var(--line); border-radius:var(--r-lg); box-shadow:var(--shadow-sm); }
.tt-dash-card__head{ display:flex; align-items:baseline; justify-content:space-between; gap:var(--sp-3); }
.tt-dash-card__title{ margin:0 0 var(--sp-4); font:700 18px/1.3 var(--font-display); color:var(--navy-900); }
.tt-dash-todo{ list-style:none; margin:0; padding:0; }
.tt-dash-todo li{ display:flex; align-items:center; gap:var(--sp-2); min-height:40px; border-bottom:1px solid var(--line); }
.tt-dash-todo li:last-child{ border-bottom:0; }
.tt-dash-todo li .tt-icon{ color:#B45309; }
.tt-dash-todo li.is-done{ color:var(--ink-500); }
.tt-dash-todo li.is-done .tt-icon{ color:var(--green-700); }
.tt-dash-todo a{ font-weight:600; }
.tt-dash-tiles{ display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:var(--sp-3); }
@media (max-width:520px){ .tt-dash-tiles{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
.tt-dash-tile{ display:flex; flex-direction:column; align-items:flex-start; gap:var(--sp-2); min-height:88px; padding:var(--sp-3);
  border:1px solid var(--line-control); border-radius:var(--r); color:var(--navy-900) !important; text-decoration:none; font-weight:600; font-size:15px; }
.tt-dash-tile .tt-icon{ color:var(--blue-600); }
.tt-dash-tile:hover{ border-color:var(--blue-600); background:var(--blue-50); }
.tt-dash-empty{ margin:0; color:var(--ink-700); }
.tt-dash-enq{ list-style:none; margin:0; padding:0; }
.tt-dash-enq__item{ display:flex; align-items:center; justify-content:space-between; gap:var(--sp-3); padding:var(--sp-3) 0; border-bottom:1px solid var(--line); }
.tt-dash-enq__item:last-child{ border-bottom:0; }
.tt-dash-enq__main{ min-width:0; }
.tt-dash-enq__what{ margin:0; font-weight:700; color:var(--navy-900); overflow-wrap:anywhere; }
.tt-dash-enq__meta{ margin:2px 0 0; font-size:14px; color:var(--ink-700); overflow-wrap:anywhere; }

/* unlocked contacts */
.tt-dash-filter{ max-width:420px; }
.tt-dash-contacts{ list-style:none; margin:0; padding:0; display:grid; gap:var(--sp-3); }
.tt-dash-contact{ display:grid; grid-template-columns:minmax(0,1fr) auto; gap:var(--sp-2) var(--sp-4); align-items:center; padding:var(--sp-4); }
.tt-dash-contact__name{ margin:0; font:700 17px/1.3 var(--font-display); color:var(--navy-900); overflow-wrap:anywhere; }
.tt-dash-contact__acts{ display:flex; gap:var(--sp-2); flex-wrap:wrap; justify-content:flex-end; }
.tt-dash-contact__acts .tt-btn{ gap:6px; }
.tt-dash-contact__mail{ grid-column:1 / -1; margin:0; }
@media (max-width:560px){ .tt-dash-contact{ grid-template-columns:1fr; } .tt-dash-contact__acts{ justify-content:flex-start; } }
.tt-pf-static{ margin:0; min-height:48px; display:flex; align-items:center; color:var(--ink-700); overflow-wrap:anywhere; }
.tt-dash-gap{ margin-top:var(--sp-5); }

/* ---------------------------------------------------------------- CRM embed (admin-interface/tutor-edit.php) */
.tt-app--embed{ background:transparent; font-size:15px; }
.tt-app--embed .tt-pf__title{ font-size:24px; }
.tt-crm-tutor-head{ display:flex; justify-content:space-between; gap:var(--sp-4); flex-wrap:wrap; align-items:flex-start; margin-bottom:var(--sp-2); }
.tt-crm-badges{ display:flex; flex-wrap:wrap; gap:var(--sp-2); list-style:none; margin:0; padding:0; }
.tt-crm-badge{ padding:4px 10px; border-radius:var(--r-pill); font-size:13px; font-weight:600; border:1px solid; }
.tt-crm-badge--ok{ background:var(--green-50); color:var(--green-700); border-color:#A7DDBF; }
.tt-crm-badge--warn{ background:#FFF7E8; color:#7A4A06; border-color:#F5D08A; }
.tt-crm-badge--info{ background:var(--blue-50); color:var(--blue-700); border-color:var(--blue-100); }
.tt-crm-badge--muted{ background:var(--surface); color:var(--ink-700); border-color:var(--line); }
.tt-crm-badge--err{ background:#FDF0F0; color:#9B1C1C; border-color:#F2B8B5; }
.tt-app--embed [hidden]{ display:none !important; }

/* ---------------------------------------------------------------- chat */
.tt-dash-nav__count{ margin-left:auto; min-width:22px; height:22px; padding:0 6px; border-radius:var(--r-pill); background:var(--blue-600);
  color:var(--white); font:700 12px/22px var(--font-display); text-align:center; }
.tt-chat{ display:grid; grid-template-columns:300px minmax(0,1fr); min-height:520px; background:var(--white);
  border:1px solid var(--line); border-radius:var(--r-lg); box-shadow:var(--shadow-sm); overflow:hidden; }
.tt-chat__list{ border-right:1px solid var(--line); overflow-y:auto; max-height:70vh; }
.tt-chat__list ul{ list-style:none; margin:0; padding:0; }
.tt-chat__list .tt-dash-empty{ padding:var(--sp-4); }
.tt-chat__item{ display:grid; gap:2px; padding:var(--sp-3) var(--sp-4); border-bottom:1px solid var(--line); text-decoration:none; color:var(--ink-900) !important; }
.tt-chat__item:hover,.tt-chat__item.is-active{ background:var(--blue-50); }
.tt-chat__who{ display:flex; align-items:center; gap:var(--sp-2); font-weight:700; color:var(--navy-900); }
.tt-chat__sub{ margin:0; font-size:13px; color:var(--ink-500); overflow-wrap:anywhere; }
.tt-chat__last{ font-size:14px; color:var(--ink-700); overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.tt-chat__last.is-blur{ filter:blur(4px); user-select:none; }
.tt-chat__pane{ display:flex; flex-direction:column; min-width:0; }
.tt-chat__hint{ margin:auto; display:flex; align-items:center; gap:var(--sp-2); }
.tt-chat__head{ display:flex; align-items:center; gap:var(--sp-3); padding:var(--sp-3) var(--sp-4); border-bottom:1px solid var(--line); }
.tt-chat__head > div:nth-child(2){ flex:1; min-width:0; }
.tt-chat__title{ margin:0; font:700 17px/1.3 var(--font-display); color:var(--navy-900); }
.tt-chat__tools form{ display:flex; gap:var(--sp-1); flex-wrap:wrap; }
.tt-chat__tools .tt-btn{ gap:4px; }
.tt-chat__back{ display:none; }
.tt-chat__msgs{ list-style:none; margin:0; padding:var(--sp-4); flex:1; overflow-y:auto; max-height:56vh; min-height:280px;
  display:flex; flex-direction:column; gap:var(--sp-2); background:var(--surface); }
.tt-chat__msg{ max-width:78%; align-self:flex-start; padding:var(--sp-2) var(--sp-3); border-radius:var(--r) var(--r) var(--r) 4px;
  background:var(--white); border:1px solid var(--line); }
.tt-chat__msg.is-mine{ align-self:flex-end; background:var(--blue-50); border-color:var(--blue-100); border-radius:var(--r) var(--r) 4px var(--r); }
.tt-chat__msg p{ margin:0; overflow-wrap:anywhere; }
.tt-chat__msg.is-blur p{ filter:blur(5px); user-select:none; }
.tt-chat__time{ display:block; margin-top:2px; font-size:12px; color:var(--ink-500); }
.tt-chat__compose{ display:flex; gap:var(--sp-2); align-items:flex-end; padding:var(--sp-3) var(--sp-4); border-top:1px solid var(--line); }
.tt-chat__compose textarea{ min-height:48px; resize:vertical; }
.tt-chat__locked{ display:flex; align-items:center; gap:var(--sp-3); flex-wrap:wrap; padding:var(--sp-3) var(--sp-4); border-top:1px solid var(--line); background:#FFF7E8; color:#7A4A06; }
.tt-chat__locked > div{ flex:1; min-width:180px; }
.tt-chat__locked p{ margin:0; }
.tt-chat__locked form{ margin:0; }
.tt-chat__note{ display:flex; align-items:center; gap:var(--sp-2); margin:0; padding:var(--sp-3) var(--sp-4); border-top:1px solid var(--line); color:var(--ink-700); }
@media (max-width:760px){
  .tt-chat{ grid-template-columns:1fr; }
  .tt-chat__list{ border-right:0; max-height:none; }
  .tt-chat.has-thread .tt-chat__list{ display:none; }
  .tt-chat:not(.has-thread) .tt-chat__pane{ display:none; }
  .tt-chat__back{ display:inline-flex; }
  .tt-chat__msg{ max-width:88%; }
}
.tt-pf--wide{ max-width:1100px; }

/* ---------------------------------------------------------------- find a tutor (/find-tutor) */
.tt-ft{ padding:var(--sp-6) var(--sp-4) 0; }
.tt-ft [hidden]{ display:none !important; }   /* every class below sets display */
.tt-ft__card{ max-width:720px; margin:0 auto; padding:var(--sp-6); background:var(--white); border:1px solid var(--line);
  border-radius:var(--r-lg); box-shadow:var(--shadow-card); }
.tt-ft__title{ margin:0; font:800 28px/1.2 var(--font-display); color:var(--navy-900); letter-spacing:-.01em; }
.tt-ft__lede{ margin:var(--sp-2) 0 var(--sp-5); color:var(--ink-700); }
.tt-ft-progress{ list-style:none; margin:0 0 var(--sp-2); padding:0; height:6px; border-radius:var(--r-pill); background:var(--blue-50); overflow:hidden; }
.tt-ft-progress li{ height:100%; }
.tt-ft-progress span{ display:block; height:100%; width:10%; background:var(--blue-600); border-radius:inherit; transition:width var(--t) var(--ease); }
.tt-ft-count{ margin:0 0 var(--sp-4); font-size:14px; font-weight:600; color:var(--ink-500); }
.tt-ft-step{ margin:0 0 var(--sp-6); }
.tt-ft-form.is-stepped .tt-ft-step{ margin-bottom:var(--sp-4); }
.tt-ft-step__title{ margin:0 0 var(--sp-4); font:700 21px/1.3 var(--font-display); color:var(--navy-900); }
.tt-ft-step__title:focus{ outline:none; }
.tt-ft-group{ border:0; margin:0 0 var(--sp-4); padding:0; min-width:0; }
.tt-ft-group legend{ padding:0; margin:0 0 var(--sp-2); font-size:13px; font-weight:700; letter-spacing:.04em; text-transform:uppercase; color:var(--ink-500); }
.tt-ft-list{ display:grid; gap:var(--sp-2); }
.tt-ft-list--grid{ grid-template-columns:repeat(2,minmax(0,1fr)); }
.tt-ft-list--3{ grid-template-columns:repeat(3,minmax(0,1fr)); }
@media (max-width:520px){ .tt-ft-list--grid{ grid-template-columns:1fr; } .tt-ft-list--3{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
.tt-ft-opt{ display:flex; align-items:center; gap:var(--sp-3); min-height:52px; padding:10px var(--sp-4); background:var(--white);
  border:1px solid var(--line-control); border-radius:var(--r-sm); cursor:pointer; font-size:16px; color:var(--ink-900); }
.tt-ft-opt input{ width:20px; height:20px; margin:0; flex:none; accent-color:var(--blue-600); }
.tt-ft-opt:hover{ border-color:var(--blue-600); }
.tt-ft-opt:has(input:checked){ border-color:var(--blue-600); background:var(--blue-50); box-shadow:inset 0 0 0 1px var(--blue-600); }
.tt-ft-opt:has(input:focus-visible){ outline:3px solid var(--blue-600); outline-offset:2px; }
.tt-ft-opt span{ display:flex; flex-direction:column; gap:2px; }
.tt-ft-opt small{ font-size:14px; color:var(--ink-500); }
.tt-ft-board{ margin-top:var(--sp-4); max-width:360px; }
.tt-ft-or{ display:flex; align-items:center; gap:var(--sp-3); margin:var(--sp-2) 0 var(--sp-3); color:var(--ink-500); font-size:14px; }
.tt-ft-or::before,.tt-ft-or::after{ content:""; flex:1; height:1px; background:var(--line); }
.tt-ft-calc{ margin-top:var(--sp-4); padding:var(--sp-4); background:var(--surface); border:1px solid var(--line); border-radius:var(--r); }
.tt-ft-calc__title{ display:flex; align-items:center; gap:var(--sp-2); margin:0 0 var(--sp-3); font-weight:700; color:var(--navy-900); }
.tt-ft-calc__row{ display:grid; gap:6px; margin-bottom:var(--sp-3); }
.tt-ft-calc__row label{ display:flex; justify-content:space-between; font-weight:600; font-size:15px; }
.tt-ft-calc__row input[type=range]{ width:100%; accent-color:var(--blue-600); }
.tt-ft-calc__row select{ max-width:200px; }
.tt-ft-calc__sum{ display:flex; flex-wrap:wrap; align-items:center; gap:var(--sp-3); margin:0 0 var(--sp-3); font-weight:600; color:var(--navy-900); }
.tt-ft-nav{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:var(--sp-3); padding-top:var(--sp-4); border-top:1px solid var(--line); }
.tt-ft-nav [data-ft-next],.tt-ft-nav [data-ft-submit]{ margin-left:auto; }
@media (max-width:520px){ .tt-ft__card{ padding:var(--sp-5) var(--sp-4); } .tt-ft__title{ font-size:23px; } .tt-ft-nav .tt-btn{ flex:1; } }
.tt-ft-otp__form{ max-width:360px; }
.tt-ft-otp__more{ display:flex; flex-wrap:wrap; gap:var(--sp-2); margin-top:var(--sp-4); }
.tt-ft-otp__more form{ margin:0; }
.tt-ft-done{ text-align:center; }
.tt-ft-done__ico{ display:inline-flex; align-items:center; justify-content:center; width:56px; height:56px; border-radius:50%;
  background:var(--green-50); color:var(--green-700); }
.tt-ft-done h2{ margin:var(--sp-3) 0 var(--sp-2); font:800 24px/1.25 var(--font-display); color:var(--navy-900); }
.tt-ft-done .tt-ft-nav{ justify-content:center; border-top:0; }
.tt-dash-me__initial{ display:inline-flex; align-items:center; justify-content:center; font:800 22px/1 var(--font-display); color:var(--blue-700); }
.tt-ft-opt > .tt-icon{ color:var(--blue-700); }

/* ---------------------------------------------------------------- student area */
.tt-stu-cards{ list-style:none; margin:0; padding:0; display:grid; gap:var(--sp-3); }
.tt-stu-card{ display:grid; grid-template-columns:64px minmax(0,1fr) auto; gap:var(--sp-3) var(--sp-4); align-items:start;
  padding:var(--sp-4); background:var(--white); border:1px solid var(--line); border-radius:var(--r-lg); }
.tt-stu-card__photo{ width:64px; height:64px; border-radius:50%; object-fit:cover; background:var(--blue-50); border:1px solid var(--line); }
.tt-stu-card__name{ margin:0; font:700 17px/1.3 var(--font-display); }
.tt-stu-card__name a{ color:var(--navy-900) !important; text-decoration:none; }
.tt-stu-card__name a:hover{ text-decoration:underline; }
.tt-stu-card__rate{ margin:2px 0 0; font-weight:700; color:var(--amber-600); font-size:14px; }
.tt-stu-card__rate span{ font-weight:400; color:var(--ink-500); }
.tt-stu-card__meta{ margin:4px 0 0; font-size:14px; color:var(--ink-700); overflow-wrap:anywhere; }
.tt-stu-card__acts{ display:flex; flex-direction:column; gap:var(--sp-2); align-items:stretch; }
.tt-stu-card__acts form{ margin:0; }
.tt-stu-card__acts .tt-btn{ width:100%; gap:6px; justify-content:center; }
.tt-stu-card__acts .is-on{ color:#B42318; border-color:#F2B8B5; }
@media (max-width:640px){ .tt-stu-card{ grid-template-columns:56px minmax(0,1fr); } .tt-stu-card__photo{ width:56px; height:56px; }
  .tt-stu-card__acts{ grid-column:1 / -1; flex-direction:row; flex-wrap:wrap; } .tt-stu-card__acts .tt-btn{ width:auto; } }
.tt-stu-reqs{ list-style:none; margin:0; padding:0; display:grid; gap:var(--sp-3); }
.tt-stu-req{ padding:var(--sp-4) var(--sp-5); background:var(--white); border:1px solid var(--line); border-radius:var(--r-lg); }
.tt-stu-req__top{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:var(--sp-2); align-items:baseline; }
.tt-stu-req__title{ margin:0; font:700 18px/1.3 var(--font-display); color:var(--navy-900); }
.tt-stu-req__meta{ margin:var(--sp-2) 0 0; font-size:14px; color:var(--ink-700); display:flex; flex-wrap:wrap; gap:var(--sp-1) var(--sp-4); }
.tt-stu-req__meta span{ display:inline-flex; align-items:center; gap:6px; }
.tt-stu-req__text{ margin:var(--sp-2) 0 0; color:var(--ink-700); font-size:15px; overflow-wrap:anywhere; }
.tt-stu-req__acts{ display:flex; flex-wrap:wrap; gap:var(--sp-2); margin-top:var(--sp-3); }
.tt-stu-req__acts form{ margin:0; }
.tt-stu-notices{ list-style:none; margin:0; padding:0; }
.tt-stu-notice{ display:flex; gap:var(--sp-3); padding:var(--sp-3) 0; border-bottom:1px solid var(--line); }
.tt-stu-notice.is-unread .tt-stu-notice__title{ font-weight:700; }
.tt-stu-notice.is-unread::before{ content:""; flex:none; width:8px; height:8px; margin-top:8px; border-radius:50%; background:var(--blue-600); }
.tt-stu-notice__title{ margin:0; color:var(--navy-900); }
.tt-stu-notice__body,.tt-stu-notice__time{ margin:2px 0 0; font-size:14px; color:var(--ink-700); }
.tt-stu-notice__time{ color:var(--ink-500); }
.tt-stu-reviews{ list-style:none; margin:0; padding:0; display:grid; gap:var(--sp-3); }
.tt-stu-stars{ color:var(--amber-600); display:inline-flex; gap:2px; }
.tt-ft--embed{ padding:0; } .tt-ft--embed .tt-ft__card{ max-width:none; margin:0; }

/* ---------------------------------------------------------------- plans (/tutor-area/plans) */
.tt-plans{ list-style:none; margin:0 0 var(--sp-4); padding:0; display:grid; grid-template-columns:repeat(auto-fit,minmax(240px,1fr)); gap:var(--sp-4); }
.tt-plan{ position:relative; display:flex; flex-direction:column; gap:var(--sp-2); padding:var(--sp-5); background:var(--white);
  border:1px solid var(--line); border-radius:var(--r-lg); box-shadow:var(--shadow-sm); }
.tt-plan.is-featured{ border:2px solid var(--blue-600); box-shadow:var(--shadow-lift); }
.tt-plan__badge{ position:absolute; top:-12px; left:var(--sp-5); margin:0; padding:3px 12px; border-radius:var(--r-pill);
  background:var(--blue-600); color:var(--white); font:700 12px/1.6 var(--font-display); letter-spacing:.03em; text-transform:uppercase; }
.tt-plan__name{ margin:var(--sp-1) 0 0; font:800 20px/1.2 var(--font-display); color:var(--navy-900); }
.tt-plan__price{ margin:0; font:800 36px/1.1 var(--font-display); color:var(--navy-900); }
.tt-plan__meta{ margin:0; color:var(--ink-700); }
.tt-plan__per{ margin:0; font-size:14px; color:var(--green-700); font-weight:600; }
.tt-plan__feats{ list-style:none; margin:var(--sp-2) 0 var(--sp-3); padding:0; display:grid; gap:6px; font-size:15px; flex:1; }
.tt-plan__feats li{ display:flex; gap:var(--sp-2); align-items:flex-start; }
.tt-plan__feats .tt-icon{ color:var(--green-700); margin-top:3px; }
.tt-plan__feats li.is-off{ color:var(--ink-500); }
.tt-plan__feats li.is-off .tt-icon{ color:var(--ink-500); }
.tt-plan .tt-btn{ justify-content:center; }
.tt-plan-review{ max-width:640px; }
.tt-plan-sum{ display:grid; grid-template-columns:auto 1fr; gap:var(--sp-2) var(--sp-4); margin:0 0 var(--sp-4); }
.tt-plan-sum dt{ color:var(--ink-700); }
.tt-plan-sum dd{ margin:0; font-weight:600; color:var(--navy-900); }
.tt-plan-sum__total{ padding-top:var(--sp-2); border-top:1px solid var(--line); font-size:18px; }
.tt-plan-pay{ display:flex; flex-wrap:wrap; justify-content:space-between; gap:var(--sp-3); }
.tt-plan-cmp-wrap{ overflow-x:auto; }
.tt-plan-cmp,.tt-plan-hist{ width:100%; border-collapse:collapse; font-size:15px; }
.tt-plan-cmp th,.tt-plan-cmp td,.tt-plan-hist th,.tt-plan-hist td{ padding:10px var(--sp-3); border-bottom:1px solid var(--line); text-align:left; vertical-align:top; }
.tt-plan-cmp thead th,.tt-plan-hist thead th{ font-weight:700; color:var(--navy-900); background:var(--surface); }
.tt-plan-cmp td.is-yes .tt-icon{ color:var(--green-700); }
.tt-plan-cmp td.is-no .tt-icon{ color:var(--ink-500); }
.tt-plan-hist small{ color:var(--ink-500); }
/* receipt: one printable page */
.tt-rcpt{ max-width:720px; margin:var(--sp-6) auto; padding:var(--sp-6); background:var(--white); border:1px solid var(--line); border-radius:var(--r-lg); }
.tt-rcpt__top{ display:flex; justify-content:space-between; align-items:flex-start; gap:var(--sp-4); padding-bottom:var(--sp-4); border-bottom:2px solid var(--navy-900); }
.tt-rcpt__top h1{ margin:0; font:800 24px/1.2 var(--font-display); color:var(--navy-900); text-align:right; }
.tt-rcpt__top p{ margin:4px 0 0; text-align:right; color:var(--ink-700); }
.tt-rcpt__dl{ display:grid; grid-template-columns:auto 1fr; gap:var(--sp-2) var(--sp-5); margin:var(--sp-5) 0; }
.tt-rcpt__dl dt{ color:var(--ink-700); }
.tt-rcpt__dl dd{ margin:0; font-weight:600; overflow-wrap:anywhere; }
.tt-rcpt__total{ padding-top:var(--sp-3); border-top:1px solid var(--line); font-size:20px; color:var(--navy-900); }
.tt-rcpt__note{ color:var(--ink-500); font-size:14px; }
.tt-rcpt__acts{ display:flex; gap:var(--sp-3); flex-wrap:wrap; }
@media print{ .tt-rcpt__acts,.tt-app-skip{ display:none; } .tt-rcpt{ border:0; margin:0; } .tt-app{ background:#fff; } }
.tt-po-result__dl{ max-width:420px; margin:var(--sp-4) auto; text-align:left; }
.tt-po-result--err .tt-ft-done__ico{ background:#FDF0F0; color:#B42318; }
.tt-po-result--wait .tt-ft-done__ico{ background:#FFF7E8; color:#7A4A06; }
.tt-ft-done h1{ margin:var(--sp-3) 0 var(--sp-2); font:800 24px/1.25 var(--font-display); color:var(--navy-900); }
