@font-face{font-family:QingmiaoSansSC;src:url(/fonts/qingmiao-sans-sc.otf?v=20260706) format("opentype");font-weight:100 900;font-style:normal;font-display:block}.home-demand-entry{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:18px 0;padding:24px 28px;border:1px solid #d8ece3;border-radius:24px;background:linear-gradient(135deg,#effaf5,#fffaf0)}.home-demand-entry h2,.home-demand-entry p{margin:5px 0}.home-demand-entry p{color:#5f746c;line-height:1.65}.demand-page{max-width:1180px}.demand-list{display:grid;gap:16px}.privacy-banner{display:flex;align-items:flex-start;gap:14px;margin-bottom:18px;padding:18px 20px;border:1px solid #cfe8dc;border-radius:18px;color:#174d3c;background:#f0faf5}.privacy-banner>svg{flex:0 0 auto;margin-top:2px;color:var(--brand)}.privacy-banner p{margin:5px 0 0;color:#597269;font-size:14px;line-height:1.6}.demand-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:18px}.demand-overview>div{display:grid;gap:3px;padding:18px 20px;border:1px solid #e4ece8;border-radius:18px;background:#fff}.demand-overview strong{color:#174d3c;font-size:24px}.demand-overview span{color:#7a8b84;font-size:13px}.demand-card{padding:22px;border:1px solid #e1ebe6;border-radius:20px;background:#fff;box-shadow:0 9px 28px #14513e0d}.demand-card-head,.demand-card-foot,.candidate-head,.candidate-booking-form,.demand-submit-bar{display:flex;align-items:center;justify-content:space-between;gap:16px}.demand-card h3{margin:5px 0 0;font-size:20px}.demand-issue{margin:15px 0 12px;color:#405c53;line-height:1.75;white-space:pre-wrap}.demand-facts{display:flex;flex-wrap:wrap;gap:8px 18px;color:#6f817a;font-size:13px}.demand-facts span{display:inline-flex;align-items:center;gap:5px}.demand-rules{margin-top:14px}.demand-rules .tag{color:#176c51;background:#edf8f3}.demand-card-foot{align-items:flex-end;margin-top:16px;padding-top:15px;border-top:1px solid #edf1ef}.demand-actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px}.demand-review-note{margin-top:14px}.demand-form{display:grid;gap:18px}.demand-form-section{overflow:visible}.demand-form-section .panel-head>div{display:flex;align-items:center;gap:10px}.step-number{display:grid;place-items:center;width:28px;height:28px;border-radius:50%;color:#fff;background:var(--brand);font-weight:800}.demand-subjects{grid-template-columns:repeat(5,minmax(0,1fr))}.demand-times{grid-template-columns:repeat(3,minmax(0,1fr))}.field-help{display:block;margin-top:7px;color:#7c8b86;font-size:12px;line-height:1.5}.hard-filter-section{border-color:#cce5d9}.warning-note{margin-bottom:16px;border-color:#f0d69e;background:#fff9eb}.demand-submit-bar{position:sticky;bottom:12px;z-index:5;padding:16px 18px;border:1px solid #dbe8e2;border-radius:18px;background:#fffffff5;box-shadow:0 14px 40px #12443524;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.demand-submit-bar>div{display:flex;gap:10px}.demand-submit-bar>div:first-child{display:grid;gap:3px}.demand-submit-bar span{color:#71837c;font-size:12px}.demand-admin-list,.candidate-list{display:grid;gap:14px}.candidate-card{padding:18px;border:1px solid #dfeae5;border-radius:18px;background:#fbfdfc}.candidate-head{justify-content:flex-start}.candidate-head>div{flex:1}.candidate-head h3,.candidate-head p{margin:2px 0}.candidate-head p{color:#71837c;font-size:13px}.candidate-message{margin:14px 0;color:#496158;line-height:1.65}.candidate-booking-form{align-items:flex-end;margin-top:16px;padding-top:14px;border-top:1px solid #e4ece8}.candidate-booking-form label{display:grid;flex:1;gap:6px;color:#52675f;font-size:12px;font-weight:700}.candidate-booking-form input,.candidate-booking-form select{min-width:0}@media(max-width:760px){.home-demand-entry,.demand-card-foot,.demand-submit-bar,.candidate-booking-form{align-items:stretch;flex-direction:column}.home-demand-entry{padding:20px}.home-demand-entry .btn{width:100%}.demand-overview{grid-template-columns:1fr}.demand-card{padding:18px}.demand-card-head{align-items:flex-start}.demand-actions{justify-content:stretch;width:100%}.demand-actions .btn{flex:1}.demand-subjects,.demand-times{grid-template-columns:repeat(2,minmax(0,1fr))}.demand-submit-bar{bottom:76px}.demand-submit-bar>div{width:100%}.demand-submit-bar>div:last-child .btn{flex:1}.privacy-banner{padding:15px}.candidate-head{align-items:flex-start}.candidate-booking-form .btn{width:100%}}.page-head-actions,.quick-week-head,.quick-time-heading,.quick-selection-summary,.schedule-range-item,.quick-session-item{display:flex;align-items:center}.page-head-actions{gap:10px;flex-wrap:wrap;justify-content:flex-end}.back-action{display:inline-flex;margin-bottom:10px}.quick-schedule-layout,.schedule-range-layout{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(300px,.75fr);gap:18px;margin-top:18px;align-items:start}.quick-calendar-panel{overflow:hidden}.quick-week-head{justify-content:center;gap:18px;text-align:center}.quick-week-head>div{display:grid;gap:3px}.quick-week-head small{color:var(--muted)}.quick-day-tabs{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;margin-bottom:18px}.quick-day{display:grid;place-items:center;gap:4px;min-width:0;min-height:62px;padding:8px 4px;border:1px solid var(--line);border-radius:8px;color:var(--text);background:#fff}.quick-day span{color:var(--muted);font-size:12px}.quick-day strong{font-size:16px}.quick-day.active{border-color:var(--brand);color:#fff;background:var(--brand)}.quick-day.active span{color:#ffffffc7}.quick-time-heading{justify-content:space-between;gap:12px;margin-bottom:12px}.quick-time-heading>div{display:grid;gap:4px}.quick-time-heading span{color:var(--muted);font-size:13px}.quick-time-grid{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:7px}.quick-time{min-width:0;min-height:38px;padding:7px 3px;border:1px solid var(--line);border-radius:7px;color:var(--text);background:#fff;font:inherit;font-size:13px}.quick-time:hover{border-color:var(--brand)}.quick-time.selected{border-color:var(--brand);color:var(--brand-dark);background:#e8f7f0}.quick-time.range-start,.quick-time.range-end{color:#fff;background:var(--brand)}.quick-booking-panel,.quick-session-panel{overflow:hidden}.panel-actions{display:flex;justify-content:flex-end;padding:14px 18px 18px}.quick-selection-summary{justify-content:space-between;gap:12px;padding:13px 14px;border-radius:8px;background:#eff8f4}.quick-selection-summary span{color:var(--muted);font-size:13px}.quick-selection-summary strong{text-align:right}.quick-session-list{display:grid;gap:9px}.quick-session-item{justify-content:space-between;gap:10px;padding:12px;border:1px solid var(--line);border-radius:8px}.quick-session-item>div{display:grid;gap:5px;min-width:0}.quick-session-item strong,.quick-session-item span{overflow-wrap:anywhere}.quick-session-item span{color:var(--muted);font-size:12px}.compact-icon{flex:0 0 auto;width:34px;height:34px}.service-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.service-ability-card{min-width:0}.service-tags{margin:12px 0}.service-description{min-height:42px;line-height:1.6}.service-choice-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.grade-choice-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.grade-preset-actions{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}.input-affix{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px}.schedule-range-layout{grid-template-columns:minmax(0,1.5fr) minmax(280px,.65fr)}.schedule-week-panel-head{display:grid;grid-template-columns:40px minmax(0,1fr) 40px;align-items:center;text-align:center}.schedule-week-panel-head>div{min-width:0}.schedule-week-previous svg{transform:rotate(180deg)}.schedule-range-form{display:grid;grid-template-columns:1fr 1fr 1fr auto;gap:10px;align-items:end}.schedule-range-list{display:grid;gap:9px;margin-top:18px}.schedule-range-item{gap:12px;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fbfdfc}.schedule-range-day{display:grid;flex:0 0 48px;place-items:center;height:38px;border-radius:7px;color:#fff;background:var(--brand);font-weight:700}.schedule-range-item>div{display:grid;flex:1;gap:4px;min-width:0}.schedule-range-item small{color:var(--muted)}@media(max-width:900px){.quick-schedule-layout,.schedule-range-layout{grid-template-columns:1fr}.quick-time-grid{grid-template-columns:repeat(6,minmax(0,1fr))}.schedule-range-form{grid-template-columns:repeat(3,minmax(0,1fr))}.schedule-range-form .btn{grid-column:1 / -1}}@media(max-width:760px){.quick-schedule-head{margin-bottom:14px}.page-head-actions{width:100%;justify-content:stretch}.page-head-actions .btn{flex:1}.quick-calendar-panel .panel-body,.quick-booking-panel .panel-body,.quick-session-panel .panel-body{padding:14px}.quick-week-head{padding:13px}.quick-day-tabs{gap:4px}.quick-day{min-height:54px;font-size:12px}.quick-day strong{font-size:14px}.quick-time-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.quick-time{min-height:40px;font-size:12px}.quick-time-heading{align-items:flex-start}.quick-selection-summary{display:grid}.quick-selection-summary strong{text-align:left}.panel-actions .btn{width:100%}.service-card-grid{grid-template-columns:1fr}.service-choice-grid,.grade-choice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.schedule-range-form{grid-template-columns:1fr 1fr}.schedule-range-form .form-group:first-child,.schedule-range-form .btn{grid-column:1 / -1}.schedule-range-item{align-items:flex-start}}@media(max-width:390px){.quick-day span{font-size:10px}.quick-day strong{font-size:13px}.quick-time-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}.result-summary-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:12px}.result-copy{min-width:0}.match-teacher-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px}.teacher-mini-card{display:grid;gap:10px;min-width:0;padding:16px;border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:0 10px 28px #1447340f}.teacher-mini-head{display:flex;align-items:center;justify-content:space-between;gap:10px}.mini-heart{display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--line);border-radius:50%;color:var(--muted);background:#fff}.mini-heart.active{color:var(--brand);background:#eef8f1;border-color:#bfe2cf}.teacher-mini-card h3{min-width:0;margin:0;overflow:hidden;color:var(--ink);font-size:17px;text-overflow:ellipsis;white-space:nowrap}.teacher-mini-card p{display:-webkit-box;margin:0;overflow:hidden;color:var(--muted);font-size:12px;line-height:1.45;-webkit-box-orient:vertical;-webkit-line-clamp:2}.teacher-mini-tags{display:flex;flex-wrap:wrap;gap:6px;min-width:0}.teacher-mini-tags span{max-width:100%;padding:5px 9px;overflow:hidden;border-radius:999px;color:var(--brand-dark);background:#edf7f1;font-size:11px;text-overflow:ellipsis;white-space:nowrap}.teacher-mini-meta{display:flex;align-items:baseline;justify-content:space-between;gap:8px;min-width:0;padding-top:4px}.teacher-mini-meta strong{color:var(--ink);font-size:24px}.teacher-mini-meta span{overflow:hidden;color:var(--muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.teacher-mini-card .btn{width:100%}.favorite-hub{display:grid;gap:12px;margin-bottom:18px}.favorite-hub-summary{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;padding:16px 18px;border:1px solid rgba(29,74,58,.1);border-radius:22px;color:var(--ink);background:#fff;text-align:left;box-shadow:0 12px 32px #1447340f}.favorite-hub-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:16px;color:var(--brand);background:#e8f6ee}.favorite-hub-summary strong,.favorite-hub-summary small{display:block;min-width:0}.favorite-hub-summary small{margin-top:4px;overflow:hidden;color:var(--muted);text-overflow:ellipsis;white-space:nowrap}.favorite-hub-toggle{color:var(--brand);font-size:13px;font-weight:800}.favorite-teacher-list{display:grid;gap:12px}.favorite-teacher-card{display:grid;gap:12px;padding:16px;border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:0 8px 24px #1447340d}.favorite-teacher-main{display:flex;align-items:center;gap:12px;min-width:0}.favorite-teacher-main h3,.favorite-teacher-main p{margin:0}.favorite-teacher-main h3{overflow:hidden;font-size:17px;text-overflow:ellipsis;white-space:nowrap}.favorite-teacher-main p{margin:4px 0 6px;color:var(--muted);font-size:12px}.favorite-note{display:grid;gap:7px;color:var(--muted);font-size:12px}.favorite-note textarea{width:100%;min-height:72px;resize:vertical;border:1px solid var(--line);border-radius:14px;padding:10px 12px;color:var(--ink);background:#fbfdfb;box-sizing:border-box}.favorite-actions{display:flex;flex-wrap:wrap;gap:8px}.history-orders-section{margin-top:18px}.history-orders-toggle{min-width:64px;height:34px;padding:0 16px;border:0;border-radius:999px;color:#fff;background:var(--brand);font:inherit;font-size:13px;font-weight:800;cursor:pointer}.compact-order-list .order-card{box-shadow:none}.compact-empty{min-height:0;padding:18px}.ai-advisor-card,.ai-report,.ai-advice-record{display:grid;gap:16px;width:100%;min-width:0;padding:18px;border:1px solid rgba(29,74,58,.1);border-radius:24px;background:#ffffffeb;box-shadow:0 14px 36px #14473412;box-sizing:border-box}.ai-advisor-copy h2,.ai-advice-record h3{margin:8px 0;color:var(--ink);line-height:1.18}.ai-advisor-copy p,.ai-advice-record p,.ai-advice-text,.ai-disclaimer{margin:0;color:var(--muted);line-height:1.7}.ai-badge{display:inline-flex;align-items:center;width:fit-content;padding:5px 9px;border-radius:999px;color:var(--brand-dark);background:#e8f6ee;font-size:11px;font-weight:900;letter-spacing:.04em}.ai-start-panel,.ai-advisor-form{display:grid;gap:14px;min-width:0}.ai-empty-advice{display:grid;gap:5px;padding:14px;border-radius:18px;background:#f7fbf8}.ai-empty-advice strong,.ai-empty-advice span{display:block}.ai-empty-advice span{color:var(--muted);font-size:13px}.ai-check-grid{display:flex;flex-wrap:wrap;gap:8px}.ai-check-grid label,.ai-long-term{display:inline-flex;align-items:center;gap:7px;padding:9px 12px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--ink);font-weight:800}.ai-check-grid input,.ai-long-term input{accent-color:var(--brand)}.ai-long-term.full{width:fit-content}.ai-actions,.ai-record-actions{display:flex;flex-wrap:wrap;gap:10px}.ai-report.compact{margin-bottom:16px}.ai-report-head{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:center}.ai-report-head strong,.ai-report-head span{display:block;min-width:0}.ai-report-head strong{color:var(--ink);font-size:18px}.ai-report-head span:not(.ai-badge){margin-top:4px;color:var(--muted);font-size:13px}.ai-report-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(136px,1fr));gap:10px}.ai-report-grid>div{display:grid;gap:5px;padding:12px;border-radius:16px;background:#f7faf8}.ai-report-grid span{color:var(--muted);font-size:12px}.ai-report-grid strong{color:var(--ink)}.ai-disclaimer{padding:10px 12px;border-radius:14px;color:#7a5b1f;background:#fff7df;font-size:12px}.ai-reasons{display:flex;flex-wrap:wrap;gap:7px;min-width:0}.ai-reasons span{max-width:100%;padding:5px 9px;overflow:hidden;border-radius:999px;color:var(--brand-dark);background:#eaf7ef;font-size:11px;font-weight:800;text-overflow:ellipsis;white-space:nowrap}.ai-detail-reasons .ai-disclaimer{margin-top:12px}.ai-advice-record{grid-template-columns:minmax(0,1fr) auto;align-items:center;margin-bottom:18px}.system-feed{display:grid;gap:12px}.system-feed-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:12px;padding:14px;border:1px solid rgba(29,74,58,.09);border-radius:18px;background:#fff}.system-feed-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:13px;color:var(--brand);background:#e8f6ee}.system-feed-item strong,.system-feed-item p,.system-feed-item small{display:block;min-width:0}.system-feed-item p{margin:5px 0;color:var(--muted);line-height:1.5}.system-feed-item small{color:var(--muted);font-size:12px}.system-conversation{background:#eef8f2!important}@media(max-width:760px){body[data-portal=user] .page-find .result-summary-card{grid-template-columns:38px minmax(0,1fr);grid-template-areas:"count copy" "primary primary" "secondary secondary"}body[data-portal=user] .page-find .result-summary-card .btn-primary{grid-area:primary}body[data-portal=user] .page-find .result-summary-card .btn-secondary{grid-area:secondary}body[data-portal=user] .match-teacher-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}body[data-portal=user] .teacher-mini-card{padding:12px;border-radius:18px}body[data-portal=user] .teacher-mini-card h3{font-size:15px}body[data-portal=user] .teacher-mini-meta{display:grid;gap:2px}body[data-portal=user] .teacher-mini-meta strong{font-size:21px}body[data-portal=user] .favorite-hub{margin:0 0 16px}body[data-portal=user] .favorite-hub-summary{grid-template-columns:40px minmax(0,1fr) auto;padding:14px;border-radius:20px}body[data-portal=user] .favorite-actions .btn{flex:1 1 calc(50% - 8px)}body[data-portal=user] .system-feed-item{grid-template-columns:34px minmax(0,1fr)}body[data-portal=user] .system-feed-item .status{grid-column:2;justify-self:start}body[data-portal=user] .compact-order-list .order-card{overflow:hidden}body[data-portal=user] .history-orders-section .section-head h3{font-size:20px}body[data-portal=user] .history-orders-section .section-head .small,body[data-portal=user] .history-orders-section .compact-order-list,body[data-portal=user] .history-orders-section .compact-order-list .small,body[data-portal=user] .history-orders-section .compact-order-list .detail-item span{font-size:12px}body[data-portal=user] .history-orders-section .compact-order-list .order-person h3,body[data-portal=user] .history-orders-section .compact-order-list .detail-item strong{font-size:15px}}:root{--ink: #16302b;--muted: #6d7d79;--brand: #207a5b;--brand-deep: #145a43;--brand-soft: #e9f5ef;--lime: #dfff9a;--peach: #ffe5ca;--sky: #dceeff;--paper: #fbfcf8;--white: #ffffff;--line: #dfe8e3;--danger: #bd4f45;--warning: #a46413;--shadow: 0 14px 34px rgba(31, 70, 57, .09);--shadow-sm: 0 5px 16px rgba(31, 70, 57, .07);--radius: 8px;--radius-sm: 6px;--app-font-stack: "QingmiaoSansSC", "Roboto", "Noto Sans SC", "Noto Sans CJK SC", "HarmonyOS Sans SC", "MiSans", "OPPOSans", "Droid Sans Fallback", "Microsoft YaHei", Arial, system-ui, -apple-system, sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--app-font-stack);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,input,select,textarea{font:inherit}button{color:inherit}a{color:inherit;text-decoration:none}.shell{min-height:100vh}.topbar{position:sticky;top:0;z-index:40;display:flex;align-items:center;gap:28px;min-height:72px;padding:0 max(28px,calc((100vw - 1240px)/2));border-bottom:1px solid rgba(223,232,227,.85);background:#fbfcf8e6;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px)}.brand{display:inline-flex;align-items:center;gap:10px;min-width:max-content;padding:0;border:0;color:inherit;background:transparent;cursor:pointer;font-weight:900;font-size:19px;text-align:left}.brand-mark{position:relative;display:grid;place-items:center;flex:0 0 auto;width:38px;height:38px;overflow:hidden;border-radius:13px;color:#fff;background:#0b3f33;box-shadow:inset 0 0 0 1px #ffffff14,0 5px 14px #0b3f3324}.brand-mark:before,.brand-mark:after{content:"";position:absolute}.brand-mark:before{inset:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Cpath fill='%23c8a866' d='m15 20 16-4.5v28.7c-5.3-2.5-11.2-2.1-16 2.3Z'/%3E%3Cpath fill='%23f4ede0' d='m30.2 15.5 18.8 4.5v26.5c-6-4-12.2-4.4-18.8-2.3Z'/%3E%3C/svg%3E") center / 100% 100% no-repeat}.brand-mark:after{content:none}.brand-mark span{display:none}.nav{display:flex;align-self:stretch;gap:4px}.nav-button{position:relative;display:inline-flex;align-items:center;gap:7px;padding:0 14px;border:0;background:transparent;color:var(--muted);cursor:pointer;font-size:14px;font-weight:650}.nav-button:hover{color:var(--ink)}.nav-button.active{color:var(--brand-deep)}.nav-button.active:after{content:"";position:absolute;left:14px;right:14px;bottom:0;height:3px;border-radius:5px 5px 0 0;background:var(--brand)}.top-actions{display:flex;align-items:center;gap:10px;margin-left:auto}.icon-button{position:relative;display:grid;place-items:center;width:40px;height:40px;border:1px solid var(--line);border-radius:13px;background:var(--white);cursor:pointer}.icon-button:hover{border-color:#abc9bb;background:var(--brand-soft)}.dot{position:absolute;top:8px;right:8px;width:7px;height:7px;border-radius:50%;border:2px solid white;background:#ef715d}.role-switch{display:flex;align-items:center;gap:10px;padding:6px 8px 6px 12px;border:1px solid var(--line);border-radius:14px;background:var(--white)}.role-switch label{color:var(--muted);font-size:12px}.role-switch select{border:0;outline:0;color:var(--ink);background:transparent;font-weight:750;cursor:pointer}.avatar-mini{display:grid;place-items:center;width:34px;height:34px;border-radius:11px;color:#fff;background:linear-gradient(145deg,#428f73,#1b5b46);font-weight:800}.page{width:min(1180px,calc(100% - 40px));margin:0 auto;padding:34px 0 72px}.page-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:24px}.eyebrow{margin:0 0 8px;color:var(--brand);font-size:12px;font-weight:850;letter-spacing:.14em;text-transform:uppercase}h1,h2,h3,p{margin-top:0}h1{margin-bottom:8px;font-size:40px;line-height:1.1;letter-spacing:0}h2{margin-bottom:10px;font-size:26px;line-height:1.2;letter-spacing:0}h3{margin-bottom:8px;font-size:17px}.subtle{color:var(--muted)}.small{font-size:13px}.tiny{font-size:12px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:0 18px;border:1px solid transparent;border-radius:13px;cursor:pointer;font-weight:750;transition:transform .16s ease,box-shadow .16s ease,background .16s ease}.btn:hover{transform:translateY(-1px)}.btn-primary{color:#fff;background:var(--brand);box-shadow:0 8px 18px #207a5b33}.btn-primary:hover{background:var(--brand-deep)}.btn-secondary{border-color:var(--line);background:var(--white)}.btn-secondary:hover{border-color:#b5d0c4;background:var(--brand-soft)}.btn-ghost{background:transparent;color:var(--brand-deep)}.btn-danger{color:#fff;background:var(--danger)}.btn-sm{min-height:34px;padding:0 12px;border-radius:10px;font-size:13px}.btn-block{width:100%}.btn:disabled{opacity:.48;cursor:not-allowed;transform:none}.hero{position:relative;display:grid;grid-template-columns:1.15fr .85fr;gap:36px;overflow:hidden;min-height:430px;padding:clamp(34px,5vw,68px);border-radius:34px;background:#eaf5ee;box-shadow:var(--shadow-sm)}.hero:before{content:"";position:absolute;width:360px;height:360px;right:-110px;top:-170px;border:70px solid rgba(255,255,255,.46);border-radius:50%}.hero-copy{position:relative;z-index:1;display:flex;flex-direction:column;justify-content:center}.hero h1{max-width:700px;font-size:clamp(42px,5.3vw,70px)}.hero h1 em{color:var(--brand);font-style:normal}.hero-copy>p{max-width:560px;margin-bottom:28px;font-size:17px;line-height:1.8}.search-box{display:grid;grid-template-columns:1fr 1fr auto;gap:8px;width:min(680px,100%);padding:8px;border:1px solid rgba(32,122,91,.14);border-radius:18px;background:#fff;box-shadow:0 14px 35px #254e3f1f}.search-field{display:flex;align-items:center;gap:9px;padding:0 12px;border-right:1px solid var(--line)}.search-field:last-of-type{border-right:0}.search-field select,.search-field input{width:100%;min-width:0;height:43px;border:0;outline:0;background:transparent;color:var(--ink)}.advanced-search{grid-template-columns:repeat(2,minmax(0,1fr)) auto;width:min(720px,100%);overflow:visible}.student-context{display:inline-flex;align-items:center;gap:9px;width:fit-content;margin-bottom:9px;padding:7px 10px;border-radius:10px;color:var(--brand-deep);background:#ffffffa8;font-size:11px;font-weight:800}.student-context select{border:0;outline:0;color:var(--ink);background:transparent;font-weight:750}.advanced-search .search-field{min-width:0;border:1px solid var(--line);border-radius:12px;background:#fbfcfa}.search-step,.filter-number{display:inline-grid;place-items:center;flex:0 0 auto;width:22px;height:22px;border-radius:7px;color:#fff;background:var(--brand);font-size:11px;font-weight:900}.search-submit{grid-column:3;grid-row:1 / 3;min-width:105px}.multi-select{position:relative}.multi-select summary{display:flex;align-items:center;gap:9px;width:100%;min-width:0;cursor:pointer;list-style:none}.multi-select summary::-webkit-details-marker{display:none}.multi-select summary span:last-child{display:grid;min-width:0}.multi-select summary small{color:var(--muted);font-size:10px;font-weight:650}.multi-select summary strong{overflow:hidden;font-size:13px;text-overflow:ellipsis;white-space:nowrap}.multi-select-menu{position:absolute;left:0;top:calc(100% + 8px);z-index:30;display:grid;grid-template-columns:repeat(3,1fr);gap:7px;width:310px;padding:12px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:var(--shadow-sm)}.multi-select-menu label{display:flex;align-items:center;gap:5px;padding:7px;border-radius:8px;cursor:pointer;font-size:12px}.multi-select-menu label:hover{background:var(--brand-soft)}.multi-select-menu input{width:15px;height:15px;accent-color:var(--brand)}.location-hint{grid-column:1 / -1;display:flex;align-items:center;gap:6px;padding:1px 4px;color:var(--muted);font-size:11px}.location-hint button,.location-state button{padding:0;border:0;color:var(--brand);background:transparent;cursor:pointer;font-weight:800}.hero-visual{position:relative;display:grid;place-items:center}.portrait-card{position:relative;z-index:2;width:min(310px,90%);aspect-ratio:.78;overflow:hidden;border:10px solid rgba(255,255,255,.8);border-radius:160px 160px 32px 32px;background:linear-gradient(160deg,#72aa91 0 45%,#f1bd82 45%);box-shadow:0 24px 50px #19523e3d}.portrait-face{position:absolute;left:50%;top:24%;width:110px;height:128px;transform:translate(-50%);border-radius:48% 48% 44% 44%;background:#f5c99f}.portrait-face:before{content:"";position:absolute;inset:-17px -8px 54px;border-radius:54% 54% 36% 36%;background:#263a36;clip-path:polygon(0 0,100% 0,94% 78%,74% 45%,65% 84%,45% 48%,23% 83%,4% 65%)}.portrait-body{position:absolute;left:50%;bottom:-16px;width:235px;height:235px;transform:translate(-50%);border-radius:50% 50% 20% 20%;background:#fff7e4}.portrait-book{position:absolute;left:50%;bottom:24px;z-index:4;width:190px;height:100px;transform:translate(-50%) rotate(-4deg);border-radius:9px;background:#2a765c;box-shadow:inset 0 0 0 3px #ffffff80}.floating-badge{position:absolute;z-index:4;display:flex;align-items:center;gap:10px;padding:12px 15px;border-radius:15px;background:#fffffff0;box-shadow:var(--shadow-sm);font-size:13px;font-weight:750}.floating-badge.one{top:19%;left:0}.floating-badge.two{right:0;bottom:18%}.badge-icon{display:grid;place-items:center;width:32px;height:32px;border-radius:10px;background:var(--lime)}.trust-row{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:20px 0 52px}.trust-item{display:flex;align-items:center;gap:12px;padding:15px 18px;border:1px solid var(--line);border-radius:var(--radius-sm);background:#fff}.trust-item strong{display:block;font-size:14px}.trust-item span{color:var(--muted);font-size:12px}.trust-icon{display:grid;place-items:center;flex:0 0 auto;width:38px;height:38px;border-radius:12px;background:var(--brand-soft);color:var(--brand)}.onboarding-guide{display:grid;grid-template-columns:250px 1fr;gap:20px;margin:18px 0 20px;padding:20px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;box-shadow:var(--shadow-sm)}.onboarding-guide.attention{border-color:#f0d397;background:#fffaf0}.onboarding-guide h2{margin-bottom:0;font-size:22px}.guide-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.guide-steps button{display:grid;grid-template-columns:28px 1fr;gap:5px 10px;padding:12px;border:1px solid var(--line);border-radius:8px;background:#fbfcfa;cursor:pointer;text-align:left}.guide-steps button:hover{border-color:#b7d3c5;background:var(--brand-soft)}.guide-steps span{display:grid;place-items:center;grid-row:span 2;width:26px;height:26px;border-radius:8px;color:#fff;background:var(--brand);font-weight:850}.guide-steps strong{font-size:13px}.guide-steps small{color:var(--muted);font-size:11px;line-height:1.45}.section-head{display:flex;align-items:end;justify-content:space-between;gap:20px;margin-bottom:18px}.subject-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:12px;margin-bottom:52px}.subject-card{padding:22px 12px;border:1px solid var(--line);border-radius:18px;background:#fff;cursor:pointer;text-align:center;transition:.18s ease}.subject-card:hover{transform:translateY(-3px);border-color:#a9cbbc;box-shadow:var(--shadow-sm)}.subject-icon{display:grid;place-items:center;width:48px;height:48px;margin:0 auto 12px;border-radius:15px;font-size:22px;background:var(--brand-soft)}.subject-card:nth-child(2n) .subject-icon{background:var(--peach)}.subject-card:nth-child(3n) .subject-icon{background:var(--sky)}.subject-card strong{display:block;font-size:14px}.subject-card span{color:var(--muted);font-size:12px}.teacher-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.teacher-card{position:relative;overflow:hidden;border:1px solid var(--line);border-radius:var(--radius);background:#fff;box-shadow:0 4px 18px #1f463909;transition:.18s ease}.teacher-card:hover{transform:translateY(-3px);border-color:#b6d0c4;box-shadow:var(--shadow-sm)}.teacher-cover{height:92px;background:linear-gradient(135deg,#dff3e7,#f5eed9)}.teacher-card:nth-child(2n) .teacher-cover{background:linear-gradient(135deg,#e4edff,#f5e2f2)}.teacher-card:nth-child(3n) .teacher-cover{background:linear-gradient(135deg,#fff0d8,#e1f2ec)}.avatar{display:grid;place-items:center;width:76px;height:76px;border:5px solid white;border-radius:24px;color:#fff;background:linear-gradient(145deg,#5e9d83,#1a6048);box-shadow:0 8px 22px #17503c33;font-size:22px;font-weight:900}.teacher-card .avatar{position:absolute;top:50px;left:20px}.heart{position:absolute;top:16px;right:16px;display:grid;place-items:center;width:36px;height:36px;border:0;border-radius:12px;background:#ffffffe6;cursor:pointer;font-size:19px}.heart.active{color:#e05f64}.teacher-body{padding:45px 20px 20px}.teacher-title{display:flex;align-items:center;justify-content:space-between;gap:8px}.teacher-title h3{margin:0;font-size:19px}.verified{display:inline-flex;align-items:center;gap:4px;color:var(--brand);font-size:12px;font-weight:750}.rating{color:#9b6b18;font-size:13px;font-weight:750}.meta{display:flex;flex-wrap:wrap;gap:6px 12px;margin:10px 0;color:var(--muted);font-size:12px}.distance-label{display:inline-flex;align-items:center;gap:3px;color:var(--brand-deep);font-weight:750}.tags{display:flex;flex-wrap:wrap;gap:6px;margin:12px 0 16px}.tag{display:inline-flex;align-items:center;min-height:26px;padding:0 9px;border-radius:8px;color:var(--brand-deep);background:var(--brand-soft);font-size:12px;font-weight:650}.tag.local-candidate{color:#73511d;background:#fff1cc}.tag.school-tier{color:#315a72;background:#e8f2f8}.tag.neutral{color:#56655f;background:#f1f3f1}.tag.warning{color:#8c5c10;background:#fff3d6}.teacher-footer{display:flex;align-items:end;justify-content:space-between;gap:12px;padding-top:14px;border-top:1px solid #edf1ef}.price strong{font-size:21px}.price span{color:var(--muted);font-size:12px}.filter-layout{display:grid;grid-template-columns:280px 1fr;gap:22px;align-items:start}.filter-panel{position:sticky;top:82px;max-height:calc(100vh - 96px);overflow-y:auto;padding:20px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;scrollbar-width:thin}.filter-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.filter-group{padding:16px 0;border-top:1px solid #edf1ef}.filter-group>label{display:block;margin-bottom:9px;font-size:12px;font-weight:800}.filter-group select,.filter-group input{width:100%;height:40px;padding:0 11px;border:1px solid var(--line);border-radius:10px;outline:0;background:#fbfcfa}.chip-row{display:flex;flex-wrap:wrap;gap:7px}.chip{padding:7px 10px;border:1px solid var(--line);border-radius:999px;background:#fff;cursor:pointer;font-size:12px}.chip.active{border-color:var(--brand);color:var(--brand);background:var(--brand-soft);font-weight:750}.chip:disabled{color:#adb5b1;background:#f5f6f5;cursor:not-allowed;opacity:.72}.filter-number{display:inline-grid;width:19px;height:19px;margin-right:3px;border-radius:6px;font-size:10px;vertical-align:middle}.student-filter{border-top:0;padding-top:9px}.match-mode{padding:0 0 14px}.match-mode>span{display:block;margin-bottom:7px;color:var(--muted);font-size:10px;font-weight:750}.segmented{display:grid;grid-template-columns:.85fr 1.4fr;padding:3px;border-radius:10px;background:#f1f4f2}.segmented button{padding:7px 5px;border:0;border-radius:8px;color:var(--muted);background:transparent;cursor:pointer;font-size:10px}.segmented button.active{color:var(--brand-deep);background:#fff;box-shadow:0 2px 7px #1f463914;font-weight:800}.location-state{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:6px;margin-top:10px;padding:9px;border-radius:9px;color:#9a6034;background:#fff6e8;font-size:10px;line-height:1.45}.location-state.ready{color:var(--brand-deep);background:var(--brand-soft)}.district-fallback{margin-top:8px}.result-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:15px}.location-profile{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:14px;border:1px solid var(--line);border-radius:14px;background:#fbfcfa}.location-profile>div{display:flex;align-items:center;gap:10px}.location-profile span{display:grid;gap:2px}.location-profile small{color:var(--muted)}.choice-checks{display:flex;flex-wrap:wrap;gap:8px}.choice-checks label{display:flex;align-items:center;gap:6px;padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:#fbfcfa;cursor:pointer;font-size:12px}.choice-checks input{flex:0 0 15px;width:15px!important;height:15px;padding:0;accent-color:var(--brand)}.school-tier-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-top:7px}.school-tier-options label{border-radius:8px}.school-tier-options label:has(input:checked){border-color:#78a892;color:var(--brand-deep);background:var(--brand-soft)}.field-help{display:block;margin-top:7px;color:var(--muted);font-size:11px;line-height:1.5}.fixed-field{display:flex;align-items:center;min-height:40px;padding:0 11px;border:1px solid var(--line);border-radius:8px;color:var(--brand-deep);background:var(--brand-soft);font-size:13px;font-weight:750}.tag-check-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.tag-check-grid.subjects{grid-template-columns:repeat(5,minmax(0,1fr))}.tag-check{display:flex;align-items:center;gap:7px;min-height:42px;padding:9px 10px;border:1px solid var(--line);border-radius:11px;background:#fbfcfa;cursor:pointer;font-size:12px;transition:.16s ease}.tag-check:hover{border-color:#a9cbbc}.tag-check:has(input:checked){border-color:var(--brand);color:var(--brand-deep);background:var(--brand-soft);font-weight:800}.tag-check input{flex:0 0 15px;width:15px!important;height:15px;padding:0;accent-color:var(--brand)}.tag-check span{white-space:nowrap}.field-label-row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:9px}.field-label-row>label{font-size:12px;font-weight:800}.quick-actions{display:flex;flex-wrap:wrap;gap:5px}.quick-actions button{padding:5px 8px;border:1px solid var(--line);border-radius:8px;color:var(--brand);background:#fff;cursor:pointer;font-size:10px;font-weight:750}.service-summary-list{display:grid;grid-template-columns:1fr 1fr;gap:10px}.order-location{display:grid;grid-template-columns:auto 1fr;gap:10px;margin:0 0 14px;padding:12px 14px;border-radius:12px}.order-location.masked{color:#77572d;background:#fff7e9}.order-location.exact{color:var(--brand-deep);background:var(--brand-soft)}.order-location-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:#ffffffb8}.order-location>div{display:grid;gap:2px;min-width:0}.order-location span{font-size:10px;font-weight:750}.order-location strong{color:var(--ink);font-size:13px;overflow-wrap:anywhere}.order-location small{font-size:10px}.map-actions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.map-actions .btn{min-height:28px;padding:6px 9px}.sort-select{height:38px;padding:0 10px;border:1px solid var(--line);border-radius:10px;background:#fff}.empty{padding:60px 24px;border:1px dashed #bfd0c8;border-radius:var(--radius);background:#f7faf8;text-align:center}.empty-icon{display:grid;place-items:center;width:58px;height:58px;margin:0 auto 16px;border-radius:18px;background:var(--brand-soft);font-size:26px}.dashboard-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:22px}.teacher-compliance-actions{display:flex;align-items:center;flex-wrap:wrap;justify-content:flex-end;gap:8px}.teacher-payout-notice{margin:0 0 16px}.teacher-compliance-guide{padding:16px;border:1px solid #dce9e3;border-radius:14px;background:#f8fbf9}.teacher-compliance-guide.ready{border-color:#b9ddcd;background:#f0f8f4}.teacher-compliance-guide p{margin:7px 0 0;color:var(--muted);line-height:1.65}.teacher-compliance-guide ul{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 18px;margin:12px 0 0;padding:0;list-style:none}.teacher-compliance-guide li{display:grid;gap:3px}.teacher-compliance-guide li span{font-weight:700}.teacher-compliance-guide li small{color:var(--muted);line-height:1.5}.metric{padding:20px;border:1px solid var(--line);border-radius:18px;background:#fff}.metric-action{width:100%;text-align:left;cursor:pointer;color:inherit;font:inherit;appearance:none}.metric-action:hover{border-color:#207a5b73;box-shadow:0 14px 28px #207a5b14}.metric-top{display:flex;align-items:center;justify-content:space-between;color:var(--muted);font-size:12px}.metric-icon{display:grid;place-items:center;width:36px;height:36px;border-radius:11px;background:var(--brand-soft);color:var(--brand)}.metric strong{display:block;margin:15px 0 4px;font-size:29px;letter-spacing:0}.metric small{color:var(--brand)}.content-grid{display:grid;grid-template-columns:1.35fr .65fr;gap:18px}.panel{border:1px solid var(--line);border-radius:var(--radius);background:#fff;box-shadow:0 3px 14px #1f463906}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding:19px 20px;border-bottom:1px solid #edf1ef}.panel-head h3{margin:0}.panel-body{padding:20px}.order-list{display:grid;gap:12px}.order-card{padding:18px;border:1px solid var(--line);border-radius:16px;background:#fff}.order-top{display:flex;align-items:start;justify-content:space-between;gap:14px}.order-person{display:flex;align-items:center;gap:12px}.avatar-sm{display:grid;place-items:center;flex:0 0 auto;width:46px;height:46px;border-radius:14px;color:#fff;background:linear-gradient(145deg,#5e9d83,#1a6048);font-weight:850}.order-person h3{margin-bottom:3px}.status{display:inline-flex;align-items:center;min-height:26px;padding:0 10px;border-radius:999px;color:#315e4e;background:var(--brand-soft);font-size:12px;font-weight:800;white-space:nowrap}.status.pending{color:#8b5e13;background:#fff3d8}.status.danger{color:#a3423b;background:#fee9e6}.status.neutral{color:#59635f;background:#eef1ef}.order-details{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:17px 0;padding:14px;border-radius:13px;background:#f7f9f7}.detail-item span{display:block;margin-bottom:4px;color:var(--muted);font-size:11px}.detail-item strong{font-size:13px}.order-actions{display:flex;justify-content:flex-end;flex-wrap:wrap;gap:8px}.timeline{display:grid;gap:4px}.timeline-item{position:relative;display:grid;grid-template-columns:28px 1fr;gap:10px;min-height:62px}.timeline-item:after{content:"";position:absolute;left:13px;top:26px;bottom:-7px;width:2px;background:var(--line)}.timeline-item:last-child:after{display:none}.timeline-mark{position:relative;z-index:1;display:grid;place-items:center;width:28px;height:28px;border:2px solid var(--brand);border-radius:50%;color:#fff;background:var(--brand);font-size:11px}.timeline-item.future .timeline-mark{border-color:var(--line);color:var(--muted);background:#fff}.timeline-item.future .timeline-copy{opacity:.55}.timeline-copy strong{display:block;font-size:13px}.timeline-copy span{color:var(--muted);font-size:11px}.message-layout{display:grid;grid-template-columns:320px 1fr;overflow:hidden;height:min(680px,calc(100dvh - 250px));min-height:360px;border:1px solid var(--line);border-radius:var(--radius);background:#fff}.conversation-list{overflow-y:auto;border-right:1px solid var(--line)}.conversation-head{padding:20px;border-bottom:1px solid var(--line)}.conversation{display:flex;gap:12px;padding:15px 18px;border-bottom:1px solid #edf1ef;cursor:pointer}.conversation:hover,.conversation.active{background:var(--brand-soft)}.conversation-copy{min-width:0;flex:1}.conversation-copy div{display:flex;justify-content:space-between;gap:8px}.conversation-copy p{overflow:hidden;margin:5px 0 0;color:var(--muted);font-size:12px;text-overflow:ellipsis;white-space:nowrap}.chat{display:flex;flex-direction:column;min-width:0;min-height:0;overflow:hidden}.chat-head{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--line)}.chat-body{display:flex;flex:1 1 auto;min-height:0;flex-direction:column;gap:12px;overflow-y:auto;padding:22px;background:#f8faf8}.bubble{max-width:72%;padding:11px 14px;border-radius:16px 16px 16px 4px;background:#fff;box-shadow:0 3px 10px #1f46390d;font-size:14px;line-height:1.6}.bubble.mine{align-self:flex-end;border-radius:16px 16px 4px;color:#fff;background:var(--brand)}.bubble-time{display:block;margin-top:4px;opacity:.62;font-size:10px}.system-message{align-self:center;padding:6px 11px;border-radius:999px;color:var(--muted);background:#edf1ef;font-size:11px}.booking-message{width:min(400px,90%);padding:14px;border:1px solid var(--line);border-radius:14px;background:#fff}.chat-compose{display:flex;flex:0 0 auto;gap:8px;padding:14px;border-top:1px solid var(--line);background:#fff}.chat-compose input{flex:1;min-width:0;height:42px;padding:0 14px;border:1px solid var(--line);border-radius:12px;outline:0}.profile-layout{display:grid;grid-template-columns:280px 1fr;gap:20px;align-items:start}.profile-card{padding:24px;border:1px solid var(--line);border-radius:var(--radius);background:#fff;text-align:center}.profile-card .avatar{margin:0 auto 14px}.profile-card .btn{margin-top:14px}.side-menu{margin-top:18px;padding:8px;border:1px solid var(--line);border-radius:16px;background:#fff}.side-menu button{display:flex;width:100%;align-items:center;gap:9px;padding:11px 12px;border:0;border-radius:10px;color:var(--muted);background:transparent;cursor:pointer;text-align:left}.side-menu button.active,.side-menu button:hover{color:var(--brand-deep);background:var(--brand-soft);font-weight:750}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.form-group{display:grid;gap:7px}.form-group.full{grid-column:1 / -1}.form-group label{font-size:12px;font-weight:750}.form-group input,.form-group select,.form-group textarea{width:100%;padding:11px 12px;border:1px solid var(--line);border-radius:11px;outline:0;color:var(--ink);background:#fff}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--brand);box-shadow:0 0 0 3px #207a5b1a}.form-group textarea{min-height:92px;resize:vertical}.form-note{padding:12px 14px;border-radius:11px;color:#735522;background:#fff6df;font-size:12px;line-height:1.6}.form-note.danger-note{color:#913630;background:#fff0ef;border:1px solid #f2c6c1}.schedule-grid{display:grid;grid-template-columns:90px repeat(7,1fr);gap:5px;min-width:760px}.schedule-wrap{overflow-x:auto;padding-bottom:5px}.schedule-cell{display:grid;place-items:center;min-height:46px;border-radius:9px;background:#f3f6f4;font-size:12px}.schedule-cell.head{color:var(--muted);background:transparent;font-weight:750}.schedule-cell.available{color:var(--brand-deep);background:var(--brand-soft);cursor:pointer;font-weight:800}.schedule-cell.booked{color:#7f6a3f;background:#fff1d5}.table-wrap{overflow-x:auto}.data-table{width:100%;border-collapse:collapse}.data-table th{padding:12px 14px;border-bottom:1px solid var(--line);color:var(--muted);font-size:11px;font-weight:800;text-align:left;white-space:nowrap}.data-table td{padding:14px;border-bottom:1px solid #edf1ef;font-size:13px;vertical-align:middle}.data-table tr:last-child td{border-bottom:0}.data-table tbody tr:hover{background:#fafcfa}.admin-search-form{display:grid;grid-template-columns:minmax(260px,1fr) auto auto;gap:10px;align-items:end;width:min(680px,100%)}.inline-person{display:flex;align-items:center;gap:9px;min-width:150px}.inline-person .avatar-sm{width:36px;height:36px;border-radius:10px;font-size:12px}.review{padding:15px 0;border-bottom:1px solid #edf1ef}.review:last-child{border-bottom:0}.stars{color:#e2a13b;letter-spacing:2px}.modal-backdrop{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:20px;background:#09231d8c;-webkit-backdrop-filter:blur(5px);backdrop-filter:blur(5px);animation:fadeIn .16s ease}.modal{width:min(680px,100%);max-height:calc(100vh - 40px);overflow-y:auto;border-radius:24px;background:#fff;box-shadow:0 30px 80px #07201957;animation:popIn .18s ease}.modal.wide{width:min(940px,100%)}.modal-head{position:sticky;top:0;z-index:2;display:flex;align-items:start;justify-content:space-between;gap:15px;padding:22px 24px;border-bottom:1px solid var(--line);background:#fffffff5}.modal-head h2{margin:0}.modal-close{display:grid;place-items:center;flex:0 0 auto;width:36px;height:36px;border:1px solid var(--line);border-radius:11px;background:#fff;cursor:pointer}.modal-body{padding:24px}.modal-foot{position:sticky;bottom:0;display:flex;justify-content:flex-end;gap:10px;padding:16px 24px;border-top:1px solid var(--line);background:#fffffff7}.detail-hero{display:grid;grid-template-columns:100px 1fr auto;gap:18px;align-items:center;margin-bottom:22px}.detail-hero .avatar{width:90px;height:90px}.detail-price{text-align:right}.detail-section{padding:20px 0;border-top:1px solid var(--line)}.slot-row{display:flex;flex-wrap:wrap;gap:8px}.slot{padding:9px 11px;border:1px solid var(--line);border-radius:10px;background:#fff;cursor:pointer;font-size:12px}.slot:hover,.slot.active{border-color:var(--brand);color:var(--brand);background:var(--brand-soft)}.summary-box{padding:16px;border-radius:14px;background:#f4f8f5}.summary-row{display:flex;justify-content:space-between;gap:14px;padding:7px 0;font-size:13px}.summary-row.total{margin-top:7px;padding-top:14px;border-top:1px solid var(--line);font-size:16px}.toast-region{position:fixed;right:22px;bottom:22px;z-index:200;display:grid;gap:10px}.toast{display:flex;align-items:center;gap:10px;min-width:260px;max-width:380px;padding:13px 15px;border:1px solid rgba(255,255,255,.3);border-radius:14px;color:#fff;background:#1c4438;box-shadow:var(--shadow);animation:slideIn .22s ease;font-size:13px}.toast.success:before{content:"✓";display:grid;place-items:center;width:23px;height:23px;border-radius:50%;color:var(--brand-deep);background:var(--lime);font-weight:900}.toast.error{background:#7e342e}.toast.error:before{content:"!";display:grid;place-items:center;width:23px;height:23px;border-radius:50%;color:#7e342e;background:#ffd6d1;font-weight:900}.mobile-nav,.home-status-strip,.mobile-filter-overview,.mobile-order-summary{display:none}.hide{display:none!important}@keyframes fadeIn{0%{opacity:0}}@keyframes popIn{0%{opacity:0;transform:translateY(10px) scale(.985)}}@keyframes slideIn{0%{opacity:0;transform:translate(18px)}}@media(max-width:1020px){.nav-button{padding:0 9px}.nav-button span{display:none}.teacher-grid{grid-template-columns:repeat(2,1fr)}.subject-grid{grid-template-columns:repeat(4,1fr)}.onboarding-guide{grid-template-columns:1fr}.guide-steps,.dashboard-grid{grid-template-columns:repeat(2,1fr)}.content-grid,.hero{grid-template-columns:1fr}.hero-visual{display:none}}@media(max-width:760px){body{padding-bottom:68px}.topbar{min-height:62px;padding:0 16px}.nav,.role-switch label{display:none}.role-switch{padding-left:8px}.page{width:min(100% - 28px,1180px);padding-top:22px}.hero{min-height:auto;padding:30px 22px;border-radius:24px}.hero h1{font-size:42px}.search-box{grid-template-columns:1fr}.search-field{border-right:0;border-bottom:1px solid var(--line)}.advanced-search{grid-template-columns:1fr}.search-submit{grid-column:auto;grid-row:auto;min-height:46px}.location-hint{grid-column:auto;flex-wrap:wrap}.multi-select-menu{width:min(310px,calc(100vw - 72px))}.trust-row{grid-template-columns:1fr 1fr;margin-bottom:40px}.guide-steps,.teacher-grid,.filter-layout{grid-template-columns:1fr}.filter-panel{position:static;max-height:none;overflow:visible}.subject-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr 1fr}.metric{padding:15px}.order-details{grid-template-columns:1fr 1fr}.message-layout{grid-template-columns:1fr;height:calc(100dvh - 250px);min-height:360px}.conversation-list{display:none}.profile-layout,.form-grid{grid-template-columns:1fr}.form-group.full{grid-column:auto}.admin-search-form{grid-template-columns:1fr}.location-profile{align-items:flex-start;flex-direction:column}.detail-hero{grid-template-columns:76px 1fr}.detail-hero .avatar{width:72px;height:72px}.detail-price{grid-column:1 / -1;text-align:left}.service-summary-list{grid-template-columns:1fr}.tag-check-grid,.tag-check-grid.subjects{grid-template-columns:repeat(2,minmax(0,1fr))}.field-label-row{align-items:flex-start;flex-direction:column}.modal-backdrop{align-items:end;padding:0}.modal{max-height:92vh;border-radius:24px 24px 0 0}.modal-head,.modal-body{padding-left:18px;padding-right:18px}.mobile-nav{position:fixed;left:0;right:0;bottom:0;z-index:60;display:grid;grid-template-columns:repeat(5,1fr);height:66px;border-top:1px solid var(--line);background:#fffffff5;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px)}.mobile-nav button{display:grid;place-items:center;gap:2px;padding:6px 2px;border:0;color:var(--muted);background:transparent;font-size:10px}.mobile-nav button.active{color:var(--brand);font-weight:800}.mobile-nav svg{width:19px;height:19px}}.auth-page{min-height:100vh;display:grid;grid-template-rows:auto 1fr;padding:30px clamp(18px,5vw,64px);background:#f4f7f5}.auth-brand{display:flex;align-items:center;gap:11px;color:#173b31}.auth-brand>div{display:grid;gap:2px}.auth-brand strong{font-size:17px}.auth-brand small{color:#64766f;font-size:11px}.auth-mark{width:38px;height:38px;border-radius:12px}.auth-card{align-self:center;justify-self:center;width:min(100%,440px);padding:clamp(24px,4vw,38px);border:1px solid #d8e1dc;border-radius:8px;background:#fff;box-shadow:0 18px 48px #1d3d3217}.auth-card h1{margin:5px 0 10px;font-size:clamp(27px,4vw,34px);letter-spacing:0}.auth-lead{margin:0 0 22px;color:#5f7069;line-height:1.7}.auth-tabs{display:grid;grid-template-columns:repeat(2,1fr);gap:4px;padding:4px;margin-bottom:18px;border-radius:8px;background:#eef3f0}.auth-tabs:has(button:only-child){grid-template-columns:1fr}.auth-tabs button{min-height:38px;border:0;border-radius:6px;color:#62736c;background:transparent;cursor:pointer;font-weight:750}.auth-tabs button.active{color:#174e3e;background:#fff;box-shadow:0 1px 4px #1d3d321a}.auth-form{display:grid;gap:15px}.auth-form[hidden]{display:none}.auth-form>label{display:grid;gap:7px;color:#35463f;font-size:13px;font-weight:720}.auth-form input{width:100%;min-height:44px;padding:0 12px;border:1px solid #ccd8d2;border-radius:7px;font:inherit}.auth-form input:focus{outline:2px solid rgba(21,119,91,.16);border-color:#15775b}.auth-form fieldset{display:grid;grid-template-columns:1fr 1fr;gap:9px;padding:0;border:0}.auth-form legend{margin-bottom:7px;color:#35463f;font-size:13px;font-weight:720}.role-choice{display:flex;align-items:center;gap:8px;padding:11px;border:1px solid #d5ded9;border-radius:7px;cursor:pointer}.role-choice span{display:grid;gap:2px}.role-choice small{color:#78877f;font-size:10px;font-weight:500}.auth-error{margin-bottom:14px;padding:10px 12px;border:1px solid #efc5c5;border-radius:7px;color:#972f2f;background:#fff4f4;font-size:12px}.auth-foot{margin:17px 0 0;color:#7a8882;font-size:11px;line-height:1.6}.auth-legal{display:inline-flex;gap:7px;margin-top:5px}.auth-legal a{color:#42685b;text-underline-offset:2px}.auth-actions{margin-top:22px}.setup-form{margin-top:22px;padding-top:20px;border-top:1px solid #e1e7e3}.auth-reset{width:100%;margin-top:14px;border:0;color:#65766f;background:transparent;cursor:pointer;font-size:11px;text-decoration:underline}.setup-card{width:min(100%,560px)}.install-page{min-height:100dvh;padding:38px min(6vw,72px);background:radial-gradient(circle at 80% 0%,rgba(188,225,207,.55),transparent 34%),var(--bg)}.install-hero{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:34px;align-items:center;width:min(1120px,100%);margin:0 auto;padding:44px;border:1px solid var(--line);border-radius:24px;background:#ffffffeb;box-shadow:var(--shadow)}.install-mark{display:inline-grid;margin-bottom:18px}.install-hero h1{max-width:720px;margin:8px 0 14px;font-size:clamp(34px,6vw,68px);line-height:.98;letter-spacing:0}.install-hero .subtle{max-width:640px;line-height:1.8}.install-actions{display:flex;flex-wrap:wrap;gap:12px;margin:26px 0 16px}.install-state{display:grid;gap:4px;max-width:660px;margin-top:18px;padding:13px 15px;border:1px solid #d8e6df;border-radius:8px;color:#20483d;background:#eef7f2}.install-state strong{font-size:14px}.install-state span{color:#526860;font-size:13px;line-height:1.6}.install-state[data-state=ready],.install-state[data-state=installed],.install-state[data-state=copied]{border-color:#b9ddca;background:#ecf8f1}.install-state[data-state=blocked]{border-color:#efc5c5;color:#842f2f;background:#fff3f3}.install-state[data-state=blocked] span{color:#7a514d}.install-state[data-state=manual]{border-color:#edd89e;background:#fff8e5}.install-link-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:end;max-width:660px;margin:0 0 14px;padding:14px;border:1px solid #dbe6e1;border-radius:8px;background:#fbfcfa}.install-link-card>div{display:grid;gap:3px;grid-column:1 / -1}.install-link-card strong{font-size:14px}.install-link-card span{color:var(--muted);font-size:12px;line-height:1.6}.install-link-card input{min-width:0;min-height:40px;padding:0 11px;border:1px solid var(--line);border-radius:8px;color:#24463b;background:#fff;font-size:12px}.install-link-card input:focus{outline:2px solid rgba(32,122,91,.16);border-color:var(--brand)}.install-fallback-actions{display:flex;flex-wrap:wrap;gap:10px;margin:-4px 0 14px}.install-fallback-actions[hidden],.install-fallback-actions .btn[hidden]{display:none}.install-qr-card{display:grid;gap:12px;justify-items:center;padding:18px;border:1px solid var(--line);border-radius:18px;background:#fbfcfa;text-align:center}.install-qr-card img{width:220px;height:220px;border:10px solid white;border-radius:14px;box-shadow:0 10px 22px #19302614}.install-qr-card code{max-width:100%;padding:7px 9px;border-radius:8px;background:#eef4ef;color:var(--muted);font-size:11px;word-break:break-all}.install-guide-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;width:min(1120px,100%);margin:22px auto 0}.install-steps{margin:0;padding-left:20px;color:var(--ink);line-height:1.9}.install-browser-card.recommended{border-color:#9ccbb8;box-shadow:0 0 0 3px #207a5b1a,var(--shadow-sm)}.install-browser-card.recommended .panel-head{background:#eef8f2}.legal-page{min-height:100vh;padding:32px 18px 64px;background:#f5f7f5}.legal-wrap{width:min(100%,760px);margin:0 auto}.legal-brand{display:inline-flex;align-items:center;gap:10px;margin-bottom:24px;color:#183d32;text-decoration:none;font-weight:800}.legal-brand .auth-mark{width:34px;height:34px}.legal-document{padding:clamp(24px,5vw,52px);border:1px solid #dce5e0;border-radius:8px;background:#fff;box-shadow:0 12px 32px #16392f0f}.legal-document h1{margin:0 0 8px;font-size:clamp(25px,5vw,36px);letter-spacing:0}.legal-document h2{margin:30px 0 8px;font-size:17px;letter-spacing:0}.legal-document p,.legal-document li{color:#52645d;font-size:14px;line-height:1.85}.legal-document ul{padding-left:20px}.legal-meta{margin-bottom:26px;color:#7b8984;font-size:12px}.legal-note{margin-top:28px;padding:14px 16px;border-left:3px solid #2f765f;background:#f1f6f3}.site-compliance-footer{padding:18px;border-top:1px solid #dce5e0;color:#61736c;background:#f5f7f5;font-size:12px;line-height:1.5;text-align:center}.site-compliance-footer a:hover,.site-compliance-footer a:focus-visible{color:#176247;text-decoration:underline}.legal-wrap>.site-compliance-footer{margin-top:20px;border-top:0;background:transparent}.setup-list{display:grid;gap:12px}.setup-list>div{display:grid;grid-template-columns:30px 1fr;gap:10px;align-items:start}.setup-list>div>span{width:26px;height:26px;display:grid;place-items:center;border-radius:50%;color:#176247;background:#e4f2ec;font-size:12px;font-weight:800}.setup-list p{display:grid;gap:3px;margin:0}.setup-list small{color:#6c7b75;line-height:1.55}.fixed-role>span:not(.avatar-mini){color:#344a42;font-size:12px;font-weight:750}@media(max-width:600px){.auth-page{padding:18px 14px 28px}.auth-card{margin-top:24px;padding:22px 18px}.auth-form fieldset{grid-template-columns:1fr}.fixed-role label{display:none}.install-page{padding:16px}.install-hero{grid-template-columns:1fr;padding:24px 18px;border-radius:18px}.install-actions,.install-fallback-actions{display:grid;grid-template-columns:1fr}.install-actions .btn,.install-fallback-actions .btn{width:100%}.install-link-card{grid-template-columns:1fr}.install-link-card .btn{width:100%}.install-qr-card img{width:190px;height:190px}.install-guide-grid{grid-template-columns:1fr}}@media(max-width:430px){.brand-name{display:none}.top-actions{gap:6px}.hero h1{font-size:36px}.hero-copy>p{font-size:15px}.trust-row,.dashboard-grid{grid-template-columns:1fr}.teacher-compliance-actions{width:100%;justify-content:flex-start}.teacher-compliance-guide ul{grid-template-columns:1fr}.order-top{flex-direction:column}.order-actions .btn{flex:1}.page-head{align-items:start;flex-direction:column}}.teacher-card,.subject-card,.metric,.panel,.order-card,.profile-card,.side-menu,.modal,.summary-box,.btn,.icon-button,.role-switch,.avatar-mini,.sort-select,.form-group input,.form-group select,.form-group textarea{border-radius:8px}.brand-caption{display:block;margin-top:2px;color:#83909d;font-size:10px;font-weight:650;letter-spacing:0}.portal-badge{padding:5px 8px;border:1px solid #465564;border-radius:6px;color:#c6d0da;background:#26323d;font-size:11px;font-weight:750}.admin-identity{display:flex;align-items:center;gap:9px}.admin-identity>span:last-child{display:grid;gap:2px}.admin-identity strong{color:#f6f8fa;font-size:13px}.admin-identity small{color:#8f9ca8;font-size:10px}body[data-portal=admin]{--ink: #202b33;--muted: #687680;--brand: #26745a;--brand-deep: #18533f;--brand-soft: #e8f3ee;--paper: #f3f5f6;--line: #d8dee2;background:#f3f5f6}body[data-portal=admin] .topbar{min-height:64px;padding-inline:max(24px,calc((100vw - 1360px)/2));border-bottom-color:#26333d;color:#eaf0f3;background:#17212b;-webkit-backdrop-filter:none;backdrop-filter:none}body[data-portal=admin] .brand-mark{width:34px;height:34px;border-radius:9px;box-shadow:none}body[data-portal=admin] .nav-button{color:#9eabb5}body[data-portal=admin] .nav-button:hover,body[data-portal=admin] .nav-button.active{color:#fff}body[data-portal=admin] .nav-button.active:after{background:#70c79f}body[data-portal=admin] .page{width:min(1320px,calc(100% - 48px));padding-top:26px}body[data-portal=admin] .page-head{align-items:center;margin-bottom:18px}body[data-portal=admin] .page-head h1{font-size:30px}body[data-portal=admin] .eyebrow{margin-bottom:5px;color:#417866;letter-spacing:0;text-transform:none}body[data-portal=admin] .dashboard-grid{gap:10px;margin-bottom:16px}body[data-portal=admin] .metric{padding:16px;box-shadow:none}body[data-portal=admin] .metric strong{margin-top:10px;font-size:25px}body[data-portal=admin] .panel{box-shadow:none}body[data-portal=admin] .panel-head{min-height:54px;padding:12px 16px}body[data-portal=admin] .panel-body{padding:16px}body[data-portal=admin] .data-table th{padding:10px 12px;background:#f7f8f9}body[data-portal=admin] .data-table td{padding:12px}body[data-portal=admin] .mobile-nav{background:#17212b;border-top-color:#2b3944}body[data-portal=admin] .mobile-nav button{color:#96a4ae}body[data-portal=admin] .mobile-nav button.active{color:#fff}@media(max-width:760px){body[data-portal=user] .mobile-nav{grid-template-columns:none!important;grid-auto-flow:column;grid-auto-columns:minmax(64px,1fr);overflow-x:auto}body[data-portal=admin] .portal-badge,body[data-portal=admin] .admin-identity>span:last-child{display:none}body[data-portal=admin] .page{width:min(100% - 24px,1320px)}body[data-portal=admin] .mobile-nav{grid-template-columns:repeat(5,minmax(64px,1fr))!important;overflow-x:auto}}@media(max-width:760px){body[data-portal=user]{--mobile-bg: #f5f8f6;--mobile-card: rgba(255,255,255,.97);--mobile-line: rgba(28,72,56,.1);--mobile-shadow: 0 12px 34px rgba(20,71,52,.08);background:radial-gradient(circle at 50% -80px,rgba(217,240,225,.75),transparent 310px),var(--mobile-bg)}body[data-portal=user],body[data-portal=user] button,body[data-portal=user] input,body[data-portal=user] select,body[data-portal=user] textarea{font-family:var(--app-font-stack)!important}body[data-portal=user] .topbar{min-height:56px;padding:7px 14px;border-bottom:1px solid rgba(29,74,58,.08);background:#fffffff5}body[data-portal=user] .install-shortcut,body[data-portal=user] .top-actions>.btn-sm[data-action=sign-out]{display:none}body[data-portal=user] .brand-name{display:none}body[data-portal=user] .top-actions{gap:7px}body[data-portal=user] .icon-button{width:38px;height:38px;border-radius:14px;border-color:#18533f1c;box-shadow:0 4px 14px #1447340b}body[data-portal=user] .role-switch{flex-basis:auto;max-width:116px;height:38px;padding:4px 4px 4px 9px;border-radius:14px;border-color:#18533f1c;box-shadow:0 4px 14px #1447340b}body[data-portal=user] .role-switch label{display:none}body[data-portal=user] .role-switch.fixed-role>span:not(.avatar-mini),body[data-portal=user] .role-switch select{max-width:70px;font-size:11px;font-weight:850}body[data-portal=user] .page{width:min(100% - 28px,430px);padding-top:18px;padding-bottom:92px}body[data-portal=user] .page-head{margin-bottom:16px}body[data-portal=user] .page-head h1{font-size:clamp(30px,9.5vw,38px);line-height:1.05}body[data-portal=user] .page-head .subtle{max-width:340px}body[data-portal=user] .hero{display:block;overflow:visible;padding:23px 18px 18px;border:1px solid rgba(30,82,63,.08);border-radius:26px;background:linear-gradient(150deg,#e9f6eff2,#fffffff0 64%),#fff;box-shadow:var(--mobile-shadow)}body[data-portal=user] .hero h1{font-size:clamp(32px,9vw,40px);line-height:1.12}body[data-portal=user] .hero h1 em{display:block;margin-top:2px}body[data-portal=user] .hero-copy>p{margin-bottom:16px;color:#566c64}body[data-portal=user] .home-status-strip{display:grid;grid-template-columns:1fr 1fr;gap:9px;margin:16px 0 14px}body[data-portal=user] .home-status-card{display:grid;grid-template-columns:28px 1fr;gap:2px 8px;align-items:center;min-width:0;min-height:64px;padding:10px;border:1px solid rgba(30,82,63,.08);border-radius:18px;color:var(--ink);background:#ffffffdb;box-shadow:0 8px 18px #1447340e;text-align:left}body[data-portal=user] .home-status-card span{display:grid;place-items:center;grid-row:span 2;width:28px;height:28px;border-radius:10px;color:var(--brand);background:var(--brand-soft)}body[data-portal=user] .home-status-card strong{overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}body[data-portal=user] .home-status-card small{color:var(--muted);font-size:10px}body[data-portal=user] .home-status-card.needs-action{border-color:#a365172e;background:#fff8e8}body[data-portal=user] .student-context{display:none}body[data-portal=user] .search-box{padding:10px;border:1px solid rgba(30,82,63,.09);border-radius:20px;background:#fffffff5;box-shadow:0 13px 28px #14473414}body[data-portal=user] .advanced-search .search-field{min-height:50px;border-color:#1d4a3a1a;background:#fbfdfb}body[data-portal=user] .search-submit{min-height:50px;border-radius:15px;box-shadow:0 12px 24px #207a5b33}body[data-portal=user] .location-hint{padding:1px 4px 0;font-size:10px}body[data-portal=user] .onboarding-guide,body[data-portal=user] .trust-row{margin:14px 0}body[data-portal=user] .onboarding-guide{padding:15px;border-radius:20px;box-shadow:var(--mobile-shadow)}body[data-portal=user] .onboarding-guide h2{font-size:18px}body[data-portal=user] .guide-steps{display:grid;grid-template-columns:1fr 1fr;gap:9px}body[data-portal=user] .guide-steps button{grid-template-columns:25px 1fr;min-height:74px;padding:10px;border-radius:16px}body[data-portal=user] .guide-steps small{display:none}body[data-portal=user] .trust-row{grid-template-columns:1fr 1fr;gap:9px}body[data-portal=user] .trust-item{padding:12px;border-radius:17px}body[data-portal=user] .trust-item span:not(.trust-icon){display:none}body[data-portal=user] .section-head{align-items:center;margin:24px 0 12px}body[data-portal=user] .section-head h2{font-size:20px}body[data-portal=user] .subject-grid{display:flex;gap:10px;overflow-x:auto;margin:0 -14px 24px;padding:0 14px 4px;scrollbar-width:none}body[data-portal=user] .subject-grid::-webkit-scrollbar{display:none}body[data-portal=user] .subject-card{flex:0 0 128px;padding:16px 12px;border-radius:20px;text-align:left}body[data-portal=user] .subject-icon{margin:0 0 12px}body[data-portal=user] .mobile-filter-overview,body[data-portal=user] .mobile-order-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:13px;padding:13px 14px;border:1px solid rgba(30,82,63,.08);border-radius:18px;background:var(--mobile-card);box-shadow:var(--mobile-shadow)}body[data-portal=user] .mobile-filter-overview div,body[data-portal=user] .mobile-order-summary{min-width:0}body[data-portal=user] .mobile-filter-overview strong,body[data-portal=user] .mobile-order-summary strong{display:block;font-size:15px}body[data-portal=user] .mobile-filter-overview span,body[data-portal=user] .mobile-order-summary span{display:block;overflow:hidden;color:var(--muted);font-size:11px;text-overflow:ellipsis;white-space:nowrap}body[data-portal=user] .filter-layout{display:grid;gap:13px}body[data-portal=user] .filter-panel{position:static;display:grid;max-height:none;overflow:visible;padding:14px;border-radius:20px;background:var(--mobile-card);box-shadow:var(--mobile-shadow)}body[data-portal=user] .filter-title{margin-bottom:8px}body[data-portal=user] .filter-group{padding:11px 0}body[data-portal=user] .chip-row{flex-wrap:nowrap;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}body[data-portal=user] .chip-row::-webkit-scrollbar{display:none}body[data-portal=user] .chip{flex:0 0 auto;min-height:34px;border-radius:999px;white-space:nowrap}body[data-portal=user] .result-toolbar{align-items:flex-start;margin-bottom:12px}body[data-portal=user] .result-toolbar>div{min-width:0;line-height:1.45}body[data-portal=user] .sort-select{flex:0 0 112px;min-width:0}body[data-portal=user] .teacher-grid{grid-template-columns:1fr;gap:13px}body[data-portal=user] .teacher-card{display:grid;grid-template-columns:58px 1fr;min-height:0;padding:14px;border-radius:22px;background:var(--mobile-card);box-shadow:var(--mobile-shadow)}body[data-portal=user] .teacher-cover{display:none}body[data-portal=user] .teacher-card .avatar{position:static;width:52px;height:52px;border:0;border-radius:17px;font-size:18px}body[data-portal=user] .teacher-body{min-width:0;padding:0}body[data-portal=user] .heart{top:12px;right:12px;width:31px;height:31px;border:1px solid rgba(30,82,63,.08)}body[data-portal=user] .teacher-title{padding-right:34px}body[data-portal=user] .teacher-title h3{font-size:17px}body[data-portal=user] .verified{margin-top:4px;font-size:11px}body[data-portal=user] .meta{gap:5px 9px;margin:9px 0;font-size:11px}body[data-portal=user] .tags{gap:5px;margin:10px 0 12px}body[data-portal=user] .tag{min-height:24px;padding:0 8px;font-size:11px}body[data-portal=user] .teacher-footer{align-items:center;padding-top:11px}body[data-portal=user] .price strong{font-size:19px}body[data-portal=user] .price .tiny{display:none}body[data-portal=user] .content-grid{grid-template-columns:1fr}body[data-portal=user] .booking-guide-panel{order:-1;border-radius:20px}body[data-portal=user] .booking-guide-panel .timeline{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}body[data-portal=user] .booking-guide-panel .timeline-item{display:flex;min-height:auto;gap:8px;padding:9px;border-radius:14px;background:#f7faf8}body[data-portal=user] .booking-guide-panel .timeline-item:after{display:none}body[data-portal=user] .booking-guide-panel .timeline-copy span{display:none}body[data-portal=user] .order-card{border-radius:22px;background:var(--mobile-card);box-shadow:var(--mobile-shadow)}body[data-portal=user] .order-top{align-items:flex-start}body[data-portal=user] .order-details{grid-template-columns:1fr 1fr;margin:13px 0;padding:13px;border-radius:17px;background:#f6f8f6}body[data-portal=user] .order-location{border-radius:17px}body[data-portal=user] .order-actions{display:grid;grid-template-columns:1fr}body[data-portal=user] .order-actions .btn{width:100%}body[data-portal=user] .page-messages{width:min(100%,430px);padding-top:8px}body[data-portal=user] .page-messages .page-head{width:calc(100% - 28px);margin:0 auto 12px}body[data-portal=user] .message-layout{height:calc(100dvh - 154px - env(safe-area-inset-bottom));min-height:470px;border-width:1px 0;border-radius:0;background:#f5f8f6}body[data-portal=user] .conversation-list{display:none}body[data-portal=user] .chat-head{background:#fffffff5}body[data-portal=user] .chat-body{padding:14px;background:#f5f8f6}body[data-portal=user] .bubble{max-width:86%;border-radius:18px 18px 18px 6px;box-shadow:0 6px 18px #1447340f}body[data-portal=user] .bubble.mine{border-radius:18px 18px 6px}body[data-portal=user] .chat-compose{padding:10px 12px;background:#fffffffa}body[data-portal=user] .chat-compose input{border-radius:15px;background:#f8faf8}body[data-portal=user] .profile-layout{grid-template-columns:1fr;gap:13px}body[data-portal=user] .profile-card{display:grid;grid-template-columns:58px 1fr auto;align-items:center;gap:12px;padding:16px;border-radius:22px;text-align:left;box-shadow:var(--mobile-shadow)}body[data-portal=user] .profile-card .avatar{width:54px;height:54px;margin:0;border-radius:18px;font-size:18px}body[data-portal=user] .profile-card h3,body[data-portal=user] .profile-card p{margin-bottom:3px}body[data-portal=user] .profile-card .status{justify-self:end}body[data-portal=user] .side-menu{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:0;padding:0;border:0;background:transparent}body[data-portal=user] .side-menu button{min-height:42px;border:1px solid rgba(30,82,63,.08);border-radius:15px;background:#fff;box-shadow:0 6px 16px #1447340b}body[data-portal=user] .page-profile .panel{border-radius:22px;box-shadow:var(--mobile-shadow)}body[data-portal=user] .form-grid{grid-template-columns:1fr;gap:12px}body[data-portal=user] .form-group input,body[data-portal=user] .form-group select,body[data-portal=user] .form-group textarea{border-radius:15px;background:#fbfdfb}body[data-portal=user] .location-profile{border-radius:17px}body[data-portal=user] .mobile-nav{height:calc(70px + env(safe-area-inset-bottom));padding:6px 5px env(safe-area-inset-bottom);border-top:1px solid rgba(29,74,58,.08);background:#fffffffa;box-shadow:0 -12px 34px #14473414}body[data-portal=user] .mobile-nav button{min-width:0;border-radius:15px}body[data-portal=user] .mobile-nav button.active{background:var(--brand-soft)}}@media(max-width:760px){html{scroll-padding-top:62px}body{overflow-x:hidden;padding-bottom:calc(78px + env(safe-area-inset-bottom));background:#f7faf8;font-size:14px}.shell{min-height:100dvh}.topbar{min-height:58px;gap:8px;padding:7px 12px;background:#fffffff7;box-shadow:0 1px #dfe8e3e6}.brand{flex:0 0 auto}.brand-name{display:none}.brand-mark{width:38px;height:38px;border-radius:12px;box-shadow:inset 0 -6px 14px #09463238}.top-actions{flex:1 1 auto;justify-content:flex-end;gap:6px;min-width:0}.icon-button{flex:0 0 auto;width:38px;height:38px;border-radius:12px;background:#fff}.role-switch{flex:0 1 124px;min-width:0;max-width:124px;height:40px;gap:6px;padding:5px 5px 5px 9px;border-radius:12px}.role-switch.fixed-role>span:not(.avatar-mini),.role-switch select{min-width:0;overflow:hidden;font-size:11px;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.avatar-mini{flex:0 0 auto;width:30px;height:30px;border-radius:10px;font-size:13px}.top-actions .btn-sm[data-action=sign-out]{flex:0 0 auto;min-height:34px;padding:0 8px;border-radius:10px;font-size:12px}.page{width:min(100% - 28px,480px);padding:20px 0 84px}.page-head{display:grid;gap:12px;align-items:start;margin-bottom:18px}.page-head h1{margin-bottom:7px;font-size:clamp(29px,9vw,36px);line-height:1.08}.page-head .subtle{font-size:14px;line-height:1.65}.page-head>.btn{width:fit-content;max-width:100%;min-height:42px;border-radius:13px}.eyebrow{margin-bottom:7px;font-size:10px;letter-spacing:.12em}.hero{min-height:auto;padding:24px 18px 20px;border-radius:22px;background:linear-gradient(180deg,#eaf5ef,#f8fbf8);box-shadow:0 10px 28px #1f463912}.hero:before{display:none}.hero h1{max-width:100%;font-size:clamp(34px,10vw,42px);line-height:1.08}.hero-copy>p{margin-bottom:20px;font-size:14px;line-height:1.7}.student-context{max-width:100%;font-size:11px}.search-box{gap:10px;padding:10px;border-radius:18px;box-shadow:0 12px 30px #254e3f1a}.search-field,.advanced-search .search-field{min-height:48px;padding:0 12px;border-radius:13px}.search-field select,.search-field input{height:46px;font-size:14px}.trust-row,.dashboard-grid,.content-grid,.teacher-grid,.filter-layout,.profile-layout{gap:12px}.dashboard-grid{grid-template-columns:1fr 1fr}.trust-item,.metric,.panel,.order-card,.teacher-card,.profile-card,.summary-box{border-radius:16px;box-shadow:0 4px 16px #1f46390a}.panel-head{gap:10px;padding:15px 16px}.panel-body{padding:16px}.order-card{padding:15px}.order-head{align-items:flex-start;gap:12px}.order-head .avatar-sm{width:44px;height:44px;border-radius:13px}.order-head h3{font-size:16px}.status{min-height:24px;padding:0 9px;font-size:11px}.order-details{gap:10px;padding:12px;border-radius:14px}.detail-item strong,.order-location strong{font-size:14px;line-height:1.45}.order-location{gap:10px;padding:12px;border-radius:14px}.order-actions{flex-wrap:wrap;gap:8px}.btn{min-height:42px;border-radius:13px;font-size:14px}.filter-panel{padding:14px;border-radius:16px}.filter-group select,.filter-group input,.form-group input,.form-group select,.form-group textarea{min-height:44px;border-radius:12px;font-size:14px}.chip{min-height:34px;padding:7px 11px;font-size:12px}.message-layout{height:calc(100dvh - 154px);min-height:460px;border-radius:18px}.chat-head{padding:13px 14px}.chat-messages{padding:14px}.bubble{max-width:88%;padding:10px 12px;font-size:14px;line-height:1.55}.booking-message{width:100%;padding:12px;border-radius:14px}.chat-compose{gap:8px;padding:10px}.chat-compose input{height:42px;border-radius:13px}.mobile-nav{height:calc(66px + env(safe-area-inset-bottom));padding-bottom:env(safe-area-inset-bottom);border-top-color:#d8e2ddeb;background:#fffffffa;box-shadow:0 -8px 28px #1f463914}.mobile-nav button{min-width:58px;padding:7px 2px 5px;font-size:10px;line-height:1.15}.mobile-nav svg{width:21px;height:21px;stroke-width:2.1}.mobile-nav button.active{color:var(--brand);font-weight:850}.toast-region{left:14px;right:14px;bottom:calc(82px + env(safe-area-inset-bottom))}.toast{width:100%;min-width:0;max-width:none;border-radius:14px}}@media(max-width:760px){body[data-portal=user],body[data-portal=user] *{font-family:var(--app-font-stack)!important;letter-spacing:0!important}body[data-portal=user]{overflow-x:hidden;padding-bottom:calc(92px + env(safe-area-inset-bottom));background:#f6f9f7}body[data-portal=user] .shell,body[data-portal=user] .app-main,body[data-portal=user] .page{max-width:100vw;overflow-x:hidden}body[data-portal=user] .page{width:min(100% - 24px,430px);padding-bottom:calc(104px + env(safe-area-inset-bottom))}body[data-portal=user] .topbar{min-height:58px;padding:8px 12px;gap:8px}body[data-portal=user] .brand-mark{width:42px;height:42px;border-radius:14px}body[data-portal=user] .role-switch{width:auto;max-width:142px;min-height:40px;padding:4px 6px 4px 9px;gap:6px}body[data-portal=user] .role-switch>span:not(.avatar-mini){max-width:82px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;line-height:1.15}body[data-portal=user] .top-actions{gap:6px;margin-left:auto}body[data-portal=user] .icon-button{width:38px;height:38px;border-radius:14px}body[data-portal=user] .page-head{margin:18px 0 14px}body[data-portal=user] .page-head h1{font-size:30px;line-height:1.12}body[data-portal=user] .eyebrow{font-size:11px}body[data-portal=user] .hero{padding:22px 16px 18px;border-radius:24px}body[data-portal=user] .hero h1{font-size:32px;line-height:1.18}body[data-portal=user] .hero-copy>p{font-size:14px;line-height:1.7}body[data-portal=user] .search-box,body[data-portal=user] .filter-panel,body[data-portal=user] .panel,body[data-portal=user] .order-card,body[data-portal=user] .teacher-card,body[data-portal=user] .profile-card{max-width:100%}body[data-portal=user] .profile-card{grid-template-columns:54px minmax(0,1fr);align-items:center;padding:15px;gap:10px;overflow:hidden}body[data-portal=user] .profile-card .avatar{grid-row:span 3;width:52px;height:52px;border-radius:17px}body[data-portal=user] .profile-card h3{min-width:0;margin:0;overflow:hidden;font-size:17px;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}body[data-portal=user] .profile-card p{min-width:0;margin:0;overflow:hidden;font-size:12px;line-height:1.4;text-overflow:ellipsis;white-space:nowrap}body[data-portal=user] .profile-card .status{justify-self:start;max-width:100%;min-height:22px;padding:0 8px;overflow:hidden;font-size:11px;text-overflow:ellipsis;white-space:nowrap}body[data-portal=user] .side-menu{grid-template-columns:1fr 1fr;gap:8px}body[data-portal=user] .side-menu button{min-height:44px;padding:9px 10px;font-size:13px}body[data-portal=user] .message-layout{display:flex;height:auto;min-height:calc(100dvh - 188px);flex-direction:column;gap:10px;overflow:visible;border:0;border-radius:0;background:transparent}body[data-portal=user] .conversation-list{display:flex!important;flex:0 0 auto;gap:10px;overflow-x:auto;padding:0 0 4px;border:0;background:transparent;scroll-snap-type:x mandatory}body[data-portal=user] .conversation-list::-webkit-scrollbar{display:none}body[data-portal=user] .conversation-head{display:none}body[data-portal=user] .conversation{flex:0 0 min(82vw,310px);align-items:center;padding:12px;border:1px solid rgba(28,72,56,.1)!important;border-radius:18px;background:#fff;box-shadow:0 8px 22px #1447340e;scroll-snap-align:start}body[data-portal=user] .conversation.active{border-color:#207a5b42!important;background:#eff8f2}body[data-portal=user] .conversation-copy div{align-items:center}body[data-portal=user] .chat{min-height:calc(100dvh - 292px);overflow:hidden;border:1px solid rgba(28,72,56,.1);border-radius:22px;background:#fff;box-shadow:0 10px 28px #1447340f}body[data-portal=user] .chat-head{min-height:62px;padding:12px}body[data-portal=user] .chat-head .btn{min-height:34px;padding:0 10px;font-size:12px}body[data-portal=user] .chat-body{min-height:300px;max-height:calc(100dvh - 375px);padding:12px}body[data-portal=user] .booking-message{width:100%;border-radius:16px}body[data-portal=user] .bubble{max-width:78%;padding:9px 12px;font-size:14px;line-height:1.55}body[data-portal=user] .chat-compose{padding:9px}body[data-portal=user] .chat-compose .btn{min-width:62px;min-height:42px;padding:0 12px}body[data-portal=user] .filter-layout{gap:12px}body[data-portal=user] .chip-row{max-width:100%;overflow-x:auto;padding-bottom:2px}body[data-portal=user] .result-toolbar{align-items:flex-start}body[data-portal=user] .teacher-grid{min-width:0;padding-bottom:18px}body[data-portal=user] .empty{width:100%;min-height:180px;padding:34px 16px;display:grid;place-items:center;text-align:center}body[data-portal=user] .empty p{margin:0;font-size:14px}body[data-portal=user] .order-list{padding-bottom:16px}body[data-portal=user] .order-top,body[data-portal=user] .order-person{min-width:0}body[data-portal=user] .order-person h3,body[data-portal=user] .order-person .small{overflow:hidden;text-overflow:ellipsis}body[data-portal=user] .order-details{grid-template-columns:1fr 1fr}body[data-portal=user] .mobile-nav{height:calc(76px + env(safe-area-inset-bottom));padding:7px 8px calc(7px + env(safe-area-inset-bottom));gap:4px}body[data-portal=user] .mobile-nav button{min-width:0;min-height:58px;padding:5px 2px;border-radius:20px;font-size:11px}body[data-portal=user] .mobile-nav button.active{background:#e6f4ec}body[data-portal=user] .mobile-nav svg{width:23px;height:23px}}@media(max-width:370px){body[data-portal=user] .page{width:calc(100% - 18px)}body[data-portal=user] .page-head h1{font-size:27px}body[data-portal=user] .hero h1{font-size:29px}body[data-portal=user] .side-menu{grid-template-columns:1fr}}.subject-picker-summary,.subject-preview-row,.subject-sheet-backdrop,.chat-back{display:none}@media(max-width:760px){body[data-portal=user] .page-find{padding-top:18px}body[data-portal=user] .page-find .page-head{margin-bottom:16px}body[data-portal=user] .page-find .page-head h1{max-width:92%;font-size:32px;line-height:1.12}body[data-portal=user] .page-find .page-head .subtle{max-width:92%;margin-top:9px;font-size:13px;line-height:1.65}body[data-portal=user] .subject-picker-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-width:0;padding:12px;border:1px solid rgba(29,74,58,.1);border-radius:18px;background:#f7fbf8}body[data-portal=user] .subject-picker-summary div{min-width:0}body[data-portal=user] .subject-picker-summary span{display:block;margin-bottom:3px;font-size:11px;color:var(--muted)}body[data-portal=user] .subject-picker-summary strong{display:block;overflow:hidden;color:var(--ink);font-size:15px;text-overflow:ellipsis;white-space:nowrap}body[data-portal=user] .subject-preview-row{display:flex;flex-wrap:wrap;gap:7px;overflow:visible;margin-top:10px}body[data-portal=user] .desktop-subject-picker{display:none}body[data-portal=user] .chip-static{pointer-events:none}body[data-portal=user] .subject-sheet-backdrop{position:fixed;inset:0;z-index:120;display:flex;align-items:flex-end;justify-content:center;padding:18px 12px calc(18px + env(safe-area-inset-bottom));background:#0c1f196b}body[data-portal=user] .subject-sheet{width:min(100%,430px);max-height:78dvh;overflow:hidden;border:1px solid rgba(29,74,58,.12);border-radius:28px 28px 22px 22px;background:#fff;box-shadow:0 -18px 46px #0c1f192e}body[data-portal=user] .subject-sheet header,body[data-portal=user] .subject-sheet footer{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px}body[data-portal=user] .subject-sheet header{border-bottom:1px solid rgba(29,74,58,.08)}body[data-portal=user] .subject-sheet h3{margin:2px 0 0;font-size:21px}body[data-portal=user] .subject-sheet-body{display:flex;flex-wrap:wrap;gap:9px;max-height:52dvh;overflow-y:auto;padding:16px 18px 8px}body[data-portal=user] .subject-sheet footer{border-top:1px solid rgba(29,74,58,.08)}body[data-portal=user] .subject-sheet footer .btn{flex:1}body[data-portal=user] .teacher-results{width:100%;min-width:0;overflow:hidden}body[data-portal=user] .filter-layout{grid-template-columns:minmax(0,1fr)!important;width:100%;min-width:0;overflow:hidden}body[data-portal=user] .filter-panel{width:100%;max-width:100%;min-width:0;box-sizing:border-box}body[data-portal=user] .result-summary-card{display:grid;grid-template-columns:38px minmax(0,1fr) auto;align-items:center;gap:11px;width:100%;margin:0 0 14px;padding:13px;border:1px solid rgba(29,74,58,.1);border-radius:22px;background:#fff;box-shadow:0 10px 26px #1447340e}body[data-portal=user] .result-count{display:grid;place-items:center;width:36px;height:36px;border-radius:13px;background:#e6f4ec;color:var(--brand-dark);font-weight:900}body[data-portal=user] .result-copy{min-width:0}body[data-portal=user] .result-copy strong{display:block;margin-bottom:3px;overflow:hidden;color:var(--ink);font-size:16px;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}body[data-portal=user] .result-copy span{display:block;overflow:hidden;color:var(--muted);font-size:11px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}body[data-portal=user] .result-summary-card .btn{min-height:32px;padding:0 11px;border-radius:999px;font-size:12px}body[data-portal=user] .result-sort-toolbar{display:none}body[data-portal=user] .teacher-grid{width:100%;min-width:0;gap:14px}body[data-portal=user] .teacher-card{width:100%;max-width:100%;min-width:0;box-sizing:border-box;grid-template-columns:56px minmax(0,1fr);gap:12px;padding:16px;overflow:hidden;border-radius:24px}body[data-portal=user] .teacher-body{min-width:0;width:100%}body[data-portal=user] .teacher-title{min-width:0;padding-right:0}body[data-portal=user] .teacher-title h3{overflow:hidden;font-size:17px;line-height:1.3;text-overflow:ellipsis;white-space:nowrap}body[data-portal=user] .teacher-title .rating,body[data-portal=user] .heart{display:none}body[data-portal=user] .teacher-card .meta{display:block;overflow:hidden;margin:8px 0;font-size:12px;line-height:1.55;text-overflow:ellipsis;white-space:nowrap}body[data-portal=user] .teacher-card .meta span{margin-right:8px}body[data-portal=user] .teacher-tags{display:flex;flex-wrap:wrap;gap:7px;max-width:100%;overflow:visible;margin:10px 0 0}body[data-portal=user] .teacher-tags .tag{flex:0 1 auto;max-width:100%;min-height:27px;padding:0 10px;overflow:hidden;border-radius:999px;font-size:12px;text-overflow:ellipsis;white-space:nowrap}body[data-portal=user] .teacher-footer{display:grid;grid-template-columns:minmax(0,1fr) minmax(92px,auto);align-items:end;gap:12px;margin-top:14px;padding-top:13px;border-top:1px solid rgba(29,74,58,.08)}body[data-portal=user] .teacher-footer .price{min-width:0;line-height:1}body[data-portal=user] .teacher-footer .price strong{font-size:30px;letter-spacing:0}body[data-portal=user] .teacher-footer .price span{margin-left:4px;color:var(--muted);font-size:12px}body[data-portal=user] .teacher-footer .btn{width:100%;min-width:92px;min-height:36px;padding:0 13px;border-radius:999px}body[data-portal=user] .page-messages{width:min(100%,430px)}body[data-portal=user] .page-messages .message-layout{display:block;min-height:auto;overflow:visible}body[data-portal=user] .page-messages.chat-list-open .conversation-list{display:grid!important;grid-template-columns:1fr;gap:12px;overflow:visible;padding:0}body[data-portal=user] .page-messages.chat-list-open .conversation{width:100%;flex:1 1 auto;padding:14px}body[data-portal=user] .page-messages.chat-list-open .chat{display:none}body[data-portal=user] .page-messages.chat-open .conversation-list{display:none!important}body[data-portal=user] .page-messages.chat-open .chat{display:flex;min-height:calc(100dvh - 156px - env(safe-area-inset-bottom));border-radius:0;border-width:1px 0 0;box-shadow:none}body[data-portal=user] .chat-back{display:grid;place-items:center;width:34px;height:34px;flex:0 0 auto;border:0;border-radius:50%;background:#f2f7f4;color:var(--ink);font-size:24px;line-height:1}body[data-portal=user] .chat-head{gap:9px}body[data-portal=user] .chat-head .order-person{min-width:0;flex:1}body[data-portal=user] .chat-head .btn{flex:0 0 auto}body[data-portal=user] .chat-body{max-height:none;flex:1 1 auto;min-height:0}body[data-portal=user] .mobile-nav{grid-template-columns:repeat(5,minmax(0,1fr))!important;overflow:visible}}@media(max-width:760px){body[data-portal=user] .page-find{width:min(100% - 24px,430px);padding-top:22px}body[data-portal=user] .page-find .page-head{margin:10px 0 16px}body[data-portal=user] .page-find .page-head h1{max-width:100%;font-size:31px;line-height:1.12}body[data-portal=user] .page-find .page-head .subtle{max-width:100%;margin-top:4px}body[data-portal=user] .mobile-filter-overview{display:none!important}body[data-portal=user] .filter-layout{display:flex!important;width:100%;max-width:100%;min-width:0;flex-direction:column;gap:18px;overflow:visible}body[data-portal=user] .teacher-results{order:-1;width:100%;max-width:100%;min-width:0;overflow:visible}body[data-portal=user] .filter-panel{display:block!important;width:100%!important;max-width:100%!important;min-width:0!important;padding:18px;overflow:hidden;border-radius:24px;background:#fff;box-sizing:border-box;box-shadow:0 12px 32px #14473412}body[data-portal=user] .filter-panel>*,body[data-portal=user] .filter-title,body[data-portal=user] .filter-group,body[data-portal=user] .filter-group>label,body[data-portal=user] .filter-group select,body[data-portal=user] .filter-group input,body[data-portal=user] .subject-picker-summary,body[data-portal=user] .subject-preview-row,body[data-portal=user] .match-mode,body[data-portal=user] .segmented,body[data-portal=user] .location-state,body[data-portal=user] .district-fallback{width:100%!important;max-width:100%!important;min-width:0!important;box-sizing:border-box}body[data-portal=user] .filter-title{margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid rgba(29,74,58,.07)}body[data-portal=user] .filter-title strong{font-size:22px}body[data-portal=user] .filter-group{padding:14px 0}body[data-portal=user] .filter-group>label{margin-bottom:11px;color:var(--ink);font-size:13px}body[data-portal=user] .filter-number{width:25px;height:25px;border-radius:9px}body[data-portal=user] .filter-group select,body[data-portal=user] .filter-group input{height:46px;border-radius:15px;background:#fbfdfb;font-size:15px}body[data-portal=user] .subject-picker-summary{min-height:48px;padding:8px 10px 8px 14px;border-radius:17px;background:#f4faf6}body[data-portal=user] .subject-picker-summary .btn{min-width:86px;min-height:34px;padding:0 12px}body[data-portal=user] .subject-preview-row,body[data-portal=user] .chip-row{display:flex;width:100%;max-width:100%;flex-wrap:wrap;gap:8px;overflow:visible}body[data-portal=user] .chip{max-width:100%;min-height:34px;padding:7px 13px;overflow:hidden;text-overflow:ellipsis}body[data-portal=user] .match-mode{display:grid;gap:8px;padding:4px 0 14px}body[data-portal=user] .segmented{grid-template-columns:1fr}body[data-portal=user] .segmented button{min-width:0;white-space:normal}body[data-portal=user] .result-summary-card{grid-template-columns:42px minmax(0,1fr) auto;min-height:82px;margin:0 0 18px;padding:16px 14px;border-radius:23px;box-shadow:0 12px 32px #14473412}body[data-portal=user] .result-count{width:38px;height:38px;border-radius:14px;font-size:17px}body[data-portal=user] .result-copy strong{font-size:18px}body[data-portal=user] .result-copy span{display:-webkit-box;overflow:hidden;font-size:12px;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2}body[data-portal=user] .teacher-card{display:grid;grid-template-columns:54px minmax(0,1fr);width:100%;max-width:100%;min-width:0;padding:20px 18px 18px;border-radius:25px;overflow:hidden;box-sizing:border-box}body[data-portal=user] .teacher-card .avatar{width:50px;height:50px;border-radius:16px}body[data-portal=user] .teacher-title h3{font-size:18px}body[data-portal=user] .teacher-card .meta{display:-webkit-box;max-width:100%;overflow:hidden;color:var(--muted);font-size:12px;line-height:1.55;text-overflow:ellipsis;white-space:normal;-webkit-box-orient:vertical;-webkit-line-clamp:2}body[data-portal=user] .teacher-tags{display:flex;flex-wrap:wrap;gap:8px;max-width:100%;overflow:visible}body[data-portal=user] .teacher-tags .tag{max-width:136px}body[data-portal=user] .teacher-footer{grid-template-columns:minmax(0,1fr) 112px;gap:12px;align-items:end;margin-top:15px}body[data-portal=user] .teacher-footer .price strong{font-size:30px}body[data-portal=user] .teacher-footer .btn{min-width:0;width:112px}body[data-portal=user] .page-find .page-head{margin-bottom:18px}body[data-portal=user] .page-find .page-head h1{margin-bottom:8px;font-size:clamp(30px,9vw,40px);line-height:1.08}body[data-portal=user] .page-find .teacher-results{display:grid;gap:16px;margin-top:0;padding-top:0;overflow:visible}body[data-portal=user] .page-find .result-summary-card{display:grid;grid-template-columns:38px minmax(0,1fr);grid-template-areas:"count copy" "action action";align-items:center;gap:10px 12px;min-height:0;margin:0;padding:14px;overflow:hidden;border-radius:22px}body[data-portal=user] .page-find .result-count{grid-area:count;width:38px;height:38px}body[data-portal=user] .page-find .result-copy{grid-area:copy}body[data-portal=user] .page-find .result-copy strong{font-size:17px;line-height:1.25;white-space:normal}body[data-portal=user] .page-find .result-copy span{font-size:12px;line-height:1.4;-webkit-line-clamp:2}body[data-portal=user] .page-find .result-summary-card .btn{grid-area:action;justify-self:stretch;width:100%;min-height:34px}body[data-portal=user] .page-find .teacher-grid{display:grid;gap:16px}body[data-portal=user] .page-find .teacher-card{display:grid;grid-template-columns:50px minmax(0,1fr);gap:12px;padding:18px 16px 16px;overflow:hidden}body[data-portal=user] .page-find .teacher-card .avatar{width:48px;height:48px}body[data-portal=user] .page-find .teacher-body{display:grid;gap:8px;min-width:0}body[data-portal=user] .page-find .teacher-title h3{font-size:17px;line-height:1.25}body[data-portal=user] .page-find .verified{line-height:1.35}body[data-portal=user] .page-find .teacher-card .meta{margin:0;-webkit-line-clamp:2}body[data-portal=user] .page-find .teacher-tags{margin:0}body[data-portal=user] .page-find .teacher-tags .tag{max-width:112px}body[data-portal=user] .page-find .teacher-footer{display:grid;grid-template-columns:minmax(0,1fr);gap:10px;align-items:stretch;margin-top:6px;padding-top:12px}body[data-portal=user] .page-find .teacher-footer .price{display:flex;flex-wrap:wrap;align-items:baseline;gap:3px 4px;min-width:0}body[data-portal=user] .page-find .teacher-footer .price strong{font-size:28px;line-height:1}body[data-portal=user] .page-find .teacher-footer .price span{margin-left:0}body[data-portal=user] .page-find .teacher-footer .price .tiny{flex-basis:100%;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}body[data-portal=user] .page-find .teacher-footer .btn{width:100%;min-height:38px}body[data-portal=user] .page-messages .page-head{width:100%}body[data-portal=user] .page-messages.chat-list-open .message-layout{display:block;min-height:auto;background:transparent}body[data-portal=user] .page-messages.chat-list-open .conversation-list{display:grid!important;width:100%;max-width:100%;min-width:0;gap:14px;overflow:hidden}body[data-portal=user] .page-messages.chat-list-open .conversation{width:100%!important;max-width:100%;min-width:0;min-height:86px;padding:16px 18px;border-radius:24px;box-sizing:border-box;box-shadow:0 12px 30px #14473412}body[data-portal=user] .page-messages.chat-list-open .conversation-copy,body[data-portal=user] .page-messages.chat-list-open .conversation-copy>span{display:block!important;max-width:100%;min-width:0;overflow:hidden}body[data-portal=user] .page-messages.chat-list-open .conversation-copy strong,body[data-portal=user] .page-messages.chat-list-open .conversation-copy p{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}body[data-portal=user] .page-messages.chat-open .chat{height:calc(100dvh - 220px - env(safe-area-inset-bottom));min-height:0;border-radius:0}body[data-portal=user] .page-messages.chat-open .chat-body{overflow-y:auto}body[data-portal=user] .mobile-nav{grid-template-columns:repeat(5,minmax(0,1fr))!important;overflow:visible!important}body[data-portal=user] .mobile-nav button{min-width:0!important;white-space:nowrap}}@media(max-width:760px){body[data-portal=user] .page-find .result-summary-card{grid-template-columns:38px minmax(0,1fr)!important;grid-template-areas:"count copy" "primary primary" "secondary secondary"!important}body[data-portal=user] .page-find .result-summary-card .btn-primary{grid-area:primary!important}body[data-portal=user] .page-find .result-summary-card .btn-secondary{grid-area:secondary!important}body[data-portal=user] .page-find .match-teacher-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:100%;min-width:0;overflow:hidden}body[data-portal=user] .page-find .teacher-mini-card{min-width:0;overflow:hidden}body[data-portal=user] .page-find .teacher-mini-tags span{max-width:100%}}@media(max-width:760px){body[data-portal=user] .ai-advisor-card,body[data-portal=user] .ai-report,body[data-portal=user] .ai-advice-record{padding:15px;border-radius:22px}body[data-portal=user] .hero-copy .ai-advisor-card{margin-top:18px}body[data-portal=user] .ai-advisor-copy h2{font-size:22px}body[data-portal=user] .ai-report-head{grid-template-columns:1fr}body[data-portal=user] .ai-report-grid{grid-template-columns:repeat(2,minmax(0,1fr))}body[data-portal=user] .ai-actions .btn,body[data-portal=user] .ai-record-actions .btn{flex:1 1 130px}body[data-portal=user] .ai-advice-record{grid-template-columns:1fr}body[data-portal=user] .ai-check-grid{max-height:180px;overflow-y:auto;padding-right:2px}body[data-portal=user] .ai-reasons span{white-space:normal}}body[data-portal=user] .mobile-message-title,body[data-portal=user] .message-notice,body[data-portal=user] .message-tabs{display:none}body[data-portal=user] .conversation.message-row{width:100%;appearance:none;border:0;border-bottom:1px solid #edf1ef;background:transparent;color:inherit;font:inherit;text-align:left;cursor:pointer}body[data-portal=user] .conversation.message-row:hover,body[data-portal=user] .conversation.message-row.active{background:#edf7f2}body[data-portal=user] .message-row-title{display:flex;align-items:center;justify-content:space-between;gap:8px;min-width:0}body[data-portal=user] .message-row-title strong{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}body[data-portal=user] .message-row-time{flex:0 0 auto;color:var(--muted);font-size:11px}body[data-portal=user] .message-unread{display:inline-grid;min-width:18px;height:18px;padding:0 5px;place-items:center;border-radius:999px;background:#ef4444;color:#fff;font-size:10px;font-weight:800;line-height:1}body[data-portal=user] .message-row .message-unread{margin-left:auto}@media(max-width:760px){body[data-portal=user]{--mobile-songti: SimSun, "Songti SC", STSong, "Noto Serif CJK SC", serif;font-family:var(--mobile-songti)!important;font-size:14px;background:#f5faf7}body[data-portal=user] *{font-family:var(--mobile-songti)!important;letter-spacing:0!important}body[data-portal=user] .shell main{padding-bottom:calc(78px + env(safe-area-inset-bottom))}body[data-portal=user] .page{width:100%;max-width:430px;margin:0 auto;padding:14px 14px calc(90px + env(safe-area-inset-bottom));gap:14px}body[data-portal=user] .user-topbar{height:58px;padding:8px 14px;border-bottom-color:#e7efea;background:#fffffff5}body[data-portal=user] .brand-mark{width:40px;height:40px;border-radius:12px}body[data-portal=user] .brand-name,body[data-portal=user] .install-shortcut{display:none!important}body[data-portal=user] .top-actions{gap:7px}body[data-portal=user] .icon-button{width:38px;height:38px;border-radius:13px}body[data-portal=user] .role-switch{max-width:128px;min-width:0;height:38px;padding:4px 6px 4px 9px;border-radius:13px}body[data-portal=user] .role-switch label{display:none}body[data-portal=user] .role-switch span:not(.avatar-mini){max-width:78px;overflow:hidden;font-size:12px;text-overflow:ellipsis;white-space:nowrap}body[data-portal=user] .avatar-mini{width:32px;height:32px;border-radius:11px;font-size:14px}body[data-portal=user] .mobile-nav{height:calc(64px + env(safe-area-inset-bottom));padding:5px 8px calc(5px + env(safe-area-inset-bottom));align-items:center;border-top-color:#e8f0eb;background:#fffffffa}body[data-portal=user] .mobile-nav button{height:52px;gap:2px;border-radius:18px;font-size:11px;font-weight:500}body[data-portal=user] .mobile-nav button.active{background:#eaf8f1;color:#168261;font-weight:700}body[data-portal=user] .mobile-nav svg{width:22px;height:22px}body[data-portal=user] .page-head h1{font-size:28px;line-height:1.15}body[data-portal=user] .page-head .subtle,body[data-portal=user] .small,body[data-portal=user] .tiny,body[data-portal=user] .subtle{font-size:12px;line-height:1.45}body[data-portal=user] .btn{min-height:36px;padding:8px 12px;border-radius:13px;font-size:13px}body[data-portal=user] .parent-profile-page>.page-head,body[data-portal=user] .app-messages-page>.page-head{display:none}body[data-portal=user] .parent-profile-dashboard{display:grid;gap:12px}body[data-portal=user] .parent-profile-hero{display:grid;gap:14px;padding:18px 16px 14px;border-radius:24px;color:#fff;background:linear-gradient(135deg,#168261,#0c5f49);box-shadow:0 16px 36px #1570522e}body[data-portal=user] .parent-profile-main{display:flex;align-items:center;gap:12px}body[data-portal=user] .parent-profile-main .avatar{width:54px;height:54px;border:2px solid rgba(255,255,255,.72);border-radius:18px;background:#ffffff29;box-shadow:none}body[data-portal=user] .parent-profile-main .eyebrow{margin:0 0 2px;color:#ffffffbf;font-size:10px}body[data-portal=user] .parent-profile-main h1{margin:0;max-width:210px;overflow:hidden;color:#fff;font-size:22px;line-height:1.15;text-overflow:ellipsis;white-space:nowrap}body[data-portal=user] .parent-profile-main span:not(.avatar){display:block;margin-top:4px;color:#ffffffc7;font-size:12px}body[data-portal=user] .parent-profile-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:10px;border-radius:17px;background:#ffffff1f}body[data-portal=user] .parent-profile-metrics span{display:grid;gap:2px;justify-items:center}body[data-portal=user] .parent-profile-metrics strong{color:#fff;font-size:18px;line-height:1}body[data-portal=user] .parent-profile-metrics small{color:#ffffffbf;font-size:11px}body[data-portal=user] .profile-shortcut-card{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px 8px;padding:14px 10px;border:1px solid #e5efea;border-radius:22px;background:#fff;box-shadow:0 10px 28px #0f533d0f}body[data-portal=user] .profile-shortcut{display:grid;min-width:0;justify-items:center;gap:5px;border:0;color:#173d32;background:transparent;text-align:center}body[data-portal=user] .profile-shortcut span{display:grid;place-items:center;width:34px;height:34px;border-radius:13px;color:#168261;background:#edf8f2}body[data-portal=user] .profile-shortcut strong{max-width:100%;overflow:hidden;font-size:12px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}body[data-portal=user] .profile-shortcut small{max-width:100%;overflow:hidden;color:#7a8d86;font-size:10px;text-overflow:ellipsis;white-space:nowrap}body[data-portal=user] .parent-profile-page .profile-layout{display:block}body[data-portal=user] .parent-profile-page .profile-layout>aside{display:none}body[data-portal=user] .parent-profile-page .panel,body[data-portal=user] .favorite-hub,body[data-portal=user] .ai-advice-record{border:1px solid #e5efea;border-radius:22px;background:#fff;box-shadow:0 10px 28px #0f533d0d}body[data-portal=user] .favorite-hub-summary{min-height:58px;padding:12px 14px;border-radius:22px}body[data-portal=user] .favorite-hub-summary strong{font-size:15px}body[data-portal=user] .favorite-hub-summary small{font-size:11px}body[data-portal=user] .favorite-teacher-card{border-radius:18px;padding:13px}body[data-portal=user] .favorite-actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}body[data-portal=user] .parent-profile-page .panel-head{min-height:auto;padding:13px 14px}body[data-portal=user] .parent-profile-page .panel-head h3{font-size:17px}body[data-portal=user] .parent-profile-page .panel-body{padding:14px}body[data-portal=user] .form-grid{gap:12px}body[data-portal=user] .form-group label{margin-bottom:6px;font-size:12px}body[data-portal=user] input,body[data-portal=user] select,body[data-portal=user] textarea{min-height:40px;border-radius:13px;font-size:14px}body[data-portal=user] textarea{min-height:82px}body[data-portal=user] .app-message-list{display:grid!important;gap:10px;padding:0;border:0;background:transparent;overflow:visible}body[data-portal=user] .mobile-message-title{display:grid;grid-template-columns:1fr auto;align-items:end;padding:8px 2px 6px}body[data-portal=user] .mobile-message-title h2{margin:0;color:#123c31;font-size:24px;line-height:1.1}body[data-portal=user] .mobile-message-title span{color:#7c8f88;font-size:12px}body[data-portal=user] .message-notice{display:grid;grid-template-columns:28px minmax(0,1fr) auto;align-items:center;gap:8px;padding:10px 12px;border-radius:16px;color:#17775b;background:#e8f8f0}body[data-portal=user] .message-notice span{display:grid;place-items:center}body[data-portal=user] .message-notice p{margin:0;overflow:hidden;font-size:12px;line-height:1.4;text-overflow:ellipsis;white-space:nowrap}body[data-portal=user] .message-notice button{min-height:30px;padding:0 12px;border:1px solid #80cbb0;border-radius:999px;color:#167a5d;background:#fff;font-size:12px}body[data-portal=user] .message-tabs{display:flex;gap:8px;overflow-x:auto;padding:4px 0 2px;scrollbar-width:none}body[data-portal=user] .message-tabs::-webkit-scrollbar{display:none}body[data-portal=user] .message-tabs button{flex:0 0 auto;display:inline-flex;align-items:center;gap:5px;min-height:32px;padding:0 13px;border:0;border-radius:999px;color:#64756f;background:#f1f5f3;font-size:12px}body[data-portal=user] .message-tabs button.active{color:#167a5d;background:#e6f6ee;font-weight:700}body[data-portal=user] .message-tabs span,body[data-portal=user] .message-unread{display:grid;place-items:center;min-width:18px;height:18px;border-radius:999px;color:#fff;background:#ef4444;font-size:10px}body[data-portal=user] .app-message-list .conversation-head{display:none}body[data-portal=user] .page-messages.chat-list-open .message-row,body[data-portal=user] .app-message-list .message-row{display:grid!important;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:11px;width:100%!important;min-height:74px;padding:12px 2px;border:0;border-bottom:1px solid #edf2ef;border-radius:0;background:transparent;box-shadow:none;text-align:left}body[data-portal=user] .page-messages.chat-list-open .message-row.active,body[data-portal=user] .app-message-list .message-row.active{padding:12px;border-bottom-color:transparent;border-radius:18px;background:#eef9f3}body[data-portal=user] .app-message-list .avatar-sm{width:44px;height:44px;border-radius:15px;font-size:17px}body[data-portal=user] .message-row-title{display:flex!important;align-items:center;justify-content:space-between;gap:8px;min-width:0}body[data-portal=user] .message-row-title strong{min-width:0;overflow:hidden;color:#153c32;font-size:15px;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}body[data-portal=user] .message-row-time{flex:0 0 auto;color:#9aa8a3;font-size:11px}body[data-portal=user] .app-message-list .conversation-copy p{margin-top:5px;color:#7b8a85;font-size:12px;line-height:1.35}body[data-portal=user] .page-messages.chat-open .chat{height:calc(100dvh - 122px - env(safe-area-inset-bottom));border:0;border-radius:0;background:#f4faf7}body[data-portal=user] .chat-head{padding:10px 12px;background:#fff}body[data-portal=user] .chat-head .order-person strong{font-size:14px}body[data-portal=user] .chat-back{font-size:24px}body[data-portal=user] .chat-body{padding:12px;gap:10px}body[data-portal=user] .booking-message,body[data-portal=user] .system-feed-item{border-radius:16px;padding:11px}body[data-portal=user] .booking-message strong,body[data-portal=user] .system-feed-item strong{font-size:13px}body[data-portal=user] .bubble{max-width:78%;padding:9px 11px;border-radius:15px 15px 15px 5px;font-size:13px;line-height:1.45}body[data-portal=user] .bubble.mine{border-radius:15px 15px 5px}body[data-portal=user] .chat-compose{gap:7px;padding:10px 12px}body[data-portal=user] .chat-compose input{height:38px;border-radius:999px;font-size:13px}body[data-portal=user] .chat-compose .btn{min-height:38px;border-radius:999px}}.order-group-list{display:grid;gap:14px}.order-group{display:grid;gap:10px}.order-group-toggle{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;width:100%;padding:14px 16px;border:1px solid var(--line);border-radius:16px;color:var(--ink);background:#fff;text-align:left;box-shadow:0 8px 22px #1444360d;cursor:pointer}.order-group-toggle span:first-child{display:grid;gap:3px;min-width:0}.order-group-toggle strong{font-size:17px;line-height:1.2}.order-group-toggle small{overflow:hidden;color:var(--muted);font-size:12px;line-height:1.4;text-overflow:ellipsis;white-space:nowrap}.order-group-chevron{min-width:44px;color:var(--brand);font-size:13px;font-weight:800;text-align:right}.order-group-body{display:grid;gap:12px}.profile-shortcut{cursor:pointer}.profile-shortcut:active{transform:translateY(1px)}@media(max-width:720px){body[data-portal=user] .order-group-list{gap:12px}body[data-portal=user] .order-group-toggle{min-height:62px;padding:12px 14px;border-radius:18px}body[data-portal=user] .order-group-toggle strong{font-size:16px}body[data-portal=user] .order-group-toggle small{font-size:11px}body[data-portal=user] .order-group-body .order-card{margin:0}}body[data-portal=user] .favorite-hub-toggle{display:inline-flex;align-items:center;justify-content:center;min-width:64px;height:34px;padding:0 16px;border-radius:999px;color:#fff;background:linear-gradient(135deg,#208d68,#0f6b50);box-shadow:0 10px 22px #0f6b5038;font-size:13px;font-weight:850;white-space:nowrap}body[data-portal=user] .favorite-hub-summary:hover .favorite-hub-toggle{background:linear-gradient(135deg,#25a175,#0d6047)}@media(min-width:761px){body[data-portal=user] .parent-profile-dashboard{display:grid;gap:16px;margin-bottom:20px}body[data-portal=user] .parent-profile-hero{display:grid;grid-template-columns:minmax(0,1fr) minmax(260px,340px);align-items:center;gap:18px;padding:24px;border:1px solid rgba(255,255,255,.24);border-radius:28px;color:#fff;background:linear-gradient(135deg,#1b7b5c,#245f4a);box-shadow:0 18px 42px #10533f29}body[data-portal=user] .parent-profile-main{display:flex;align-items:center;gap:18px;min-width:0}body[data-portal=user] .parent-profile-main .avatar{display:grid;flex:0 0 auto;place-items:center;width:72px;height:72px;border:4px solid rgba(255,255,255,.82);border-radius:22px;color:#fff;background:#ffffff24;box-shadow:0 14px 30px #0424192e;font-size:28px;font-weight:850}body[data-portal=user] .parent-profile-main .eyebrow{margin:0 0 5px;color:#ffffffc7;font-size:11px}body[data-portal=user] .parent-profile-main h1{margin:0;color:#fff;font-size:32px;line-height:1.16}body[data-portal=user] .parent-profile-main span:not(.avatar){display:block;margin-top:7px;color:#ffffffd1;font-size:14px}body[data-portal=user] .parent-profile-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:12px;border-radius:20px;background:#ffffff21}body[data-portal=user] .parent-profile-metrics span{display:grid;gap:4px;justify-items:center;min-width:0}body[data-portal=user] .parent-profile-metrics strong{color:#fff;font-size:20px;line-height:1}body[data-portal=user] .parent-profile-metrics small{color:#ffffffc7;font-size:12px}body[data-portal=user] .profile-shortcut-card{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;padding:14px;border:1px solid #e4efea;border-radius:24px;background:#fff;box-shadow:0 12px 32px #10533f12}body[data-portal=user] .profile-shortcut{display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-areas:"icon title" "icon desc";align-items:center;gap:3px 10px;min-width:0;min-height:66px;padding:12px;border:1px solid #e4efea;border-radius:18px;color:#183d32;background:linear-gradient(180deg,#fff,#f8fcfa);text-align:left;box-shadow:0 8px 20px #10533f0d}body[data-portal=user] .profile-shortcut:hover{border-color:#208d6852;background:#f2fbf6}body[data-portal=user] .profile-shortcut span{display:grid;grid-area:icon;place-items:center;width:38px;height:38px;border-radius:14px;color:#168261;background:#eaf8f1}body[data-portal=user] .profile-shortcut strong{grid-area:title;min-width:0;overflow:hidden;font-size:14px;font-weight:800;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}body[data-portal=user] .profile-shortcut small{grid-area:desc;min-width:0;overflow:hidden;color:#73857f;font-size:12px;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}}.teacher-work-metrics{grid-template-columns:repeat(5,minmax(0,1fr))}.teacher-booking-tabs,.demand-main-tabs{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 18px}.teacher-booking-tabs .chip strong{margin-left:5px}.teacher-demand-filters{display:grid;grid-template-columns:minmax(180px,1.6fr) repeat(6,minmax(110px,1fr));gap:10px;padding:14px;margin-bottom:18px}.teacher-demand-filters input,.teacher-demand-filters select{min-width:0}.booking-deadline{display:flex;justify-content:space-between;gap:12px;align-items:center;margin:12px 0;padding:10px 12px;border-radius:10px;background:#fff7e7;color:#855b05;font-size:13px}.booking-card-timeline{margin:14px 0;padding-top:13px;border-top:1px solid var(--line)}.booking-card-timeline>strong{display:block;margin-bottom:9px;font-size:13px}.booking-mini-timeline{display:flex;gap:6px;list-style:none;margin:0;padding:0;overflow-x:auto}.booking-mini-timeline li{display:flex;align-items:flex-start;gap:7px;min-width:130px;position:relative}.booking-mini-timeline li>span{width:9px;height:9px;border-radius:50%;background:var(--brand);margin-top:4px;flex:none}.booking-mini-timeline li div{display:flex;flex-direction:column;gap:2px}.booking-mini-timeline li strong{font-size:12px}.booking-mini-timeline li small{color:var(--muted);font-size:10px}.order-learning-context{line-height:1.75;margin-bottom:14px}.schedule-side-stack{display:grid;gap:16px;align-content:start}.schedule-agenda{display:grid;gap:9px}.schedule-agenda-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px;border:1px solid var(--line);border-left:4px solid #b8c5c0;border-radius:10px;background:#fff}.schedule-agenda-item.accepted,.schedule-agenda-item.teaching{border-left-color:var(--brand)}.schedule-agenda-item.time_proposed,.schedule-agenda-item.confirm{border-left-color:#d69b27}.schedule-agenda-item div{display:flex;flex-direction:column;gap:3px}.schedule-agenda-item span{font-size:12px;color:var(--muted)}.schedule-range-item.locked{background:#f3f6f5}.response-card .status{white-space:nowrap}.demand-goal-line{display:flex;gap:12px;flex-wrap:wrap;margin:-4px 0 12px;color:var(--muted);font-size:13px}.demand-goal-line strong{color:var(--text)}@media(max-width:1080px){.teacher-work-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.teacher-demand-filters{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:600px){.teacher-work-metrics,.teacher-demand-filters{grid-template-columns:1fr}.teacher-booking-tabs{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px}.teacher-booking-tabs .chip{flex:none}.booking-deadline,.schedule-agenda-item{align-items:flex-start;flex-direction:column}.booking-mini-timeline{padding-bottom:5px}.modal-foot{flex-wrap:wrap}.modal-foot .btn{flex:1 1 130px}}.admin-detail-modal .status-line{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.admin-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-long-text{white-space:pre-wrap;line-height:1.8}.admin-note-list{display:grid;gap:10px}.admin-note-list article{padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#f8faf9}.admin-note-list article strong{margin-right:10px}.admin-note-list article span{color:var(--muted);font-size:12px}.admin-note-list article p{margin:7px 0 0;line-height:1.65}.admin-inline-actions,.modal-inline-actions{display:flex;justify-content:flex-end;margin-top:14px}.admin-pagination{display:flex;align-items:center;justify-content:center;gap:14px;padding:16px}.admin-user-filter-form{grid-template-columns:minmax(220px,2fr) minmax(120px,1fr) minmax(120px,1fr) auto;align-items:end}.admin-risk-list .summary-row{width:100%;border:0;background:none;cursor:pointer;text-align:left}.admin-funnel-grid{margin-top:16px}.table-actions{display:flex;gap:7px;flex-wrap:wrap}@media(max-width:760px){.admin-detail-grid,.admin-user-filter-form{grid-template-columns:1fr}.admin-detail-modal .status-line{align-items:flex-start;flex-direction:column}.admin-user-filter-form .btn{width:100%}}.focused-order>.order-card{border-color:var(--brand);box-shadow:0 0 0 3px #23755c24,var(--shadow-sm)}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}@media(max-width:760px),(orientation:landscape)and (max-width:900px)and (max-height:500px){body[data-portal]{min-height:100vh;min-height:100dvh;overflow-x:hidden;overflow-x:clip;overscroll-behavior-x:none}body[data-portal] #app,body[data-portal] #app .shell,body[data-portal] #app main,body[data-portal] #app .page,body[data-portal] #modal-root,body[data-portal] #modal-root .modal{min-width:0;max-width:100%}body[data-portal] #app :where(.panel,.teacher-card,.order-card,.profile-card,.summary-box,.empty),body[data-portal] #modal-root :where(.modal,.summary-box),body[data-portal] #toast-region .toast{min-width:0;overflow-wrap:anywhere;word-break:break-word}body[data-portal] #app button,body[data-portal] #modal-root button,body[data-portal] #app .btn,body[data-portal] #modal-root .btn{min-width:44px;min-height:44px;touch-action:manipulation;-webkit-tap-highlight-color:transparent}body[data-portal] #app input:not([type=checkbox]):not([type=radio]),body[data-portal] #modal-root input:not([type=checkbox]):not([type=radio]),body[data-portal] #app select,body[data-portal] #modal-root select,body[data-portal] #app textarea,body[data-portal] #modal-root textarea{min-height:44px;font-size:16px!important}body[data-portal=user] .brand,body[data-portal=user] .icon-button,body[data-portal=user] .chat-back,body[data-portal] #modal-root .modal-close{min-width:44px;min-height:44px}body[data-portal=user] .chip,body[data-portal=user] .segmented button,body[data-portal=user] .message-tabs button,body[data-portal=admin] .chip,body[data-portal=admin] .summary-row{min-height:44px}body[data-portal=admin] .table-wrap{position:relative;padding-bottom:4px;scrollbar-width:thin}body[data-portal=admin] .data-table th:last-child,body[data-portal=admin] .data-table td:last-child{position:sticky;right:0;z-index:2;min-width:68px;background:#fff;box-shadow:-10px 0 14px -14px #17212bbf}body[data-portal=admin] .data-table th:last-child{z-index:3;background:#f7f8f9}body[data-portal=admin] .data-table td:last-child .btn{min-width:56px}.auth-page{min-height:100vh;min-height:100dvh;padding-top:max(18px,env(safe-area-inset-top,0px));padding-right:max(14px,env(safe-area-inset-right,0px));padding-bottom:max(28px,env(safe-area-inset-bottom,0px));padding-left:max(14px,env(safe-area-inset-left,0px))}.role-choice{min-height:44px}.modal-backdrop{min-height:100vh;min-height:100dvh;padding-top:env(safe-area-inset-top,0px);padding-right:env(safe-area-inset-right,0px);padding-left:env(safe-area-inset-left,0px);overscroll-behavior:contain}.modal{max-height:calc(100vh - env(safe-area-inset-top,0px));max-height:calc(100dvh - env(safe-area-inset-top,0px));overscroll-behavior:contain;scroll-padding-bottom:calc(84px + env(safe-area-inset-bottom,0px));-webkit-overflow-scrolling:touch}.modal-foot{padding-bottom:calc(16px + env(safe-area-inset-bottom,0px))}body[data-portal]:has(#modal-root .modal-backdrop){overflow:hidden;overscroll-behavior:none}}@media(max-width:760px){body[data-portal] .topbar{min-height:calc(58px + env(safe-area-inset-top,0px));padding-top:calc(7px + env(safe-area-inset-top,0px));padding-right:max(12px,env(safe-area-inset-right,0px));padding-left:max(12px,env(safe-area-inset-left,0px))}body[data-portal] #app .mobile-nav button{min-width:0}body[data-portal] .mobile-nav{padding-right:max(8px,env(safe-area-inset-right,0px));padding-left:max(8px,env(safe-area-inset-left,0px))}body[data-portal=user] .page-messages.chat-open .chat{height:calc(100dvh - 136px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));min-height:0}body[data-portal=user] .chat-body,body[data-portal=user] .conversation-list{overscroll-behavior:contain;-webkit-overflow-scrolling:touch}body[data-portal] #toast-region{right:max(14px,env(safe-area-inset-right,0px));bottom:calc(82px + env(safe-area-inset-bottom,0px));left:max(14px,env(safe-area-inset-left,0px))}}@media(orientation:landscape)and (max-width:900px)and (max-height:500px){body[data-portal] .topbar{gap:10px;min-height:calc(56px + env(safe-area-inset-top,0px));padding-top:env(safe-area-inset-top,0px);padding-right:max(12px,env(safe-area-inset-right,0px));padding-left:max(12px,env(safe-area-inset-left,0px))}body[data-portal=user] .brand-name,body[data-portal=user] .install-shortcut,body[data-portal=user] .role-switch label{display:none!important}body[data-portal=user] .brand,body[data-portal=user] .nav,body[data-portal=user] .top-actions,body[data-portal=user] .role-switch{min-width:0}body[data-portal=user] .brand{flex:0 1 auto}body[data-portal=user] .nav{gap:0}body[data-portal=user] .nav-button{min-width:40px;padding-right:6px;padding-left:6px}body[data-portal=user] .top-actions{flex:0 1 auto;gap:6px}body[data-portal=user] .role-switch{flex:0 1 142px;max-width:142px;padding:4px 5px 4px 8px}body[data-portal=user] .role-switch select,body[data-portal=user] .role-switch>span:not(.avatar-mini){min-width:0;max-width:92px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.auth-page{align-content:start}.auth-card{align-self:start;margin-top:12px}}
