:root{
  --ink:#101828;--muted:#667085;--line:#e7e9ef;--surface:#fff;--soft:#f7f8fb;--brand:#6d5dfc;--brand2:#18bfa2;--danger:#b42318;--success:#067647;--warning:#b54708;--radius:20px;--shadow:0 20px 60px rgba(16,24,40,.08)
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:"Tahoma","Arial",sans-serif;color:var(--ink);background:#fff;line-height:1.7}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit}.container{width:min(1180px,calc(100% - 32px));margin-inline:auto}.site-header{position:sticky;top:0;z-index:30;background:rgba(255,255,255,.88);backdrop-filter:blur(18px);border-bottom:1px solid rgba(231,233,239,.8)}.header-inner{min-height:76px;display:flex;align-items:center;gap:32px}.brand{display:flex;align-items:center;gap:10px;min-width:max-content}.brand span{display:grid;line-height:1.1}.brand b{font-size:18px;letter-spacing:.2px}.brand small{font-size:10px;color:var(--muted);letter-spacing:1.8px;text-transform:uppercase}.main-nav{display:flex;gap:28px;margin-inline:auto}.main-nav a,.text-link{color:#475467;font-size:14px}.main-nav a:hover,.text-link:hover{color:var(--brand)}.header-actions{display:flex;align-items:center;gap:14px}.btn{border:0;border-radius:12px;padding:12px 18px;display:inline-flex;justify-content:center;align-items:center;gap:8px;font-weight:700;cursor:pointer;transition:.2s}.btn:hover{transform:translateY(-1px)}.btn.primary{background:var(--ink);color:#fff;box-shadow:0 9px 24px rgba(16,24,40,.14)}.btn.brand{background:var(--brand);color:#fff}.btn.ghost{background:#fff;border:1px solid var(--line);color:var(--ink)}.btn.danger{background:#fff0ee;color:var(--danger)}.btn.small{padding:9px 14px;font-size:13px}.hero{padding:86px 0 72px;background:radial-gradient(circle at 15% 10%,rgba(109,93,252,.10),transparent 28%),radial-gradient(circle at 85% 22%,rgba(24,191,162,.10),transparent 24%),#fff}.hero-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:56px;align-items:center}.eyebrow{font-size:12px;letter-spacing:1.6px;text-transform:uppercase;color:var(--brand);font-weight:800;margin-bottom:14px}.hero h1{font-size:clamp(42px,6vw,74px);line-height:1.08;margin:0 0 18px;letter-spacing:-1.8px}.hero h1 span{background:linear-gradient(100deg,var(--brand),var(--brand2));-webkit-background-clip:text;background-clip:text;color:transparent}.hero p{font-size:19px;color:#475467;max-width:640px;margin:0 0 28px}.hero-actions{display:flex;gap:12px;flex-wrap:wrap}.hero-card{background:var(--ink);color:#fff;border-radius:32px;padding:26px;box-shadow:0 36px 80px rgba(16,24,40,.19);position:relative;overflow:hidden}.hero-card:before{content:"";position:absolute;width:260px;height:260px;border-radius:50%;background:linear-gradient(135deg,var(--brand),var(--brand2));filter:blur(10px);opacity:.32;left:-100px;top:-120px}.lesson-preview{position:relative;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.12);border-radius:22px;padding:20px}.preview-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:28px}.live-dot{display:flex;align-items:center;gap:7px;font-size:12px}.live-dot i{width:8px;height:8px;border-radius:50%;background:#42e6bd;box-shadow:0 0 0 6px rgba(66,230,189,.12)}.teacher-line{display:flex;gap:12px;align-items:center}.fake-avatar{width:50px;height:50px;border-radius:16px;background:linear-gradient(135deg,#8b80ff,#4fe0c3);display:grid;place-items:center;font-weight:800}.teacher-line small{display:block;color:#c7ced9}.preview-info{margin-top:24px;display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.preview-info div{background:rgba(255,255,255,.06);border-radius:14px;padding:12px}.preview-info small{display:block;color:#aeb8c8;font-size:11px}.preview-info strong{font-size:13px}.section{padding:78px 0}.section.soft{background:var(--soft)}.section-head{max-width:720px;margin-bottom:34px}.section-head h2{font-size:34px;margin:0 0 10px}.section-head p{color:var(--muted);margin:0}.feature-grid,.subject-grid,.steps-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.feature-card,.subject-card,.step-card{border:1px solid var(--line);border-radius:20px;padding:24px;background:#fff}.feature-card .icon,.step-num{width:44px;height:44px;border-radius:14px;background:#f0efff;color:var(--brand);display:grid;place-items:center;font-weight:800;margin-bottom:20px}.feature-card h3,.subject-card h3,.step-card h3{margin:0 0 8px;font-size:18px}.feature-card p,.subject-card p,.step-card p{margin:0;color:var(--muted);font-size:14px}.subject-card{position:relative;overflow:hidden;min-height:170px}.subject-card .status-chip{position:absolute;top:18px;left:18px}.status-chip{display:inline-flex;border-radius:99px;padding:6px 10px;background:#f2f4f7;color:#475467;font-size:11px;font-weight:700}.cta-panel{border-radius:30px;background:linear-gradient(120deg,#101828,#25314b);color:#fff;padding:42px;display:flex;align-items:center;justify-content:space-between;gap:22px}.cta-panel h2{margin:0 0 8px;font-size:32px}.cta-panel p{margin:0;color:#c7ced9}.site-footer{padding:38px 0;border-top:1px solid var(--line);background:#fff}.footer-inner{display:flex;justify-content:space-between;gap:24px}.site-footer p{color:var(--muted);margin:4px 0 0;font-size:13px}.footer-meta{display:flex;align-items:center;gap:18px;color:var(--muted);font-size:12px}.auth-shell{min-height:calc(100vh - 76px);padding:64px 16px;display:grid;place-items:center;background:radial-gradient(circle at 20% 10%,rgba(109,93,252,.10),transparent 30%),var(--soft)}.auth-card{width:min(480px,100%);background:#fff;border:1px solid var(--line);border-radius:26px;padding:30px;box-shadow:var(--shadow)}.auth-card.wide-card{width:min(650px,100%)}.auth-card h1{margin:0 0 8px;font-size:30px}.muted{color:var(--muted)}.stack-form{display:grid;gap:16px;margin-top:22px}.field{display:grid;gap:7px}.field label{font-weight:700;font-size:13px}.field input,.field select,.field textarea{width:100%;border:1px solid #d0d5dd;border-radius:12px;padding:12px 14px;background:#fff;outline:none;transition:.15s}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--brand);box-shadow:0 0 0 4px rgba(109,93,252,.08)}.field small{color:var(--muted)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.auth-foot{text-align:center;margin-top:18px;color:var(--muted);font-size:13px}.auth-foot a{color:var(--brand);font-weight:700}.alert{border-radius:12px;padding:12px 14px;margin:12px 0;font-size:13px}.alert.success{background:#ecfdf3;color:var(--success);border:1px solid #abefc6}.alert.danger{background:#fef3f2;color:var(--danger);border:1px solid #fecdca}.alert.warning{background:#fffaeb;color:var(--warning);border:1px solid #fedf89}.alert.info{background:#eef4ff;color:#3538cd;border:1px solid #c7d7fe}.flash-wrap{width:min(1180px,calc(100% - 32px));margin:12px auto}.notice-box{background:var(--soft);padding:14px;border-radius:12px;color:#475467}.notice-box code{word-break:break-all}.portal-body{background:#f6f7fb;min-height:100vh}.portal-topbar{height:72px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 26px;position:sticky;top:0;z-index:20}.user-chip{display:flex;align-items:center;gap:10px}.user-chip .avatar{width:38px;height:38px;border-radius:12px;background:#f0efff;color:var(--brand);display:grid;place-items:center;font-weight:800}.user-chip div{display:grid;line-height:1.2}.user-chip b{font-size:13px}.user-chip small{font-size:10px;color:var(--muted)}.portal-layout{display:grid;grid-template-columns:230px 1fr;min-height:calc(100vh - 72px)}.portal-sidebar{background:#fff;border-left:1px solid var(--line);padding:20px 12px}.portal-sidebar nav{display:grid;gap:5px;position:sticky;top:92px}.portal-sidebar a{padding:11px 13px;border-radius:10px;color:#475467;font-size:13px;font-weight:700}.portal-sidebar a:hover{background:#f6f5ff;color:var(--brand)}.portal-sidebar .logout-link{margin-top:18px;color:var(--danger)}.portal-main{padding:28px;width:min(1320px,100%);overflow-x:hidden}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:22px}.page-head h1{margin:0;font-size:28px}.page-head p{margin:4px 0 0;color:var(--muted);font-size:13px}.card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:22px}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.stat-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:20px}.stat-card small{color:var(--muted)}.stat-card strong{display:block;font-size:28px;margin-top:7px}.placeholder-card{border:1px dashed #c7cad4;border-radius:18px;padding:26px;background:rgba(255,255,255,.55)}.placeholder-card h3{margin-top:0}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:15px;background:#fff}table{border-collapse:collapse;width:100%;min-width:760px}th,td{padding:13px 14px;border-bottom:1px solid var(--line);text-align:right;font-size:13px}th{background:#fafafa;color:#475467;font-size:12px}tr:last-child td{border-bottom:0}.badge{display:inline-flex;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:700}.badge.active{background:#ecfdf3;color:var(--success)}.badge.disabled{background:#f2f4f7;color:#667085}.badge.role{background:#f0efff;color:var(--brand)}.actions{display:flex;gap:8px;flex-wrap:wrap}.inline-form{display:inline}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:18px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.card h2,.card h3{margin-top:0}.form-section{margin-top:20px}.code-box{direction:ltr;text-align:left;word-break:break-all;background:#101828;color:#fff;border-radius:12px;padding:13px;font-family:monospace;font-size:12px}.recovery-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;direction:ltr}.recovery-grid code{background:#f2f4f7;padding:8px;border-radius:8px;text-align:center}.empty-state{text-align:center;padding:44px 20px;color:var(--muted)}
@media(max-width:900px){.main-nav{display:none}.hero-grid{grid-template-columns:1fr}.feature-grid,.subject-grid,.steps-grid,.cards,.grid-3{grid-template-columns:1fr 1fr}.portal-layout{grid-template-columns:1fr}.portal-sidebar{border-left:0;border-bottom:1px solid var(--line);padding:8px 12px;overflow:auto}.portal-sidebar nav{display:flex;position:static;min-width:max-content}.portal-sidebar .logout-link{margin-top:0}.portal-main{padding:20px}.cta-panel{align-items:flex-start;flex-direction:column}}
@media(max-width:620px){.header-inner{min-height:66px}.header-actions .text-link{display:none}.hero{padding:58px 0}.hero h1{font-size:42px}.feature-grid,.subject-grid,.steps-grid,.cards,.grid-2,.grid-3,.form-row{grid-template-columns:1fr}.preview-info{grid-template-columns:1fr}.cta-panel{padding:28px}.portal-topbar{padding:0 14px}.user-chip div{display:none}.portal-main{padding:14px}.page-head{align-items:flex-start;flex-direction:column}.auth-card{padding:22px}.footer-inner{flex-direction:column}.footer-meta{justify-content:space-between}}

/* Phase 2 — Catalog & Academic Offering */
.catalog-stats{grid-template-columns:repeat(5,1fr)}
.catalog-flow{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.catalog-flow-card{background:#fff;border:1px solid var(--line);border-radius:18px;padding:18px;color:var(--ink);display:flex;gap:12px;min-height:150px;transition:.2s}
.catalog-flow-card:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:#c7c2ff}
.catalog-flow-card>span{width:38px;height:38px;flex:0 0 38px;border-radius:12px;background:#f0efff;color:var(--brand);display:grid;place-items:center;font-weight:800}
.catalog-flow-card h3{margin:2px 0 7px;font-size:16px}.catalog-flow-card p{margin:0;color:var(--muted);font-size:12px;line-height:1.8}
.catalog-editor-grid{align-items:start}.check-line{display:flex;gap:9px;align-items:center;font-size:13px;font-weight:700}.check-line input{width:17px;height:17px}
.catalog-hero{padding:68px 0 52px;background:radial-gradient(circle at 15% 20%,rgba(109,93,252,.10),transparent 28%),linear-gradient(180deg,#fff,#fafaff)}
.catalog-hero h1{font-size:clamp(38px,5vw,58px);margin:0 0 10px}.catalog-hero p{max-width:720px;color:var(--muted);font-size:17px;margin:0}
.catalog-section{padding-top:42px}.catalog-search{display:grid;grid-template-columns:1fr 1fr auto auto;gap:14px;align-items:end;margin-top:-76px;position:relative;box-shadow:0 22px 50px rgba(16,24,40,.10);margin-bottom:48px}
.section-head.compact{display:flex;justify-content:space-between;align-items:end;max-width:none;margin-bottom:24px}.section-head.compact h2{font-size:28px}.section-head.compact p{font-size:13px}
.public-subject-grid{grid-template-columns:repeat(3,1fr)}.public-subject-card{display:flex;flex-direction:column;gap:12px;min-height:260px}.public-subject-card p{flex:1;line-height:1.8}
.subject-card-top{display:flex;justify-content:space-between;align-items:center}.subject-icon{width:48px;height:48px;border-radius:15px;background:linear-gradient(135deg,#f0efff,#e9fbf7);color:var(--brand);display:grid;place-items:center;font-size:18px;font-weight:900}.subject-icon.large{width:68px;height:68px;border-radius:20px;font-size:25px}
.subject-meta{display:flex;justify-content:space-between;gap:12px;color:#667085;font-size:12px;border-top:1px solid var(--line);padding-top:12px}.catalog-empty{grid-column:1/-1}.catalog-empty p{margin-bottom:0}.center-action{text-align:center;margin-top:28px}
.find-lesson-section{margin-top:-26px;position:relative;z-index:4}.finder-panel{background:#fff;border:1px solid var(--line);box-shadow:0 25px 60px rgba(16,24,40,.12);border-radius:24px;padding:20px 22px;display:grid;grid-template-columns:1.3fr 1fr 1fr auto;gap:14px;align-items:end}.finder-panel h2{font-size:20px;margin:3px 0}.finder-kicker{font-size:11px;text-transform:uppercase;color:var(--brand);font-weight:800;letter-spacing:1px}
.detail-hero-grid{display:grid;grid-template-columns:1fr auto;gap:42px;align-items:center}.subject-title-line{display:flex;align-items:center;gap:18px}.subject-title-line h1{margin:0}.latin-subtitle{font-size:14px!important;margin:3px 0 0!important}.subject-price-panel{min-width:250px;background:#101828;color:#fff;border-radius:24px;padding:24px}.subject-price-panel small,.subject-price-panel span{display:block;color:#aeb8c8}.subject-price-panel strong{display:block;font-size:30px;margin:8px 0}.subject-price-panel span{font-size:11px}
.level-pills{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:34px}.level-pill{padding:9px 14px;border-radius:999px;border:1px solid var(--line);background:#fff;color:#475467;font-size:12px;font-weight:700}.level-pill.active,.level-pill:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
.offer-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.offer-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:22px;display:grid;gap:18px}.offer-card p{margin:0;color:var(--muted);font-size:13px;line-height:1.8}.offer-teacher{display:flex;gap:11px;align-items:center}.offer-teacher small{display:block;color:var(--muted);font-size:11px;margin-top:3px}.offer-teacher a{color:var(--ink)}.teacher-avatar{width:44px;height:44px;border-radius:14px;background:linear-gradient(135deg,var(--brand),var(--brand2));color:#fff;display:grid;place-items:center;font-weight:800}.teacher-avatar.xl{width:96px;height:96px;border-radius:28px;font-size:34px;flex:0 0 96px}
.offer-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.offer-head h3{margin:8px 0 0;font-size:19px}.offer-price{text-align:left;direction:rtl;white-space:nowrap}.offer-price small{display:block;color:var(--muted);font-size:10px}.offer-price strong{font-size:18px}.offer-facts{display:flex;gap:16px;color:#667085;font-size:12px}.package-strip{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.package-strip>div{background:#f8f9fc;border-radius:12px;padding:10px}.package-strip b,.package-strip small{display:block}.package-strip b{font-size:12px}.package-strip small{font-size:10px;color:var(--muted);margin-top:4px}
.teacher-public-hero{padding:66px 0;background:linear-gradient(180deg,#fff,#f7f6ff)}.teacher-profile-shell{display:flex;gap:24px;align-items:flex-start}.teacher-public-copy{max-width:720px;flex:1}.teacher-public-copy h1{font-size:42px;margin:0}.teacher-title{color:var(--brand);font-weight:800;margin:6px 0 14px}.teacher-bio{color:#475467;line-height:1.9;margin:0}.privacy-chip{font-size:11px;color:#667085;background:#fff;border:1px solid var(--line);border-radius:999px;padding:8px 11px;white-space:nowrap}.compact-offer{min-height:220px}
.availability-shell{padding:58px 0;background:#f6f7fb;min-height:calc(100vh - 76px)}.availability-layout{display:grid;grid-template-columns:.9fr 1.1fr;gap:20px;align-items:start}.availability-summary h1{font-size:28px;margin:12px 0 20px}.summary-facts{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:22px 0}.summary-facts>div{background:#f7f7fb;border-radius:14px;padding:13px}.summary-facts small,.summary-facts strong{display:block}.summary-facts small{color:var(--muted);font-size:10px}.summary-facts strong{margin-top:4px}.package-list{display:grid;gap:8px}.package-row{display:flex;justify-content:space-between;align-items:center;gap:16px;border:1px solid var(--line);border-radius:14px;padding:12px}.package-row small{display:block;color:var(--muted);margin-top:3px;font-size:10px}.availability-coming{min-height:430px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;padding:42px}.phase-badge{background:#f0efff;color:var(--brand);border-radius:999px;padding:6px 10px;font-size:11px;font-weight:800}.availability-coming h2{font-size:32px;margin:14px 0 10px}.availability-coming p{color:var(--muted);line-height:1.9;max-width:640px}.timeline-mini{display:flex;flex-wrap:wrap;gap:8px;margin:24px 0}.timeline-mini span{padding:7px 10px;border-radius:999px;background:#f2f4f7;color:#667085;font-size:11px}.timeline-mini .done{background:#ecfdf3;color:var(--success)}
@media(max-width:1100px){.catalog-flow{grid-template-columns:repeat(3,1fr)}.catalog-stats{grid-template-columns:repeat(3,1fr)}.finder-panel{grid-template-columns:1fr 1fr}.finder-panel>div:first-child{grid-column:1/-1}.catalog-search{grid-template-columns:1fr 1fr}}
@media(max-width:800px){.public-subject-grid,.offer-grid{grid-template-columns:1fr}.detail-hero-grid,.availability-layout{grid-template-columns:1fr}.subject-price-panel{min-width:0}.teacher-profile-shell{flex-wrap:wrap}.privacy-chip{white-space:normal}.package-strip{grid-template-columns:1fr}.catalog-search{margin-top:-55px}.catalog-flow{grid-template-columns:1fr 1fr}.catalog-stats{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.finder-panel,.catalog-search,.catalog-flow,.catalog-stats{grid-template-columns:1fr}.finder-panel>div:first-child{grid-column:auto}.catalog-search{padding:18px}.subject-title-line{align-items:flex-start}.teacher-public-copy h1{font-size:34px}.teacher-avatar.xl{width:72px;height:72px;flex-basis:72px;border-radius:20px}.availability-coming{padding:26px}.section-head.compact{align-items:flex-start;flex-direction:column}.subject-meta{flex-direction:column}.offer-head{flex-direction:column}.offer-price{text-align:right}}
.teacher-catalog-list{display:grid;gap:9px}.teacher-catalog-list>div{display:flex;justify-content:space-between;align-items:center;gap:15px;border:1px solid var(--line);border-radius:13px;padding:11px}.teacher-catalog-list small{display:block;color:var(--muted);margin-top:3px;font-size:10px}
.subject-thumb{width:48px;height:48px;border-radius:15px;overflow:hidden;background:#f2f4f7;display:block}.subject-thumb img{width:100%;height:100%;object-fit:cover}.subject-thumb.large{width:68px;height:68px;border-radius:20px;flex:0 0 68px}
.package-row s{color:#98a2b3;font-size:11px;margin-inline-start:6px}


/* Phase 3 — Availability Engine & Slot Generation */
.availability-admin-picker{margin-bottom:18px}.availability-teacher-form{display:grid;grid-template-columns:minmax(280px,1fr) auto;gap:14px;align-items:end}.availability-admin-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin:18px 0}.section-title-row{display:flex;justify-content:space-between;gap:18px;align-items:flex-start;margin-bottom:18px}.section-title-row h2{margin:4px 0 0}.timezone-chip{display:inline-flex;align-items:center;min-height:30px;padding:6px 10px;border-radius:999px;background:#eef2ff;color:#4238ca;font-size:11px;font-weight:800;direction:ltr}.soft-count{font-size:11px;color:var(--muted);background:#f8f9fc;border:1px solid var(--line);padding:6px 10px;border-radius:999px}.compact-form{padding-bottom:18px;border-bottom:1px solid var(--line)}.rule-list{display:grid;gap:9px;margin-top:16px}.rule-row{display:flex;justify-content:space-between;gap:14px;align-items:center;padding:12px 13px;border:1px solid var(--line);border-radius:14px;background:#fff}.rule-row strong,.rule-row small{display:block}.rule-row small{color:var(--muted);font-size:10px;margin-top:4px;line-height:1.6}.empty-state.compact{padding:20px}.availability-preview-admin{margin-top:18px}.preview-filter{display:grid;grid-template-columns:1.5fr .8fr .8fr auto;gap:12px;align-items:end}.preview-summary{display:flex;gap:8px;flex-wrap:wrap;margin:18px 0}.preview-summary span{background:#f6f7fb;border:1px solid var(--line);border-radius:999px;padding:7px 10px;font-size:11px;font-weight:700}.slot-preview-days{display:grid;gap:13px;margin-top:18px}.slot-preview-day{border:1px solid var(--line);border-radius:16px;padding:14px}.slot-preview-day h3{font-size:14px;margin:0 0 11px}.time-chip-grid{display:flex;gap:8px;flex-wrap:wrap}.time-chip{display:inline-flex;gap:6px;align-items:center;padding:8px 10px;border-radius:10px;background:#f0efff;color:var(--brand);font-size:12px;font-weight:800}.time-chip small{font-size:9px;color:#6c63b7;direction:ltr}.availability-policy-mini{margin-top:20px;padding:14px;border-radius:14px;background:#f8f9fc;border:1px solid var(--line)}.availability-policy-mini small,.availability-policy-mini strong,.availability-policy-mini span{display:block}.availability-policy-mini small{font-size:10px;color:var(--muted)}.availability-policy-mini strong{font-size:13px;margin:4px 0;direction:ltr;text-align:right}.availability-policy-mini span{font-size:10px;color:#667085}.availability-picker-card{padding:28px;min-height:520px}.availability-picker-head{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}.availability-picker-head h2{font-size:31px;margin:5px 0 8px}.availability-picker-head p{margin:0;color:var(--muted);line-height:1.8}.availability-range-note{font-size:11px;color:#667085;background:#f8f9fc;border-radius:12px;padding:10px 12px;margin:18px 0}.public-slot-days{display:grid;gap:14px;max-height:620px;overflow:auto;padding-inline-end:4px}.public-slot-day{border:1px solid var(--line);border-radius:17px;padding:15px;background:#fff}.slot-day-heading{display:flex;justify-content:space-between;margin-bottom:12px}.slot-day-heading strong,.slot-day-heading small{display:block}.slot-day-heading strong{font-size:14px}.slot-day-heading small{font-size:10px;color:var(--muted);margin-top:4px}.public-time-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.public-time-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;border:1px solid var(--line);border-radius:12px;padding:10px;background:#fff;color:var(--ink);transition:.18s}.public-time-btn:hover,.public-time-btn.selected{border-color:var(--brand);background:#f0efff;color:var(--brand);transform:translateY(-1px)}.public-time-btn strong{font-size:14px}.public-time-btn small{font-size:9px;color:var(--muted)}.slot-selection-panel{margin-top:18px;padding:16px;border-radius:16px;background:#101828;color:#fff;display:flex;justify-content:space-between;gap:16px;align-items:center}.slot-selection-panel h3{margin:4px 0}.slot-selection-panel p{margin:0;color:#cbd5e1;font-size:11px}.slot-selection-panel .eyebrow{color:#a9b5ff}.slot-selection-panel .btn:disabled{opacity:.55;cursor:not-allowed}.availability-empty{text-align:center;padding:58px 20px}.availability-empty h3{margin:8px 0}.availability-empty p{color:var(--muted);max-width:500px;margin:0 auto}.empty-orbit{width:56px;height:56px;border-radius:50%;background:#f0efff;color:var(--brand);display:grid;place-items:center;margin:0 auto;font-size:33px}
@media(max-width:1000px){.availability-admin-grid{grid-template-columns:1fr}.preview-filter{grid-template-columns:1fr 1fr}.preview-filter>.field:first-of-type{grid-column:1/-1}.public-time-grid{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.availability-teacher-form,.preview-filter{grid-template-columns:1fr}.preview-filter>.field:first-of-type{grid-column:auto}.availability-picker-head,.slot-selection-panel{flex-direction:column}.public-time-grid{grid-template-columns:repeat(2,1fr)}.availability-picker-card{padding:20px}.rule-row{align-items:flex-start}.availability-admin-grid{gap:14px}}

/* Phase 4 — Booking Journey, Slot Holds & Package Scheduling */
.booking-selection-form{display:grid;gap:22px}.booking-packages,.booking-slots{padding-top:18px;border-top:1px solid var(--line)}.booking-package-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.booking-package-card{position:relative;display:flex;justify-content:space-between;align-items:center;gap:14px;border:1px solid var(--line);border-radius:15px;padding:14px;background:#fff;cursor:pointer;transition:.18s}.booking-package-card:hover,.booking-package-card:has(input:checked){border-color:var(--brand);background:#f7f6ff;box-shadow:0 0 0 2px rgba(83,67,211,.05)}.booking-package-card input{position:absolute;opacity:0;pointer-events:none}.booking-package-card strong,.booking-package-card small{display:block}.booking-package-card small{font-size:10px;color:var(--muted);margin-top:4px;line-height:1.5}.booking-package-card b{white-space:nowrap;color:var(--brand)}.booking-time-option{position:relative;cursor:pointer}.booking-time-option input{position:absolute;opacity:0;pointer-events:none}.booking-time-option:has(input:disabled){opacity:.42;cursor:not-allowed}.booking-selection-bar{position:sticky;bottom:12px;z-index:8;display:flex;justify-content:space-between;align-items:center;gap:16px;background:#101828;color:#fff;border-radius:17px;padding:14px 16px;margin:20px 0;box-shadow:0 12px 35px rgba(16,24,40,.16)}.booking-selection-bar strong,.booking-selection-bar small{display:block}.booking-selection-bar small{color:#cbd5e1;margin-top:3px;font-size:10px}.booking-selection-bar .btn:disabled{opacity:.48;cursor:not-allowed}.booking-shell{padding:54px 0 80px}.narrow-container{max-width:980px}.booking-review-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:22px}.booking-review-head h1{font-size:38px;margin:5px 0 8px}.booking-review-head p{margin:0;color:var(--muted)}.booking-ref{direction:ltr;font-family:monospace;font-size:10px;background:#f2f4f7;border:1px solid var(--line);padding:7px 9px;border-radius:9px;color:#667085}.booking-review-grid{display:grid;grid-template-columns:1.15fr .85fr;gap:16px}.booking-review-grid hr{border:0;border-top:1px solid var(--line);margin:18px 0}.review-list{display:grid;gap:10px;margin-top:18px}.review-list>div{display:flex;justify-content:space-between;gap:16px;font-size:12px}.review-list span{color:var(--muted)}.price-review .price-large{font-size:30px;font-weight:900;color:var(--brand);margin:12px 0 3px}.price-review s{font-size:12px;color:#98a2b3}.booking-times-review,.student-picker-card,.booking-payment-placeholder{margin-top:16px}.review-time-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}.review-time-grid>div{border:1px solid var(--line);border-radius:13px;padding:11px;background:#fafbfc}.review-time-grid strong,.review-time-grid span{display:block}.review-time-grid strong{font-size:11px}.review-time-grid span{margin-top:4px;color:var(--brand);font-weight:800;direction:ltr;text-align:right}.review-time-grid.compact{grid-template-columns:repeat(2,1fr);margin-top:16px}.student-choice-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.student-choice{position:relative;display:flex;align-items:center;gap:11px;border:1px solid var(--line);border-radius:14px;padding:12px;cursor:pointer}.student-choice:has(input:checked){border-color:var(--brand);background:#f7f6ff}.student-choice input{position:absolute;opacity:0}.student-choice strong,.student-choice small{display:block}.student-choice small{font-size:10px;color:var(--muted);margin-top:3px}.hold-banner{display:flex;justify-content:space-between;align-items:center;gap:20px;border-radius:16px;padding:15px 18px;background:#ecfdf3;border:1px solid #abefc6;margin-bottom:16px}.hold-banner small,.hold-banner strong{display:block}.hold-banner small{font-size:10px;color:#067647}.hold-banner strong{font-size:24px;color:#05603a;direction:ltr;text-align:right}.hold-banner span{font-size:10px;color:#067647}.booking-payment-placeholder{display:flex;justify-content:space-between;align-items:center;gap:20px}.booking-payment-placeholder h2{margin:4px 0}.booking-payment-placeholder p{max-width:620px;color:var(--muted);line-height:1.8;margin:0}.booking-review-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.booking-review-actions form{margin:0}.booking-review-actions .btn:disabled{opacity:.5;cursor:not-allowed}
@media(max-width:800px){.booking-package-grid,.booking-review-grid,.student-choice-grid{grid-template-columns:1fr}.review-time-grid{grid-template-columns:repeat(2,1fr)}.booking-review-head,.booking-payment-placeholder{flex-direction:column}.booking-selection-bar{position:static;flex-direction:column;align-items:stretch}.booking-selection-bar .btn{width:100%}}
@media(max-width:520px){.review-time-grid,.review-time-grid.compact{grid-template-columns:1fr}.booking-review-head h1{font-size:31px}.booking-shell{padding-top:32px}.hold-banner{align-items:flex-start;flex-direction:column}}

/* Phase 5 — Payments, Verification & Purchase Finalization */
.payment-layout{display:grid;grid-template-columns:.86fr 1.14fr;gap:16px;align-items:start}.payment-order-card h2,.payment-gateway-card h2{margin:4px 0 7px}.payment-order-card .notice-box{margin-top:18px}.payment-gateway-card{min-height:360px}.sandbox-box{margin-top:18px;border:1px dashed #c7d7fe;background:#f5f8ff;border-radius:16px;padding:18px}.sandbox-box strong,.sandbox-box p{display:block}.sandbox-box p{color:var(--muted);font-size:12px;margin:5px 0 16px}.payment-result-card{text-align:center;padding:38px;max-width:820px;margin:0 auto}.payment-result-card>p{max-width:620px;margin:8px auto 18px;color:var(--muted)}.result-icon{width:62px;height:62px;border-radius:50%;display:grid;place-items:center;margin:0 auto 14px;font-size:29px;font-weight:900}.result-icon.success{background:#ecfdf3;color:var(--success);border:1px solid #abefc6}.result-icon.warning{background:#fffaeb;color:var(--warning);border:1px solid #fedf89}.result-icon.pending{background:#f2f4f7;color:#475467;border:1px solid var(--line)}.payment-result-card h1{margin:0;font-size:34px}.payment-result-summary{display:grid;grid-template-columns:repeat(5,1fr);gap:9px;margin:24px 0}.payment-result-summary>div{border:1px solid var(--line);border-radius:13px;padding:12px;background:#fafbfc}.payment-result-summary small,.payment-result-summary strong{display:block}.payment-result-summary small{font-size:9px;color:var(--muted)}.payment-result-summary strong{font-size:12px;margin-top:4px;word-break:break-word}.payment-result-card .booking-review-actions{justify-content:center}.subnav{display:flex;gap:7px;flex-wrap:wrap;margin:18px 0}.subnav a{padding:9px 13px;border:1px solid var(--line);border-radius:10px;background:#fff;color:#475467;font-size:12px;font-weight:800}.subnav a.active{background:#101828;color:#fff;border-color:#101828}.table-actions{display:flex;gap:7px;align-items:flex-start;flex-wrap:wrap}.table-actions form{margin:0}.btn.tiny{font-size:10px;padding:7px 9px;border-radius:9px}.refund-details{position:relative}.refund-details summary{list-style:none;cursor:pointer;padding:7px 9px;border:1px solid #fecdca;border-radius:9px;color:var(--danger);font-size:10px;font-weight:800;background:#fff}.refund-details summary::-webkit-details-marker{display:none}.refund-details[open] .mini-form{display:grid}.mini-form{position:absolute;z-index:15;left:0;top:36px;width:250px;padding:12px;background:#fff;border:1px solid var(--line);border-radius:13px;box-shadow:var(--shadow);gap:8px}.mini-form input{width:100%;border:1px solid #d0d5dd;border-radius:9px;padding:8px;font-size:11px}.table-sub{display:block;color:var(--muted);font-size:9px;margin-top:3px;line-height:1.5}.mysr-form{margin-top:16px}.payment-gateway-card .mysr-form{direction:ltr}.btn:disabled{opacity:.5;cursor:not-allowed;transform:none}
@media(max-width:900px){.payment-layout{grid-template-columns:1fr}.payment-result-summary{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.payment-result-summary{grid-template-columns:1fr}.payment-result-card{padding:24px 18px}.payment-result-card h1{font-size:28px}.refund-details .mini-form{position:fixed;left:16px;right:16px;top:auto;bottom:16px;width:auto}}

/* Phase 6 — Thinkora Learn / Student Portal & Credit Scheduling */
.learner-context{display:flex;justify-content:space-between;align-items:center;gap:18px;margin-bottom:18px}.compact-card{padding:15px 18px}.learner-context>div{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}.learner-context .eyebrow{margin:0}.student-switcher{display:flex;align-items:center;gap:8px}.student-switcher label{font-size:10px;color:var(--muted);font-weight:800}.student-switcher select{border:1px solid var(--line);border-radius:9px;padding:7px 10px;background:#fff}.learning-stats{grid-template-columns:repeat(3,1fr)}.learning-day-grid{display:grid;grid-template-columns:1.18fr .82fr;gap:16px;margin-top:18px}.next-session-card{background:linear-gradient(145deg,#fff,#f8f7ff)}.next-session-time{display:flex;align-items:flex-end;gap:16px;margin:26px 0 12px}.next-session-time strong{font-size:19px}.next-session-time b{font-size:42px;line-height:1;color:var(--brand);direction:ltr}.quick-links{display:grid;gap:9px;margin-top:18px}.quick-links a{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:13px 14px;border:1px solid var(--line);border-radius:13px;background:#fff}.quick-links b,.quick-links span{display:block}.quick-links span{font-size:10px;color:var(--muted)}.future-learning-strip{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:16px}.future-learning-strip h3{margin:2px 0}.empty-state{text-align:center;padding:42px 22px}.empty-state h2,.empty-state h3{margin:0 0 6px}.session-list{display:grid;gap:10px}.session-row{display:grid;grid-template-columns:128px 1fr;gap:16px;align-items:stretch;padding:0;overflow:hidden}.session-date-box{background:#f7f6ff;display:grid;place-items:center;align-content:center;padding:16px;text-align:center}.session-date-box strong,.session-date-box b{display:block}.session-date-box strong{font-size:10px;color:var(--muted)}.session-date-box b{font-size:24px;color:var(--brand);direction:ltr}.session-main{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:15px 16px 15px 0}.session-main h3{margin:6px 0 2px;font-size:16px}.session-main p{margin:0;color:var(--muted);font-size:11px}.status-chip.info{background:#eff8ff;color:#175cd3}.status-chip.success{background:#ecfdf3;color:#067647}.status-chip.danger{background:#fff1f3;color:#c01048}.status-chip.muted{background:#f2f4f7;color:#667085}.timezone-note{font-size:10px;color:var(--muted);margin-top:14px}.detail-list{display:grid;gap:0;margin:12px 0 0}.detail-list>div{display:flex;justify-content:space-between;gap:20px;padding:11px 0;border-bottom:1px solid var(--line)}.detail-list>div:last-child{border-bottom:0}.detail-list dt{color:var(--muted);font-size:11px}.detail-list dd{margin:0;font-weight:800;font-size:12px;text-align:left}.future-module{padding:13px 0;border-bottom:1px solid var(--line)}.future-module:last-child{border:0}.future-module b,.future-module span{display:block}.future-module span{font-size:10px;color:var(--muted);margin-top:3px}.calendar-card{overflow:hidden}.calendar-toolbar{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:18px}.calendar-toolbar h2{margin:0}.calendar-weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr)}.calendar-weekdays span{text-align:center;font-size:9px;color:var(--muted);font-weight:800;padding:8px}.calendar-grid{border-top:1px solid var(--line);border-right:1px solid var(--line)}.calendar-cell{min-height:118px;padding:8px;border-left:1px solid var(--line);border-bottom:1px solid var(--line);background:#fff}.calendar-cell.empty{background:#fafafa}.calendar-day-num{font-size:11px;color:#667085}.calendar-event{display:block;margin-top:6px;padding:6px;border-radius:8px;background:#f7f6ff;border-right:3px solid var(--brand);font-size:9px}.calendar-event b,.calendar-event span,.calendar-event small{display:block}.calendar-event span{font-weight:800}.calendar-event small{color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-event.danger{background:#fff1f3;border-color:#f04438}.calendar-event.success{background:#ecfdf3;border-color:#12b76a}.agenda-card{display:none;margin-top:14px}.agenda-list{display:grid;gap:8px}.agenda-list a{display:flex;justify-content:space-between;gap:14px;padding:11px 12px;border:1px solid var(--line);border-radius:11px}.agenda-list a strong{font-size:11px}.agenda-list a span{font-size:10px;color:var(--muted)}.credit-wallet-list{display:grid;gap:14px}.credit-wallet-card h2{margin:2px 0}.credit-wallet-card p{margin:0;color:var(--muted);font-size:11px}.credit-total{text-align:center;min-width:72px;padding:9px 13px;border-radius:14px;background:#f0efff;color:var(--brand)}.credit-total small,.credit-total strong{display:block}.credit-total strong{font-size:25px}.credit-duration-row{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 0;border-top:1px solid var(--line)}.credit-duration-row>div:first-child{display:grid;gap:2px}.credit-duration-row span,.credit-duration-row small{font-size:10px;color:var(--muted)}.credit-duration-row small.expiring{color:var(--warning);font-weight:800}.credit-ledger-details{border-top:1px dashed var(--line);padding:10px 0}.credit-ledger-details summary{cursor:pointer;font-size:10px;color:var(--brand);font-weight:800}.credit-book-head{display:flex;justify-content:space-between;align-items:center;gap:18px}.credit-book-head h2{margin:3px 0}.credit-book-head p{margin:0;color:var(--muted)}.credit-balance-badge{display:grid;place-items:center;min-width:82px;min-height:64px;border-radius:17px;background:#101828;color:#fff;font-size:16px;font-weight:900}.credit-slot-form{margin-top:14px}.credit-confirm-card{max-width:860px}.hold-countdown{margin:16px 0;background:#fffaeb;border:1px solid #fedf89;color:#b54708;border-radius:12px;padding:10px 12px;font-size:11px;font-weight:800}.credit-review-slots{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin:14px 0}.credit-review-slots>div{border:1px solid var(--line);border-radius:12px;padding:11px}.credit-review-slots strong,.credit-review-slots small{display:block}.credit-review-slots small{font-size:9px;color:var(--muted);margin-top:3px}.positive-value{color:var(--success);font-weight:900}.negative-value{color:var(--danger);font-weight:900}.profile-secondary-action{margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}
@media(max-width:900px){.learning-day-grid{grid-template-columns:1fr}.calendar-card{display:none}.agenda-card{display:block}.learning-stats{grid-template-columns:repeat(3,1fr)}.future-learning-strip{align-items:flex-start;flex-direction:column}}
@media(max-width:700px){.learner-context,.credit-duration-row,.credit-book-head{align-items:stretch;flex-direction:column}.student-switcher{width:100%;display:grid;grid-template-columns:1fr auto}.student-switcher label{grid-column:1/-1}.student-switcher select{width:100%}.learning-stats{grid-template-columns:1fr}.session-row{grid-template-columns:86px 1fr}.session-main{padding-right:0;flex-direction:column;align-items:flex-start}.next-session-time b{font-size:34px}.credit-review-slots{grid-template-columns:1fr}.agenda-list a{flex-direction:column}.future-learning-strip{margin-top:12px}}

/* Phase 7 — Thinkora Teach / Teacher Portal Operations */
.teacher-stats{grid-template-columns:repeat(3,1fr)}
.teacher-day-grid{display:grid;grid-template-columns:1.18fr .82fr;gap:16px;margin-top:18px}
.teacher-next-card{background:linear-gradient(145deg,#fff,#f4fbf9)}
.teacher-next-time{display:flex;align-items:flex-end;gap:14px;margin:24px 0 10px}.teacher-next-time b{font-size:44px;line-height:1;color:var(--brand);direction:ltr}.teacher-next-time span{font-size:12px;color:var(--muted);font-weight:800}
.teacher-timeline-card{margin-top:16px}.teacher-timeline{display:grid;margin-top:10px}.teacher-timeline>a{display:grid;grid-template-columns:74px 1fr auto;gap:14px;align-items:center;padding:13px 0;border-bottom:1px solid var(--line)}.teacher-timeline>a:last-child{border-bottom:0}.teacher-timeline time{font-size:21px;font-weight:900;color:var(--brand);direction:ltr}.teacher-timeline span b,.teacher-timeline span small{display:block}.teacher-timeline span small{font-size:10px;color:var(--muted)}.teacher-timeline em{font-style:normal}
.privacy-note{margin-top:16px;display:flex;justify-content:space-between;gap:18px;align-items:center;background:#fbfcfe}.privacy-note b,.privacy-note span{display:block}.privacy-note span{font-size:10px;color:var(--muted);max-width:680px}
.teacher-student-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.teacher-student-card{display:grid;gap:13px}.student-card-head{display:flex;align-items:center;gap:11px}.student-card-head .avatar{width:44px;height:44px;border-radius:13px;background:#f0efff;color:var(--brand);display:grid;place-items:center;font-weight:900}.student-card-head h3{margin:0;font-size:16px}.student-card-head p{margin:1px 0 0;color:var(--muted);font-size:10px}.student-subjects{display:flex;gap:6px;flex-wrap:wrap}.student-subjects span{font-size:9px;font-weight:800;padding:5px 8px;border-radius:99px;background:#f2f4f7;color:#475467}.student-mini-stats{display:grid;grid-template-columns:1fr 1fr;gap:8px}.student-mini-stats>div{padding:10px;border:1px solid var(--line);border-radius:11px;background:#fafbfc}.student-mini-stats small,.student-mini-stats b{display:block}.student-mini-stats small{font-size:9px;color:var(--muted)}.student-mini-stats b{font-size:19px}.student-session-dates{display:grid;gap:7px;margin:0}.student-session-dates>div{display:flex;justify-content:space-between;gap:12px}.student-session-dates dt{font-size:9px;color:var(--muted)}.student-session-dates dd{font-size:9px;margin:0;font-weight:800;text-align:left}
.teacher-availability-grid{margin-top:16px}.policy-readonly{display:grid;grid-template-columns:1fr 1fr;gap:7px;margin-top:18px;padding-top:14px;border-top:1px solid var(--line)}.policy-readonly b{grid-column:1/-1;font-size:11px}.policy-readonly span{font-size:9px;color:var(--muted);padding:7px 9px;background:#f7f8fb;border-radius:8px}.closure-readonly{background:#fafbfc}
@media(max-width:1050px){.teacher-student-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:900px){.teacher-day-grid{grid-template-columns:1fr}.teacher-stats{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.teacher-stats{grid-template-columns:1fr}.teacher-student-grid{grid-template-columns:1fr}.teacher-timeline>a{grid-template-columns:60px 1fr}.teacher-timeline em{grid-column:2}.privacy-note{align-items:flex-start;flex-direction:column}.teacher-next-time b{font-size:36px}.policy-readonly{grid-template-columns:1fr}.policy-readonly b{grid-column:auto}}

/* Phase 8 — Meeting Providers */
.provider-health-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:12px 0}.provider-health{border:1px solid var(--line);border-radius:13px;padding:14px;display:grid;gap:7px}.provider-health small{color:var(--muted);font-size:10px}.meeting-toolbar{display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}.filter-form{display:flex;gap:8px;flex-wrap:wrap}.filter-form select{border:1px solid var(--line);border-radius:10px;padding:8px 10px;background:#fff}.meeting-actions summary{cursor:pointer;color:var(--brand);font-weight:800;font-size:10px}.meeting-provision-form{min-width:290px;margin-top:8px}.meeting-warning,.warning-text{color:var(--warning)!important}.meeting-module form{margin-top:9px}.status-chip.warning{background:#fffaeb;color:#b54708}@media(max-width:760px){.provider-health-grid{grid-template-columns:1fr}.meeting-toolbar{align-items:stretch}.filter-form{display:grid}.meeting-provision-form{min-width:0}}

/* Phase 9 — Attendance & Session Completion */
.attendance-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:16px}.attendance-decision h2,.attendance-evidence-card h2{margin:2px 0}.attendance-start-form{display:flex;gap:10px;align-items:center;padding:12px 0;border-bottom:1px solid var(--line)}.attendance-start-form small{color:var(--muted);font-size:10px}.attendance-form{margin-top:14px}.evidence-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:14px 0}.evidence-stats>div{border:1px solid var(--line);border-radius:11px;padding:10px;background:#fafbfc}.evidence-stats small,.evidence-stats b{display:block}.evidence-stats small{font-size:9px;color:var(--muted)}.evidence-stats b{font-size:18px}.evidence-sync-form{margin:10px 0}.evidence-list{display:grid;gap:7px;margin-top:12px;max-height:280px;overflow:auto}.evidence-list>div{display:flex;justify-content:space-between;gap:12px;padding:9px 10px;border:1px solid var(--line);border-radius:10px}.evidence-list b{font-size:10px}.evidence-list span{font-size:9px;color:var(--muted);text-align:left}.student-attendance-summary{margin-top:16px;display:flex;justify-content:space-between;align-items:center;gap:18px}.student-attendance-summary h2{margin:2px 0}.student-attendance-summary p{margin:0;color:var(--muted);font-size:11px}.attendance-admin-columns{display:grid;grid-template-columns:1fr 1fr;gap:22px}.attendance-admin-columns h3{margin:10px 0}.check-line{display:flex;gap:8px;align-items:flex-start;font-size:11px;font-weight:700}.check-line input{margin-top:5px}@media(max-width:900px){.attendance-grid,.attendance-admin-columns{grid-template-columns:1fr}}@media(max-width:600px){.evidence-stats{grid-template-columns:1fr}.student-attendance-summary,.attendance-start-form{align-items:flex-start;flex-direction:column}.evidence-list>div{flex-direction:column}}

/* Phase 10 — Assignments & Student Submissions */
.assignment-stats{grid-template-columns:repeat(5,1fr)}
.assignment-list{display:grid;gap:12px;margin-top:14px}.assignment-row{display:flex;justify-content:space-between;align-items:center;gap:18px}.assignment-row h3{margin:7px 0 3px}.assignment-row p,.assignment-row small{margin:0;color:var(--muted);font-size:10px}.assignment-row .status-chip+.status-chip{margin-inline-start:6px}
.assignment-workspace{display:grid;grid-template-columns:1.15fr .85fr;gap:16px}.assignment-editor h2,.assignment-materials h2,.assignment-submission-review h2{margin:3px 0}.assignment-publish-actions{display:flex;gap:8px;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}
.inline-upload-form{display:flex;gap:8px;align-items:center;margin:12px 0}.inline-upload-form input[type=file]{flex:1;min-width:0}.compact-form{margin-top:14px}.protected-file-list{display:grid;gap:8px;margin-top:14px}.protected-file-list>div{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px;border:1px solid var(--line);border-radius:11px}.protected-file-list a{display:grid;gap:2px;min-width:0}.protected-file-list a b{font-size:10px;overflow:hidden;text-overflow:ellipsis}.protected-file-list a small{font-size:8px;color:var(--muted);overflow:hidden;text-overflow:ellipsis}.link-danger{border:0;background:none;color:var(--danger);font-size:9px;font-weight:800;cursor:pointer}
.assignment-submission-review{margin-top:16px}.submission-versions{display:grid;gap:9px;margin-top:12px}.submission-versions details{border:1px solid var(--line);border-radius:12px;overflow:hidden}.submission-versions summary{cursor:pointer;padding:11px 13px;font-size:10px;font-weight:900;background:#fafbfc}.submission-version-body{padding:13px;display:grid;gap:9px}.answer-text,.assignment-instructions{white-space:normal;line-height:1.85}.file-chip{display:inline-flex;align-items:center;max-width:max-content;padding:6px 9px;border:1px solid var(--line);border-radius:99px;font-size:9px;font-weight:800;background:#fff}.review-form{margin-top:16px}.review-history{margin-top:16px;border-top:1px dashed var(--line);padding-top:12px}.review-history>summary{cursor:pointer;font-size:10px;font-weight:900}.review-history>div{padding:10px 0;border-bottom:1px solid var(--line)}.review-history b,.review-history span{display:block}.review-history span{font-size:9px;color:var(--muted)}.review-history p{font-size:10px;margin:5px 0 0}
.assignment-student-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.assignment-brief h2,.assignment-submit-card h2{margin:3px 0}.assignment-material-list{margin-top:18px;padding-top:14px;border-top:1px solid var(--line);display:flex;gap:7px;flex-wrap:wrap}.assignment-material-list h3{width:100%;margin:0 0 4px}.assignment-history{margin-top:16px}.notice-box.success{background:#ecfdf3;border-color:#abefc6;color:#067647}.mini-assignment-links{display:flex;gap:6px;flex-wrap:wrap;margin-top:7px}.mini-assignment-links>a:not(.btn){font-size:9px;font-weight:800;padding:5px 8px;border-radius:8px;background:#f7f6ff;color:var(--brand)}
.assignment-admin-detail{margin-bottom:16px}.assignment-admin-columns{display:grid;grid-template-columns:1.2fr .8fr;gap:22px}.assignment-admin-columns h3{margin-top:0}.admin-correction-form{margin-top:16px;border-top:1px solid var(--line);padding-top:14px}.table-wrap td small{display:block;font-size:8px;color:var(--muted);margin-top:2px}
.status-chip.info{background:#eff8ff;color:#175cd3}.status-chip.danger{background:#fff1f3;color:#c01048}
@media(max-width:1000px){.assignment-workspace,.assignment-student-grid,.assignment-admin-columns{grid-template-columns:1fr}.assignment-stats{grid-template-columns:repeat(3,1fr)}}
@media(max-width:700px){.assignment-row,.inline-upload-form{align-items:flex-start;flex-direction:column}.assignment-row .btn,.inline-upload-form input,.inline-upload-form .btn{width:100%}.assignment-stats{grid-template-columns:1fr 1fr}.assignment-publish-actions{flex-direction:column}.protected-file-list>div{align-items:flex-start;flex-direction:column}}

/* Phase 11 — Recordings & Transcripts */
.recording-stats{grid-template-columns:repeat(5,1fr)}
.recording-list{display:grid;gap:11px;margin-top:14px}.recording-row{display:flex;justify-content:space-between;align-items:center;gap:16px;border:1px solid var(--line);border-radius:13px;padding:13px;background:#fff}.recording-row h3{margin:5px 0 2px}.recording-row p,.recording-row small{margin:0;color:var(--muted);font-size:10px}.recording-row .recording-actions{display:flex;gap:7px;align-items:center;flex-wrap:wrap}
.recording-mini{display:grid;gap:8px;margin-top:12px}.recording-mini>div{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:#fafbfc}.recording-mini b,.recording-mini span{font-size:10px}.recording-mini span{color:var(--muted)}
.recording-session-ops{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:16px}.recording-session-ops h3{margin:2px 0}.recording-session-ops form{margin-top:10px}.recording-provider-note{font-size:10px;color:var(--muted);line-height:1.7}.recording-missing-list{display:grid;gap:8px;margin-top:12px}.recording-missing-list>div{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:10px;border:1px solid var(--line);border-radius:11px;background:#fff}.recording-missing-list small{color:var(--muted)}
.recording-artifact-meta{display:flex;gap:7px;flex-wrap:wrap;align-items:center}.recording-artifact-meta .status-chip{margin:0}.recording-empty{padding:18px;text-align:center;color:var(--muted);font-size:11px;border:1px dashed var(--line);border-radius:13px}
@media(max-width:1000px){.recording-stats{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.recording-session-ops{grid-template-columns:1fr}.recording-row,.recording-missing-list>div{align-items:flex-start;flex-direction:column}.recording-row .recording-actions{width:100%}.recording-row .recording-actions .btn{flex:1}.recording-stats{grid-template-columns:1fr 1fr}}

/* Phase 12 — Notifications & Communication Events */
.notification-list{display:grid;gap:10px;margin-top:14px}.notification-item{display:flex;justify-content:space-between;align-items:flex-start;gap:18px;border:1px solid var(--line);border-radius:14px;padding:14px;background:#fff}.notification-item.unread{border-color:#c7d7fe;background:#f8fbff;box-shadow:inset -3px 0 0 var(--brand)}.notification-item h3{margin:5px 0 4px;font-size:14px}.notification-item p{margin:0;color:#475467;font-size:11px;line-height:1.8}.notification-item small{color:var(--muted);font-size:9px}.notification-item .table-actions{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.template-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}.template-grid>details{align-self:start}.template-grid summary{cursor:pointer;font-size:10px}.grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.check-row{display:flex;gap:7px;align-items:center;font-size:10px;margin:10px 0}.notice-box{display:grid;gap:7px}.notice-box .status-chip{width:max-content}@media(max-width:1000px){.grid-4{grid-template-columns:repeat(2,1fr)}.template-grid{grid-template-columns:1fr}}@media(max-width:700px){.notification-item{flex-direction:column}.notification-item .table-actions{width:100%}.grid-4,.grid-3{grid-template-columns:1fr}}

/* Phase 13 — Reports & Admin Operations */
.report-head{align-items:center}.report-filter-card{padding:16px 18px}.report-filter-form{display:grid;grid-template-columns:repeat(5,minmax(130px,1fr));gap:10px;align-items:end}.report-filter-form .field{gap:5px}.report-filter-form input,.report-filter-form select{padding:9px 10px;border:1px solid var(--line);border-radius:10px;background:#fff;min-width:0}.report-filter-actions{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid var(--line);padding-top:12px}.report-presets{display:flex;gap:6px;flex-wrap:wrap}.report-presets a{font-size:10px;font-weight:800;padding:6px 9px;border-radius:9px;background:#f6f5ff;color:var(--brand)}.report-tabs{overflow:auto;white-space:nowrap;padding-bottom:3px}.report-kpis{grid-template-columns:repeat(5,1fr)}.report-kpis .stat-card{min-width:0}.report-kpis .stat-card strong{font-size:23px}.report-kpis .stat-card span{display:block;color:var(--muted);font-size:9px;margin-top:5px;line-height:1.5}.report-kpis.compact{grid-template-columns:repeat(5,1fr)}.report-dl{display:grid;gap:8px;margin:12px 0}.report-dl>div{display:flex;justify-content:space-between;gap:16px;padding:9px 0;border-bottom:1px solid var(--line)}.report-dl dt{color:var(--muted);font-size:10px}.report-dl dd{margin:0;font-weight:900;font-size:11px}.report-footnote{font-size:9px!important;line-height:1.8}.risk-list{display:grid;gap:8px}.risk-list a{display:flex;justify-content:space-between;gap:12px;padding:10px 11px;border:1px solid var(--line);border-radius:11px;background:#fafbfc;font-size:10px}.risk-list a:hover{border-color:#c7d7fe;background:#f8fbff}.risk-list b{font-size:16px;color:var(--brand)}.metric-line{color:#475467;font-size:11px;line-height:2}.metric-line b{color:var(--ink)}.report-pagination{display:flex;justify-content:space-between;align-items:center;gap:12px;margin:16px 0;font-size:10px;color:var(--muted)}.report-pagination>div{display:flex;gap:7px}.report-definition{margin-top:16px}.report-definition b,.report-definition span{display:block}.report-definition span{font-size:9px;line-height:1.8}.report-filter-card+.subnav{margin-top:16px}
@media(max-width:1100px){.report-filter-form{grid-template-columns:repeat(3,1fr)}.report-kpis,.report-kpis.compact{grid-template-columns:repeat(3,1fr)}}
@media(max-width:760px){.report-head{align-items:flex-start;flex-direction:column}.report-filter-form{grid-template-columns:1fr 1fr}.report-filter-actions{align-items:stretch;flex-direction:column}.report-filter-actions>.btn{width:100%}.report-kpis,.report-kpis.compact{grid-template-columns:1fr 1fr}.report-pagination{align-items:flex-start;flex-direction:column}}
@media(max-width:520px){.report-filter-form{grid-template-columns:1fr}.report-kpis,.report-kpis.compact{grid-template-columns:1fr}.report-presets{width:100%}.report-presets a{flex:1;text-align:center}}
@media print{.portal-topbar,.portal-sidebar,.report-filter-card,.report-tabs,.report-pagination,.report-head .actions,.logout-link{display:none!important}.portal-layout{display:block}.portal-main{padding:0;width:100%}.portal-body{background:#fff}.card,.stat-card{box-shadow:none;break-inside:avoid}.table-wrap{overflow:visible}.table-wrap table{min-width:0}.report-definition{font-size:9px}.page-head{margin-bottom:12px}}

.portal-sidebar .logout-form{margin:18px 0 0}.portal-sidebar .logout-form .logout-link{width:100%;border:0;background:transparent;text-align:right;padding:11px 13px;border-radius:10px;color:var(--danger);font-weight:700;cursor:pointer}.portal-sidebar .logout-form .logout-link:hover{background:#fef3f2}.table-sub{display:block;color:var(--muted);font-size:11px;margin-top:3px}
@media(max-width:900px){.portal-sidebar .logout-form{margin:0}.portal-sidebar .logout-form .logout-link{white-space:nowrap}}
