:root{font-family:system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color:var(--ui-text);background:var(--ui-bg);text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--content-max: 1100px;--ui-bg: #f8fafc;--ui-surface: #ffffff;--ui-surface-soft: #f8fafc;--ui-border: #e5e7eb;--ui-border-strong: #cbd5e1;--ui-primary: #0d9488;--ui-primary-hover: #0f766e;--ui-focus-ring: rgba(20, 184, 166, .45);--ui-input-bg: #ffffff;--ui-text: #0f172a;--ui-muted: #475569;--glassBg: rgba(255, 255, 255, .92);--glassBorder: #e5e7eb;--shadow: 0 12px 40px rgba(15, 23, 42, .08);--shadowSoft: 0 1px 3px rgba(15, 23, 42, .08);--shadowElevated: 0 1px 3px rgba(15, 23, 42, .1), 0 1px 2px rgba(15, 23, 42, .06);--accent1: #14b8a6;--accent2: #0d9488;--shell-nav-bg: #0c1929;--shell-topbar-bg: #0f2744;--shell-accent: #14b8a6;--shell-accent-soft: rgba(20, 184, 166, .15);--shell-main-bg: #ffffff;--shell-border: rgba(148, 163, 184, .45)}[data-theme=dark]{color:var(--ui-text);background:var(--ui-bg);--ui-bg: #020617;--ui-surface: #0f172a;--ui-surface-soft: #111827;--ui-border: #1e293b;--ui-border-strong: #334155;--ui-primary: #2dd4bf;--ui-primary-hover: #14b8a6;--ui-focus-ring: rgba(45, 212, 191, .32);--ui-input-bg: #0b1220;--ui-text: #e2e8f0;--ui-muted: #94a3b8;--glassBg: rgba(15, 23, 42, .88);--glassBorder: #334155;--shadow: 0 20px 48px rgba(2, 6, 23, .48);--shadowSoft: 0 1px 3px rgba(2, 6, 23, .35);--shadowElevated: 0 6px 24px rgba(2, 6, 23, .28);--shell-nav-bg: #020617;--shell-topbar-bg: #0b1220;--shell-accent: #2dd4bf;--shell-accent-soft: rgba(45, 212, 191, .14);--shell-main-bg: #020617;--shell-border: rgba(51, 65, 85, .9)}body{margin:0;min-width:320px;min-height:100vh;background:var(--ui-bg);color:var(--ui-text)}a{color:inherit}.appShell{min-height:100vh;display:flex;flex-direction:column;position:relative;z-index:1}.topbar{display:flex;gap:16px;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid rgba(15,23,42,.1);background:var(--glassBg);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px)}.brand{font-weight:700;text-decoration:none;letter-spacing:-.01em}.nav{display:flex;gap:12px;align-items:center}.nav a{text-decoration:none;padding:6px 8px;border-radius:10px}.nav a:hover{background:#0206170d}.main,.shellMain{padding:24px 16px;display:flex;justify-content:center}.page{width:100%;max-width:720px}.page h1{margin:0 0 12px;font-size:26px;letter-spacing:-.02em}.page p{margin:8px 0}.card{background:var(--ui-surface);border:1px solid var(--ui-border-strong);border-radius:12px;padding:16px;box-shadow:var(--shadowElevated)}.form{display:flex;flex-direction:column;gap:12px}label{display:flex;flex-direction:column;gap:6px;font-size:14px}input,select,textarea{border:1px solid var(--ui-border-strong);border-radius:10px;padding:10px 12px;font-size:14px;outline:none;background:var(--ui-input-bg);color:var(--ui-text);transition:border-color .15s ease,box-shadow .15s ease}input:focus,select:focus,textarea:focus{border-color:var(--ui-primary);box-shadow:0 0 0 3px var(--ui-focus-ring)}input::placeholder,textarea::placeholder{color:#94a3b8}button{border:1px solid #0f766e;background:var(--ui-primary);color:#fff;border-radius:10px;padding:10px 16px;cursor:pointer;font-weight:600;font-size:14px;box-shadow:0 1px 3px #0f172a1f,0 1px 2px #0f172a14;transition:background .15s ease,box-shadow .15s ease,border-color .15s ease,opacity .15s ease}button:hover:not(:disabled){background:var(--ui-primary-hover);border-color:var(--ui-primary-hover);box-shadow:0 2px 6px #0f172a24}button:focus-visible{outline:none;box-shadow:0 0 0 3px var(--ui-focus-ring)}button:disabled{opacity:.55;cursor:not-allowed}button.btnGhost,button.linkButton,button.modalClose,button.shellLogoutBtn,button.shellMenuBtn,button.shellSidebarBackdrop,button.quickActionBtn{box-shadow:none}button.btnGhost{border:1px solid var(--ui-border-strong);background:var(--ui-surface);color:var(--ui-text);box-shadow:0 1px 2px #0f172a0f}button.btnGhost:hover:not(:disabled){background:var(--ui-surface-soft);border-color:#94a3b8}button.btnGhost.danger:hover:not(:disabled){background:#fef2f2;border-color:#b91c1c59}button.btnGhost.danger{border-color:#b91c1c59;color:#991b1b}button.quickActionBtn{border:1px solid var(--ui-border-strong);background:var(--ui-surface);color:var(--ui-text);font-weight:600;text-align:left;padding:14px 16px;border-radius:12px;box-shadow:0 1px 2px #0f172a0f}button.quickActionBtn:hover:not(:disabled){border-color:var(--shell-accent);background:var(--ui-surface-soft);box-shadow:0 1px 3px #0f172a14}.linkButton{border:none;background:transparent;color:var(--ui-text);padding:6px 10px;border-radius:8px;font-weight:500;box-shadow:none}.linkButton:hover:not(:disabled){background:var(--ui-surface-soft);color:var(--ui-primary-hover)}.muted{color:var(--ui-muted)}.error{border:1px solid #fecdd3;background:#fff1f2;color:#9f1239;padding:10px 12px;border-radius:10px;font-size:14px}.success{border:1px solid #86efac;background:#f0fdf4;color:#166534;padding:10px 12px;border-radius:10px;font-size:14px}.alertInfo{border:1px solid #bfdbfe;background:#eff6ff;color:#1d4ed8;padding:10px 12px;border-radius:10px;font-size:14px}.alertBanner{width:100%;box-sizing:border-box}.pageStack{display:flex;flex-direction:column;gap:16px}.pageBackLink{display:inline-flex;align-items:center;gap:6px;width:fit-content;text-decoration:none;color:var(--ui-muted);font-size:13px;font-weight:600}.pageBackLink:hover{color:var(--ui-primary-hover)}.pageHeaderBlock{width:100%;padding:18px 20px;border-radius:16px;border:1px solid var(--ui-border-strong);background:var(--ui-surface);box-shadow:var(--shadowElevated);box-sizing:border-box}.pageHeaderText{display:flex;flex-direction:column;gap:8px}.pageHeaderEyebrow{margin:0;color:var(--ui-primary-hover);font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.pageHeaderTitleRow{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}.pageHeaderTitle{margin:0;font-size:30px;line-height:1.15;letter-spacing:-.03em;color:var(--ui-text)}.pageHeaderSubtitle{margin:0;color:var(--ui-muted);max-width:70ch}.pageHeaderActions{display:flex;align-items:center;gap:8px}.sectionCard{display:flex;flex-direction:column;gap:16px}.sectionCardHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;flex-wrap:wrap}.sectionCardTitleWrap{display:flex;flex-direction:column;gap:6px}.sectionCardTitle{margin:0;font-size:20px;line-height:1.2;letter-spacing:-.02em;color:var(--ui-text)}.sectionCardSubtitle{margin:0;color:var(--ui-muted);font-size:14px}.sectionCardBody{display:flex;flex-direction:column;gap:14px}.sectionInlineTitle{margin:0;font-size:16px;color:var(--ui-text)}.emptyState{display:flex;flex-direction:column;align-items:flex-start;gap:10px}.emptyStateIcon{width:38px;height:38px;border-radius:999px;display:inline-flex;align-items:center;justify-content:center;background:#ecfeff;color:var(--ui-primary-hover);font-size:26px;line-height:1}.emptyStateTitle{font-size:18px;font-weight:700;color:var(--ui-text)}.emptyStateDescription{margin:0;color:var(--ui-muted);max-width:60ch}.emptyStateAction{margin-top:2px}.filterBar{gap:14px}.filterBarGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px 14px}.filterBarActions{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end}.infoList{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px 16px;margin:0}.infoListItem{display:flex;flex-direction:column;gap:4px}.infoListLabel{color:var(--ui-muted);font-size:12px;text-transform:uppercase;letter-spacing:.08em}.infoListValue{margin:0;color:var(--ui-text);font-weight:600;line-height:1.4}.statusPill{display:inline-flex;align-items:center;justify-content:center;min-height:28px;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:700;letter-spacing:.02em;border:1px solid transparent;white-space:nowrap}.statusPill-success{background:#dcfce7;color:#166534;border-color:#86efac}.statusPill-warning{background:#fef9c3;color:#854d0e;border-color:#fde68a}.statusPill-danger{background:#fee2e2;color:#991b1b;border-color:#fecaca}.statusPill-neutral{background:var(--ui-surface-soft);color:var(--ui-muted);border-color:var(--ui-border-strong)}.statusPill-info{background:#dbeafe;color:#1d4ed8;border-color:#93c5fd}.buttonLink{display:inline-flex;align-items:center;justify-content:center;border:1px solid #0f766e;background:var(--ui-primary);color:#fff;border-radius:10px;padding:10px 16px;cursor:pointer;font-weight:600;font-size:14px;text-decoration:none;box-shadow:0 1px 3px #0f172a1f,0 1px 2px #0f172a14;transition:background .15s ease,box-shadow .15s ease,border-color .15s ease}.buttonLink:hover{background:var(--ui-primary-hover);border-color:var(--ui-primary-hover);color:#fff;box-shadow:0 2px 6px #0f172a24}.buttonRow{display:flex;align-items:center;gap:8px}.buttonRow-wrap{flex-wrap:wrap}.chipRow{display:flex;flex-wrap:wrap;gap:8px}.chip{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;background:var(--ui-surface-soft);border:1px solid var(--ui-border);color:var(--ui-muted);font-size:12px;font-weight:600}.chip-subject{background:#ecfeff;border-color:#a5f3fc;color:#0f766e}.footer{margin-top:auto;flex-shrink:0;width:100%;background:var(--ui-surface-soft);border-top:1px solid var(--ui-border);padding:32px 16px 40px;box-sizing:border-box}.footer-inner{width:100%;max-width:var(--content-max);margin:0 auto;padding:0 8px;border:none;border-radius:0;box-shadow:none;background:transparent;display:grid;grid-template-columns:1fr;gap:20px;align-items:start;font-size:14px;color:var(--ui-muted)}@media(min-width:768px){.footer-inner{grid-template-columns:minmax(200px,320px) minmax(0,1fr);gap:32px 48px}}.footer-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 20px}.footer-title{font-weight:600;font-size:15px;color:var(--ui-text);letter-spacing:-.01em;margin-bottom:8px}.footer-label{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:#94a3b8;margin-bottom:4px}.small{font-size:12px}@media(max-width:640px){.footer-grid{grid-template-columns:1fr}}.pageWide{max-width:var(--content-max)}.teacherDiscoveryCount{margin-top:-4px}.teacherListPage{padding-bottom:40px}.teacherDiscoveryGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.teacherCard{display:flex;flex-direction:column;gap:14px;min-height:100%}.teacherCardHeader{display:flex;align-items:flex-start;gap:14px}.teacherCardIdentity{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.teacherCardTitleRow{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;flex-wrap:wrap}.teacherCardTitle{margin:0;font-size:20px;line-height:1.2;letter-spacing:-.02em}.teacherCardHeadline{margin:0;color:#475569}.teacherCardInfo{padding-top:4px}.teacherCardFooter{margin-top:auto;display:flex;justify-content:flex-start}.detailLayout{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(300px,.9fr);gap:18px;align-items:start}.detailMain,.detailSide{display:flex;flex-direction:column;gap:16px}.detailHeroCard .sectionCardBody{gap:18px}.detailHero{display:flex;gap:18px;align-items:flex-start;flex-wrap:wrap}.detailHeroBody{flex:1;min-width:240px;display:flex;flex-direction:column;gap:16px}.detailInfoGrid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}.detailBio p{margin:0}.detailFormGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}.resourceList,.reviewList,.notificationList{display:flex;flex-direction:column;gap:12px}.resourceItem,.reviewItem,.notificationCard,.bookingCard{border:1px solid var(--ui-border);border-radius:14px;padding:14px 16px;background:var(--ui-surface)}.resourceItem{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}.resourceTitle,.bookingCardTitle,.notificationCardTitle{font-weight:700;color:var(--ui-text)}.reviewItem{display:flex;flex-direction:column;gap:8px}.reviewItem p{margin:0}.reviewItemHeader,.bookingCardHeader,.notificationCardHeader{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}.reviewComposer{display:flex;flex-direction:column;gap:12px;padding-top:8px;border-top:1px solid rgba(15,23,42,.08)}.bookingSidebar{position:sticky;top:16px}.bookingSidebarFooter{padding-top:4px}.workflowStack{display:flex;flex-direction:column;gap:16px}.workflowCardGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}.bookingCard{display:flex;flex-direction:column;gap:12px}.bookingCard-muted{opacity:.88}.bookingCardNote,.notificationCardMessage{margin:0;color:#475569}.bookingCardActions,.notificationCardActions{display:flex;gap:8px;flex-wrap:wrap}.notificationCard-unread{border-color:#14b8a659;background:#14b8a60a}.profileEditor{width:100%}.profileEditorLayout{display:grid;grid-template-columns:minmax(260px,.8fr) minmax(0,1.5fr);gap:18px;align-items:start}.profileEditorAside,.profileEditorMain{display:flex;flex-direction:column;gap:16px}.profileEditorMain{min-width:0}.profileFormGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px 14px}.fieldSpanFull{grid-column:1 / -1}.fieldHint{margin:-2px 0 0;color:var(--ui-muted);font-size:12px}.profileFormFooter{display:flex;justify-content:flex-end}.courseThumbCard{height:120px;border-radius:12px 12px 0 0}.courseCatalogGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}.courseCardLink{text-decoration:none;color:inherit}.courseCardSurface{padding:0;overflow:hidden;display:flex;flex-direction:column;min-height:100%}.courseCardBody{padding:12px;display:flex;flex:1;flex-direction:column;gap:8px}.courseCardTop{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.courseCardMeta{color:var(--ui-muted);font-size:12px}.courseCardTitle{font-weight:700;font-size:16px;line-height:1.35;color:var(--ui-text)}.courseCardDescription{margin:0;color:var(--ui-muted);font-size:14px}.courseCardFeatures{display:flex;flex-wrap:wrap;gap:8px}.courseCardFeature{display:inline-flex;align-items:center;padding:6px 10px;border-radius:999px;background:var(--ui-surface-soft);border:1px solid var(--ui-border);color:var(--ui-muted);font-size:12px;font-weight:600}.courseCardFooter{margin-top:auto;display:flex;align-items:center;justify-content:space-between;gap:10px}.courseCardArrow{color:var(--ui-primary-hover);font-weight:700}.courseCatalogSummary{margin-top:-4px}.courseCardHint{margin-top:auto;color:var(--ui-primary-hover);font-size:12px;font-weight:700}.pageHeader{margin-bottom:20px;padding:14px 18px;border-radius:12px;background:var(--ui-surface);border:1px solid var(--ui-border-strong);border-left:4px solid var(--shell-accent);box-shadow:var(--shadowElevated);font-weight:700;font-size:1.35rem;letter-spacing:-.02em;color:var(--ui-text)}.sectionTitleUnderline{margin:0 0 12px;font-size:18px;padding-bottom:8px;border-bottom:2px solid var(--ui-border);color:var(--ui-text)}.courseThumb{flex-shrink:0}.myCourseCard{transition:transform .15s ease,box-shadow .15s ease}.myCourseCard:hover{transform:translateY(-2px);box-shadow:var(--shadow)}.subjectWorkspace .subjectBack{display:inline-block;margin-bottom:12px;text-decoration:none}.subjectWorkspace .subjectBack:hover{text-decoration:underline}.subjectHeader{margin-bottom:24px}.subjectStatGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}.subjectStatCard{display:flex;flex-direction:column;gap:6px}.subjectStatLabel{color:var(--ui-muted);font-size:12px;text-transform:uppercase;letter-spacing:.08em}.subjectStatValue{font-size:30px;font-weight:700;line-height:1;color:var(--ui-text)}.subjectStatHint{color:var(--ui-muted);font-size:13px}.quickActions{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:12px;margin-bottom:28px}.quickActionBtn{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:14px 16px;border-radius:12px;border:1px solid var(--ui-border-strong);background:var(--ui-surface);box-shadow:0 1px 2px #0f172a0f;cursor:pointer;font-weight:600;font-size:14px;color:var(--ui-text);text-align:left;text-decoration:none;transition:border-color .15s ease,background .15s ease,box-shadow .15s ease}button.quickActionBtn:hover:not(:disabled),a.quickActionBtn:hover{border-color:var(--shell-accent);background:var(--ui-surface-soft);box-shadow:0 1px 3px #0f172a14}.quickActionLink{display:flex}.quickActionIcon{display:inline-flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:12px;background:var(--ui-surface-soft);color:var(--ui-primary-hover)}.quickActionTitle{font-weight:700}.quickActionDescription{color:var(--ui-muted);font-size:12px;font-weight:500;line-height:1.45}.subjectSection{margin-bottom:32px}.subjectSection h2{margin:0 0 12px;font-size:18px;letter-spacing:-.02em;color:var(--ui-text)}.subjectSectionHead{display:flex;align-items:center;gap:10px;margin-bottom:14px}.subjectSectionHead h2{margin:0;font-size:18px}.slotCardGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px}.slotCard{border:1px solid var(--ui-border-strong);border-radius:12px;padding:16px 18px;background:var(--ui-surface);box-shadow:var(--shadowElevated)}.slotCardHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:10px}.slotCardDay{font-weight:600;font-size:15px;color:var(--ui-text);margin-bottom:10px}.slotCardTime{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--ui-text)}.slotCardTime svg{flex-shrink:0;color:var(--ui-muted)}.slotCardMeta{margin-top:10px}.slotCardActions{margin-top:12px;display:flex;flex-wrap:wrap;gap:8px}.btnGhost{border:1px solid var(--ui-border-strong);background:var(--ui-surface);color:var(--ui-text);box-shadow:0 1px 2px #0f172a0f}.btnGhost:hover:not(:disabled){background:var(--ui-surface-soft);border-color:#94a3b8}.btnGhost.danger{border-color:#b91c1c59;color:#991b1b}.btnGhost.danger:hover:not(:disabled){background:#fef2f2}.smallBtn{padding:6px 10px;font-size:13px;border-radius:10px}.subjectList{display:flex;flex-direction:column;gap:10px}.subjectListRow{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}.subjectResourceRow{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}.subjectResourceMain{display:flex;flex-direction:column;gap:8px;min-width:0}.subjectResourceTitleRow{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.subjectResourceDescription{color:var(--ui-muted);font-size:14px}.subjectResourceActions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;justify-content:flex-end}.modalBackdrop{position:fixed;inset:0;z-index:1000;background:#0f172a80;display:flex;align-items:center;justify-content:center;padding:24px 16px}.modalPanel{width:100%;max-width:440px;max-height:min(90vh,720px);overflow:auto;border-radius:14px;border:1px solid var(--ui-border-strong);background:var(--ui-surface);box-shadow:var(--shadow)}.modalHeader{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 18px;border-bottom:1px solid rgba(15,23,42,.08)}.modalHeader h2{margin:0;font-size:18px;letter-spacing:-.02em;color:var(--ui-text)}.modalClose{border:none!important;background:transparent!important;font-size:26px;line-height:1;cursor:pointer;color:var(--ui-muted);padding:0 4px;border-radius:8px;box-shadow:none!important}.modalClose:hover:not(:disabled){background:var(--ui-surface-soft)!important;color:var(--ui-text)}.modalBody{padding:18px}.modalFooter{padding:12px 18px 18px;border-top:1px solid rgba(15,23,42,.06)}.modalForm{gap:14px}.modalIntro{margin-top:0}.subjectModalActions{justify-content:flex-end}.avatarUploadBlock{display:flex;flex-direction:column;gap:10px}.avatarPreviewWrap{width:140px;height:140px;border-radius:50%;overflow:hidden;border:2px solid rgba(15,23,42,.12);background:#fffc}.avatarPreviewImg{width:100%;height:100%;object-fit:cover;display:block}.avatarPreviewPlaceholder{padding:24px;border:1px dashed rgba(15,23,42,.2);border-radius:14px;text-align:center}.filePreviewBox{margin-top:0;display:flex;flex-direction:column;gap:10px;padding:12px;border:1px solid rgba(148,163,184,.18);border-radius:14px;background:#0f172a29}.filePreviewBox-file{flex-direction:row;align-items:center}.filePreviewBox-image{overflow:hidden}.filePreviewImageFrame{display:flex;align-items:center;justify-content:center;min-height:220px;border:1px solid rgba(148,163,184,.16);border-radius:12px;overflow:hidden;background:#0f172a2e}.filePreviewFileBadge{display:inline-flex;align-items:center;justify-content:center;min-width:56px;min-height:56px;padding:8px;border-radius:14px;background:#14b8a624;color:var(--ui-primary-hover);font-size:12px;font-weight:700}.filePreviewMeta{display:flex;flex-direction:column;gap:4px;min-width:0}.filePreviewMeta-inline{flex-direction:row;align-items:center;justify-content:space-between}.filePreviewName{color:var(--ui-text);word-break:break-word}.filePreviewImg{width:100%;max-width:100%;max-height:320px;object-fit:contain;display:block;background:transparent}.uploadField{display:flex;flex-direction:column;gap:10px}.uploadFieldLabel{font-size:14px;font-weight:600;color:var(--ui-text)}.uploadInput{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.uploadDropzone{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;min-height:160px;padding:24px 18px;border-radius:18px;border:1.5px dashed rgba(20,184,166,.45);background:linear-gradient(180deg,#14b8a60d,#14b8a605);text-align:center;cursor:pointer;transition:border-color .15s ease,background .15s ease,transform .15s ease}.uploadDropzone:hover{border-color:var(--ui-primary-hover);background:linear-gradient(180deg,#14b8a614,#14b8a608);transform:translateY(-1px)}.uploadDropzoneIcon{width:56px;height:56px;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#14b8a624;color:var(--ui-primary-hover)}.uploadDropzoneTitle{font-size:16px;font-weight:700;color:var(--ui-text)}.uploadDropzoneHint{color:var(--ui-muted);font-size:13px}.uploadFieldSelected{display:flex;flex-direction:column;gap:12px;padding:14px 16px;border:1.5px dashed rgba(20,184,166,.45);border-radius:18px;background:linear-gradient(180deg,#14b8a60d,#14b8a605)}.uploadFieldSelectedHeader{display:flex;align-items:center;justify-content:space-between;gap:12px}.uploadFieldSelectedInfo{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.uploadFieldSelectedName{color:var(--ui-text);word-break:break-word}.uploadFieldSelectedBadge{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;background:#86efac2e;color:#166534;font-size:12px;font-weight:700}.uploadFieldActions{display:flex;gap:8px;flex-wrap:wrap}.uploadActionLabel{display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:0 14px;border-radius:10px;background:#14b8a62e;color:var(--ui-text);font-size:14px;font-weight:600;cursor:pointer;text-decoration:none}.uploadActionLabel:hover{background:#14b8a647}.selectedSubjectCard{display:flex;flex-direction:column;gap:4px;padding:14px 16px;border-radius:14px;border:1px solid var(--ui-border);background:var(--ui-surface-soft)}.teacherListRow{display:flex;gap:16px;align-items:flex-start}.teacherListRowBody{flex:1;min-width:0}.teacherDetailHeader{display:flex;gap:20px;align-items:flex-start;flex-wrap:wrap;margin-bottom:12px}.teacherDetailHeaderText{flex:1;min-width:200px}.teacherAvatarImg{border-radius:50%;object-fit:cover;border:1px solid rgba(15,23,42,.1);flex-shrink:0;display:block;background:#fffc}.teacherAvatar-sm{width:52px;height:52px}.teacherAvatar-md{width:80px;height:80px}.teacherAvatar-lg{width:112px;height:112px}.teacherAvatarFallback{border-radius:50%;flex-shrink:0;display:flex;align-items:center;justify-content:center;font-weight:700;color:#0f766e;background:#ccfbf1;border:1px solid #99f6e4}.teacherAvatar-sm.teacherAvatarFallback{font-size:1.1rem}.teacherAvatar-md.teacherAvatarFallback{font-size:1.35rem}.teacherAvatar-lg.teacherAvatarFallback{font-size:2rem}.shellTopbar{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:10px 16px;background:var(--shell-topbar-bg);color:#e2e8f0;border-bottom:1px solid rgba(15,23,42,.5);box-shadow:0 1px #ffffff0f inset;position:relative;z-index:40}.shellTopbarLeft{display:flex;align-items:center;gap:8px;min-width:0}.shellMenuBtn{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px;padding:0;border-radius:10px;border:1px solid rgba(226,232,240,.2)!important;background:#0f172a73!important;color:#e2e8f0!important;cursor:pointer;box-shadow:none!important}.shellMenuBtn:hover:not(:disabled){background:#14b8a633!important;border-color:#14b8a680!important}.shellBrand{font-weight:700;text-decoration:none;letter-spacing:-.02em;color:#f8fafc;white-space:nowrap}.shellBrand:hover{color:var(--shell-accent)}.shellTopNav{display:flex;flex-wrap:wrap;gap:6px 10px;align-items:center;justify-content:flex-end;margin-left:auto}.shellTopbarActions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px;margin-left:auto}.shellTopLink,.shellIconLink{text-decoration:none;padding:6px 12px;border-radius:999px;font-size:14px;color:#cbd5e1;border:1px solid transparent}.shellTopLink:hover,.shellIconLink:hover{background:#94a3b81f;color:#f1f5f9}.shellTopLinkActive{background:var(--shell-accent-soft);color:#5eead4!important;border-color:#14b8a673}.shellIconLink{display:inline-flex;align-items:center;justify-content:center;padding:6px 10px}.shellUserName{font-size:13px;max-width:140px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#94a3b8}.shellThemeBtn{display:inline-flex;align-items:center;gap:8px;border:1px solid rgba(45,212,191,.35)!important;background:#14b8a61f!important;color:#ccfbf1!important;padding:6px 12px;border-radius:999px;box-shadow:none!important}.shellThemeBtn:hover:not(:disabled){background:#14b8a638!important;border-color:#2dd4bf99!important}.shellThemeLabel{font-weight:600}.shellLogoutBtn{border:1px solid rgba(226,232,240,.28)!important;background:transparent!important;color:#e2e8f0!important;padding:6px 12px;border-radius:10px;font-weight:600;cursor:pointer;box-shadow:none!important}.shellLogoutBtn:hover:not(:disabled){background:#f871711f!important;border-color:#f8717166!important;color:#fecaca!important}.shellBody{display:flex;flex:1 0 auto;width:100%;align-items:stretch;min-height:min-content}.shellContentWrapper{display:flex;flex-direction:column;flex:1;min-width:0}.shellBodyGuest .shellContentWrapper{background:var(--shell-main-bg)}.shellBodyGuest .shellMain{background:transparent}.shellSidebar{flex-shrink:0;width:240px;align-self:stretch;background:var(--shell-nav-bg);color:#e2e8f0;padding:18px 14px;border-right:1px solid rgba(15,23,42,.65);display:flex;flex-direction:column;gap:20px}.shellSidebarSection{display:flex;flex-direction:column;gap:4px}.shellSidebarLabel{font-size:11px;text-transform:uppercase;letter-spacing:.1em;color:#64748b;margin-bottom:4px}.shellSideLink{text-decoration:none;color:#cbd5e1;padding:8px 10px;border-radius:10px;font-size:14px}.shellSideLink:hover{background:#94a3b81a;color:#f8fafc}.shellSideLinkActive{background:var(--shell-accent-soft);color:#5eead4;border:1px solid rgba(20,184,166,.35)}.shellMain{flex:1 0 auto;min-width:0;background:var(--shell-main-bg);padding:24px 16px;display:flex;justify-content:center}.shellPageFrame{width:100%;display:flex;flex-direction:column;align-items:center;gap:16px}.shellFlash{width:min(100%,720px);box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;gap:12px}.shellFlashClose{flex-shrink:0}[data-theme=dark] .alertInfo{background:#1e40af33;border-color:#60a5fa59;color:#bfdbfe}[data-theme=dark] .success{background:#14532d59;border-color:#4ade8047;color:#bbf7d0}[data-theme=dark] .error{background:#7f1d1d47;border-color:#f8717159;color:#fecaca}[data-theme=dark] .emptyStateIcon,[data-theme=dark] .teacherAvatarFallback{background:#14b8a624}[data-theme=dark] .filePreviewImg,[data-theme=dark] .filePreviewImageFrame,[data-theme=dark] .avatarPreviewWrap,[data-theme=dark] .teacherAvatarImg{background:#0f172ae6;border-color:#94a3b82e}[data-theme=dark] .avatarPreviewPlaceholder{border-color:#94a3b847}[data-theme=dark] .uploadDropzone{border-color:#2dd4bf6b;background:linear-gradient(180deg,#2dd4bf17,#2dd4bf08)}[data-theme=dark] .uploadDropzone:hover{background:linear-gradient(180deg,#2dd4bf1f,#2dd4bf0d)}[data-theme=dark] .uploadFieldSelected{border-color:#2dd4bf6b;background:linear-gradient(180deg,#2dd4bf17,#2dd4bf08)}[data-theme=dark] .quickActionIcon,[data-theme=dark] .filePreviewFileBadge{background:#2dd4bf24}[data-theme=dark] .uploadFieldSelectedBadge{background:#86efac29;color:#dcfce7}[data-theme=dark] .uploadActionLabel{background:#2dd4bf2e}[data-theme=dark] .uploadActionLabel:hover{background:#2dd4bf47}@media(max-width:768px){.shellMain{padding:16px}.pageHeaderTitle{font-size:26px}.detailLayout,.profileEditorLayout{grid-template-columns:1fr}.shellThemeLabel{display:none}.subjectResourceRow{flex-direction:column}.subjectResourceActions{width:100%;justify-content:flex-start}}@media(max-width:899px){.shellUserName{display:none}.shellTopbar{gap:10px}.shellTopbarActions{gap:6px}.shellSidebar{position:fixed;top:0;left:0;bottom:0;width:min(280px,88vw);z-index:50;padding-top:72px;transform:translate(-100%);transition:transform .2s ease;box-shadow:8px 0 32px #02061773}.shellSidebar.shellSidebarOpen{transform:translate(0)}.shellSidebarBackdrop{display:block;position:fixed;inset:0;z-index:45;background:#02061773!important;border:none!important;cursor:pointer;padding:0;box-shadow:none!important;color:transparent;font-size:0;line-height:0}}@media(min-width:900px){.shellMenuBtn{display:none}.shellTopbar{flex-wrap:nowrap}.shellSidebar{position:relative;transform:none!important;transition:none;box-shadow:none;padding-top:18px;min-height:100%}}.homePage{width:100%;max-width:var(--content-max)}.homeHero{margin-bottom:32px;padding:36px 32px;background:linear-gradient(135deg,#0f2744,#14b8a6);color:#fff;border-radius:16px;box-shadow:0 10px 30px #14b8a626;border:none}.homeHero .homeDate{margin:0 0 12px;color:#5eead4!important;text-transform:uppercase;font-weight:600;letter-spacing:.05em;font-size:13px}.homeHero .homeTitle{margin:0 0 12px;font-size:32px;letter-spacing:-.02em;color:#fff}.homeHero .homeLead{margin:0;font-size:17px;line-height:1.6;max-width:58ch;color:#ffffffd9!important}.homeHero .homeUserDesc{margin-top:16px;color:#ffffffb3!important}.homeError{margin-bottom:24px}.homeLoading{padding:12px 0}.homeSection{margin-bottom:28px}.homeSectionTitle{margin:0 0 14px;font-size:18px;letter-spacing:-.02em;color:var(--ui-text)}.homeTzNote{margin:-8px 0 14px}.dashboardGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px}.dashboardGridNarrow{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.statCard{background:var(--ui-surface);border:1px solid var(--ui-border-strong);border-radius:16px;padding:20px;box-shadow:0 2px 8px #0f172a0a;display:flex;align-items:center;gap:16px;transition:transform .2s ease,box-shadow .2s ease}.statCard:hover{transform:translateY(-2px);box-shadow:0 8px 24px #0f172a14}.statCardIcon{width:48px;height:48px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.statCardIcon svg{font-size:24px}.statCardIcon._teal{background:#ccfbf1;color:#0f766e}.statCardIcon._indigo{background:#e0e7ff;color:#3730a3}.statCardIcon._amber{background:#fef3c7;color:#b45309}.statCardIcon._rose{background:#ffe4e6;color:#9f1239}.statCardIcon._blue{background:#dbeafe;color:#1d4ed8}.statCardDetails{flex:1;min-width:0}.statCardValue{font-size:24px;font-weight:800;letter-spacing:-.02em;color:var(--ui-text);line-height:1.2}.statCardLabel{margin-top:4px;font-size:13px;color:#64748b;font-weight:500;line-height:1.3}.statCardLink{text-decoration:none;color:inherit;display:flex;align-items:center;justify-content:center;flex-direction:column;text-align:center;gap:8px}.statCardLink:hover{border-color:#14b8a673;box-shadow:0 12px 32px #14b8a61f}.statCardLinkTitle{font-size:18px;display:flex;align-items:center;gap:6px}.homeTableWrap{overflow-x:auto;padding:0}.homeTable{width:100%;border-collapse:collapse;font-size:14px}.homeTable th,.homeTable td{padding:10px 12px;text-align:left;border-bottom:1px solid rgba(15,23,42,.08)}.homeTable th{font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:#64748b;font-weight:600}.statusBadge{display:inline-flex;align-items:center;gap:4px;padding:4px 8px;border-radius:999px;font-size:12px;font-weight:600}.statusBadge.confirmed{background:#dcfce7;color:#0b1510}.statusBadge.pending{background:#fef9c3;color:#451a03}.statusBadge.cancelled{background:#fee2e2;color:#450a0a}.homeNotifList{list-style:none;margin:0;padding:0}.homeNotifItem{padding:16px;border-bottom:1px solid rgba(15,23,42,.06);display:flex;gap:12px;align-items:flex-start}.homeNotifItem:last-child{border-bottom:none}.homeNotifUnread{background:#14b8a60a}.homeNotifIcon{margin-top:2px;color:#14b8a6}.homeNotifContent{flex:1}.homeNotifTitle{font-weight:600;margin-bottom:4px;color:var(--ui-text);font-size:15px}.homeNotifMessage{color:#475569;font-size:14px;line-height:1.5;margin-bottom:6px}.homeNotifTime{display:flex;align-items:center;gap:4px;color:#94a3b8}#root{min-height:100vh}
