@import url("https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600;700&family=Mulish:wght@300;400;500;600;700&display=swap");:root{--tma-orange:#db6d32;--tma-orange-700:#b3551f;--tma-orange-100:#fae3d4;--tma-navy:#2f4878;--tma-navy-700:#213357;--tma-navy-300:#8094b8;--tma-navy-100:#d6deec;--tma-yellow:#f2b338;--tma-yellow-100:#fef6e0;--tma-green:#9bc267;--tma-green-100:#e8f3d8;--tma-sky:#bbe2e9;--tma-sky-100:#e8f6f8;--tma-cream:#faf5ea;--c-accent:var(--tma-orange);--c-accent-700:var(--tma-orange-700);--c-accent-100:var(--tma-orange-100);--c-page:#faf7f1;--c-surface:#fff;--c-ink:#20283b;--c-ink-2:#4a5468;--c-ink-3:#7c8598;--c-line:rgba(47,72,120,.12);--c-line-2:rgba(47,72,120,.2);--c-radius:16px;--c-radius-sm:11px;--c-shadow:0 1px 2px rgba(33,51,87,.05),0 6px 16px rgba(33,51,87,.07);--c-shadow-sm:0 1px 2px rgba(33,51,87,.06);--safe-top:env(safe-area-inset-top,16px);--font-display:"Poppins",sans-serif;--font-body:"Mulish",sans-serif;--dur-fast:160ms;--dur-base:240ms;--ease-out:cubic-bezier(0.16,1,0.3,1);--ease-bounce:cubic-bezier(0.34,1.56,0.64,1)}*,:after,:before{box-sizing:border-box}body,html{margin:0;height:100%;background:var(--c-page);font-family:var(--font-body);font-size:15px;line-height:1.5;color:var(--c-ink-2);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.c-display{font-family:var(--font-display);color:var(--c-ink);letter-spacing:-.01em}.c-app-shell{min-height:100dvh;display:flex;flex-direction:column;background:var(--c-page)}@media (min-width:1024px){.c-app-shell{flex-direction:row}}.c-topbar{display:flex;align-items:center;gap:12px;padding:calc(var(--safe-top) + 8px) 18px 12px;background:var(--c-surface);border-bottom:1px solid var(--c-line);position:sticky;top:0;z-index:10}@media (min-width:1024px){.c-topbar{display:none}}.c-sidebar{width:260px;flex-shrink:0;display:none;flex-direction:column;background:var(--c-surface);border-right:1px solid var(--c-line);height:100dvh;position:sticky;top:0;overflow-y:auto}@media (min-width:1024px){.c-sidebar{display:flex}}.c-sidebar-logo{padding:24px 20px 8px}.c-sidebar-logo img{height:30px}.c-nav-label{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--c-ink-3);padding:16px 20px 5px}.c-nav-item,.c-nav-label{font-family:var(--font-display)}.c-nav-item{display:flex;align-items:center;gap:10px;width:100%;padding:10px 20px;border:none;background:none;cursor:pointer;color:var(--c-ink-2);font-size:14.5px;font-weight:600;text-align:left;border-radius:0;transition:background var(--dur-fast) var(--ease-out),color var(--dur-fast) var(--ease-out);text-decoration:none}.c-nav-item:hover{background:var(--c-page)}.c-nav-item.active{background:var(--c-accent-100);color:var(--c-accent-700)}.c-nav-item .count{margin-left:auto;background:var(--c-page);border:1px solid var(--c-line);padding:1px 7px;border-radius:999px}.c-nav-item .count,.c-nav-sub{font-size:12px;color:var(--c-ink-3)}.c-nav-sub{font-weight:400;display:block;margin-top:1px}.c-sidebar-acct{margin-top:auto;padding:14px 16px;display:flex;align-items:center;gap:10px;cursor:pointer;background:none;border:none;border-top:1px solid var(--c-line);width:100%;position:relative}.c-sidebar-acct:hover{background:var(--c-page)}.c-main{flex:1;min-width:0;display:flex;flex-direction:column}.c-scroll{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}.c-scroll::-webkit-scrollbar{width:0}.c-page-pad{padding:24px 20px 48px;max-width:720px;margin:0 auto}.c-page-head{margin-bottom:28px}.c-h1{font-family:var(--font-display);font-size:26px;font-weight:700;color:var(--c-ink);letter-spacing:-.02em;margin:0 0 4px}.c-h1-sub{color:var(--c-ink-3);font-size:14px}.c-section-label{display:flex;align-items:center;gap:7px;margin:0 2px 11px;color:var(--c-ink-3)}.c-section-label .t{font-family:var(--font-display);font-size:12px;letter-spacing:.06em;text-transform:uppercase;flex:1}.c-card{background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--c-radius);box-shadow:var(--c-shadow-sm)}.c-student-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;margin-bottom:28px}.c-student-card{background:var(--c-surface);border-radius:var(--c-radius);box-shadow:var(--c-shadow-sm);padding:14px 15px;display:flex;align-items:center;gap:12px;cursor:pointer;transition:box-shadow var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out);text-align:left;width:100%;border:1px solid var(--c-line)}.c-student-card:hover{box-shadow:var(--c-shadow);border-color:var(--c-line-2)}.c-student-card.sel{border-color:var(--c-accent);box-shadow:0 0 0 2px var(--c-accent-100)}.c-class-head{gap:6px;margin:0 2px 10px}.c-class-card,.c-class-head{display:flex;align-items:center}.c-class-card{gap:13px;width:100%;padding:14px 15px;background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--c-radius);cursor:pointer;text-align:left;transition:box-shadow var(--dur-fast) var(--ease-out)}.c-class-card:hover{box-shadow:var(--c-shadow)}.c-class-card-icon{width:40px;height:40px;border-radius:12px;background:var(--c-accent-100);color:var(--c-accent-700);display:flex;align-items:center;justify-content:center;flex-shrink:0}.c-search-wrap{display:flex;align-items:center;gap:10px;padding:11px 14px;border-radius:13px;border:1px solid var(--c-line);background:var(--c-page);cursor:text;color:var(--c-ink-3);width:100%;margin-bottom:20px}.c-search-wrap input{flex:1;border:none;background:none;outline:none;font-family:var(--font-body);font-size:14.5px;color:var(--c-ink)}.c-search-wrap input::-moz-placeholder{color:var(--c-ink-3)}.c-search-wrap input::placeholder{color:var(--c-ink-3)}.c-avatar{flex-shrink:0;border-radius:50%;display:flex;align-items:center;justify-content:center;font-family:var(--font-display);color:#fff;font-weight:600;letter-spacing:0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.c-avatar.ring{box-shadow:0 0 0 3px #fff,0 0 0 5px var(--c-line-2)}.c-star{background:none;border:none;padding:4px;cursor:pointer;flex-shrink:0;display:inline-flex;align-items:center;justify-content:center;border-radius:999px;transition:transform var(--dur-fast) var(--ease-out);color:var(--c-ink-3)}.c-star.on{color:var(--tma-yellow)}.c-star:hover{background:rgba(242,179,56,.12)}.c-star:active{transform:scale(.85)}.c-chip{display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:999px;font-size:12px;font-weight:600;line-height:1;background:var(--c-page);color:var(--c-ink-2);border:1px solid var(--c-line);white-space:nowrap}.c-chip.accent{background:var(--c-accent-100);color:var(--c-accent-700);border-color:transparent}.c-chip.navy{background:var(--tma-navy-100);color:var(--tma-navy-700);border-color:transparent}.c-chip.green{background:var(--tma-green-100);color:#4f6b2e;border-color:transparent}.c-chip.sky{background:var(--tma-sky-100);color:#2c6470;border-color:transparent}.c-chip.yellow{background:var(--tma-yellow-100);color:#8a6310;border-color:transparent}.c-chip.clickable{cursor:pointer;transition:background var(--dur-fast) var(--ease-out)}.c-chip.clickable:hover{background:var(--tma-navy-100);color:var(--tma-navy-700)}.c-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;font-family:var(--font-display);font-size:16px;font-weight:600;padding:14px 20px;border-radius:999px;border:none;cursor:pointer;background:var(--c-accent);color:#fff;width:100%;transition:background var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.c-btn:hover{background:var(--c-accent-700)}.c-btn:active{transform:scale(.985)}.c-btn:disabled{opacity:.42;cursor:default}.c-btn.ghost{background:transparent;color:var(--c-ink-2);border:1px solid var(--c-line-2)}.c-btn.ghost:hover{background:var(--c-page)}.c-btn.navy{background:var(--tma-navy)}.c-btn.navy:hover{background:var(--tma-navy-700)}.c-btn.inline{width:auto;padding:10px 20px;font-size:14.5px}.c-btn.sm{width:auto;padding:9px 16px;font-size:14px}.c-iconbtn{width:38px;height:38px;border-radius:11px;flex-shrink:0;display:flex;align-items:center;justify-content:center;background:var(--c-page);color:var(--c-ink-2);border:1px solid var(--c-line);cursor:pointer;transition:background var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.c-iconbtn:hover{background:#f1ece1}.c-iconbtn:active{transform:scale(.94)}.c-iconbtn.accent{background:var(--c-accent);border-color:transparent;color:#fff}.c-iconbtn.accent:hover{background:var(--c-accent-700)}.c-input,.c-textarea{width:100%;border:1.5px solid var(--c-line-2);border-radius:13px;background:var(--c-surface);padding:13px 15px;font-family:var(--font-body);font-size:15.5px;color:var(--c-ink);line-height:1.55;outline:none;resize:none;transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.c-input:focus,.c-textarea:focus{border-color:var(--c-accent);box-shadow:0 0 0 3px var(--c-accent-100)}.c-input::-moz-placeholder,.c-textarea::-moz-placeholder{color:var(--c-ink-3)}.c-input::placeholder,.c-textarea::placeholder{color:var(--c-ink-3)}.c-seg{display:flex;gap:4px;padding:4px;background:var(--c-page);border:1px solid var(--c-line);border-radius:13px}.c-seg button{flex:1;border:none;background:none;cursor:pointer;font-family:var(--font-display);font-size:13.5px;font-weight:600;color:var(--c-ink-3);padding:8px 6px;border-radius:9px;display:flex;align-items:center;justify-content:center;gap:6px;transition:all var(--dur-fast) var(--ease-out)}.c-seg button.on{background:var(--c-surface);color:var(--c-accent-700);box-shadow:var(--c-shadow-sm)}.c-note{display:flex;gap:11px;padding:2px 0}.c-note-line{width:2px;background:var(--c-line);border-radius:2px;flex-shrink:0;margin:4px auto 0;flex:1}.c-note-body{flex:1;min-width:0;padding-bottom:20px}.c-note-head{display:flex;align-items:baseline;gap:8px;margin-bottom:4px;flex-wrap:wrap}.c-note-coach{font-family:var(--font-display);font-size:14px;color:var(--c-ink);font-weight:600}.c-note-date{font-size:12px;color:var(--c-ink-3)}.c-note-text{font-size:14.5px;line-height:1.6;color:var(--c-ink-2)}.c-rec-card{background:var(--tma-sky-100);border:1px solid rgba(44,100,112,.18);border-radius:12px;padding:11px 13px}.c-rec-tag{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;color:#2c6470;margin-bottom:5px}.c-pin{background:var(--tma-yellow-100);border:1px solid rgba(138,99,16,.2);border-radius:14px;padding:13px 15px;display:flex;gap:11px}.c-pin-icon{color:#a9760f;flex-shrink:0;margin-top:1px}.c-pin-label{font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:#a9760f;margin-bottom:3px}.c-pin-text{font-size:14px;line-height:1.5;color:#7a5a12}.c-detail-head{border-bottom:1px solid var(--c-line);padding:20px;background:var(--c-surface)}.c-detail-name{font-family:var(--font-display);font-size:22px;color:var(--c-ink);font-weight:700;letter-spacing:-.02em}.c-detail-sub{font-size:13px;color:var(--c-ink-3);margin-top:2px}.c-detail-body{padding:20px 20px 48px}.c-modal-backdrop{position:fixed;inset:0;background:rgba(33,51,87,.4);backdrop-filter:blur(2px);z-index:50;display:flex;align-items:flex-end}@media (min-width:640px){.c-modal-backdrop{align-items:center;justify-content:center}}.c-modal{background:var(--c-page);width:100%;border-radius:24px 24px 0 0;max-height:92dvh;display:flex;flex-direction:column;overflow:hidden}@media (min-width:640px){.c-modal{border-radius:24px;max-width:500px;max-height:85dvh}}.c-modal-bar{padding:16px 18px 12px;border-bottom:1px solid var(--c-line);background:var(--c-page);flex-shrink:0}.c-modal-body{flex:1;overflow-y:auto;padding:14px 18px 18px;-webkit-overflow-scrolling:touch}.c-modal-footer{background:var(--c-page);border-top:1px solid var(--c-line);flex-shrink:0}.c-fab,.c-modal-footer{padding:12px 18px calc(12px + env(safe-area-inset-bottom, 0px))}.c-fab{position:fixed;bottom:0;left:0;right:0;background:linear-gradient(to top,var(--c-page) 72%,hsla(40,47%,96%,0));z-index:20}.c-fab button{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:15px 20px;border-radius:999px;border:none;cursor:pointer;background:var(--c-accent);color:#fff;font-family:var(--font-display);font-size:16px;font-weight:700;box-shadow:0 4px 16px rgba(219,109,50,.45);transition:background var(--dur-fast) var(--ease-out),transform var(--dur-fast) var(--ease-out)}.c-fab button:hover{background:var(--c-accent-700)}.c-fab button:active{transform:scale(.985)}@media (min-width:1024px){.c-fab{left:auto;padding:0;background:none}.c-fab button{width:auto;padding:14px 22px;font-size:15px;box-shadow:0 4px 16px rgba(219,109,50,.45),0 1px 4px rgba(33,51,87,.15)}.c-fab{right:32px;bottom:32px}}.c-wave{display:flex;align-items:center;gap:3px;height:40px;justify-content:center}.c-wave span{width:3px;border-radius:3px;background:var(--c-accent);height:30%}.c-wave.live span{animation:wave .9s var(--ease-bounce) infinite}@keyframes wave{0%,to{height:18%}50%{height:90%}}@keyframes micpulse{0%{box-shadow:0 8px 24px rgba(219,109,50,.4),0 0 0 0 rgba(219,109,50,.35)}70%{box-shadow:0 8px 24px rgba(219,109,50,.4),0 0 0 22px rgba(219,109,50,0)}to{box-shadow:0 8px 24px rgba(219,109,50,.4),0 0 0 0 rgba(219,109,50,0)}}.c-toast{position:fixed;bottom:80px;left:50%;transform:translateX(-50%) translateY(8px);background:var(--tma-navy);color:#fff;font-family:var(--font-display);font-weight:600;font-size:14px;padding:11px 18px;border-radius:999px;box-shadow:0 8px 24px rgba(33,51,87,.3);display:flex;align-items:center;gap:8px;opacity:0;pointer-events:none;transition:opacity var(--dur-base) var(--ease-out),transform var(--dur-base) var(--ease-out);z-index:100;white-space:nowrap}.c-toast.show{opacity:1;transform:translateX(-50%) translateY(0)}@media (min-width:1024px){.c-toast{bottom:32px}}.cn-login{min-height:100dvh;flex:1;display:flex;align-items:center;justify-content:center;padding:40px;overflow-y:auto;position:relative;background:#f6f4ef}.cn-login-deco{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:0}.cn-login-card{position:relative;z-index:1;width:100%;max-width:404px;background:var(--c-surface);border:1px solid var(--c-line);border-radius:var(--c-radius);box-shadow:var(--c-shadow);padding:40px 40px 36px;min-height:332px;display:flex;flex-direction:column}.cn-login-head{display:flex;align-items:baseline;justify-content:space-between;gap:14px;margin-bottom:28px}.cn-product-name{font-weight:700;font-size:27px;letter-spacing:-.025em;color:var(--tma-navy);margin:0;transform:translateY(31px)}.cn-brand-mark,.cn-product-name{font-family:var(--font-display);line-height:1}.cn-brand-mark{font-weight:600;font-size:13px;letter-spacing:-.01em;color:var(--tma-orange);white-space:nowrap;flex-shrink:0;transform:translateY(-22px)}.cn-form-lede{font-size:15px;line-height:1.6;color:var(--c-ink-2);margin:0 0 28px;transform:translateY(14px)}.cn-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.cn-input-wrap{display:flex;align-items:center;gap:10px;padding:0 14px;border:1.5px solid var(--c-line-2);border-radius:13px;background:var(--c-surface);transform:translateY(19px);transition:border-color var(--dur-fast) var(--ease-out),box-shadow var(--dur-fast) var(--ease-out)}.cn-input-wrap:focus-within{border-color:var(--c-accent);box-shadow:0 0 0 3px var(--c-accent-100)}.cn-input-wrap>svg{color:var(--c-ink-3);flex-shrink:0}.cn-input-wrap:focus-within>svg{color:var(--c-accent)}.cn-input-bare{flex:1;min-width:0;border:none;outline:none;background:none;font-family:var(--font-body);font-size:15.5px;color:var(--c-ink);padding:15px 0;line-height:1.4}.cn-input-bare::-moz-placeholder{color:var(--c-ink-3)}.cn-input-bare::placeholder{color:var(--c-ink-3)}.cn-input-bare:-webkit-autofill,.cn-input-bare:-webkit-autofill:focus,.cn-input-bare:-webkit-autofill:hover{-webkit-box-shadow:0 0 0 1000px var(--c-surface) inset;-webkit-text-fill-color:var(--c-ink);-webkit-transition:background-color 5000s ease-in-out 0s;transition:background-color 5000s ease-in-out 0s}.cn-field-err{color:var(--c-ink-3);font-size:12.5px;margin-top:7px;transform:translateY(19px)}.cn-magic-btn{width:100%;margin-top:20px;padding:14px;font-size:15.5px;transform:translateY(13px)}.cn-magic-btn:active{transform:translateY(13px) scale(.985)!important}.cn-sent{text-align:center;flex-direction:column;padding-top:8px}.cn-sent,.cn-sent-title{display:flex;align-items:center}.cn-sent-title{justify-content:center;gap:10px;font-family:var(--font-display);color:var(--tma-navy);font-weight:600;font-size:20px;line-height:1.1;letter-spacing:-.02em;margin:0 0 8px}.cn-sent-badge{flex-shrink:0;width:30px;height:30px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;background:var(--c-accent-100);color:var(--c-accent-700)}.cn-sent-email{color:var(--c-accent-700);font-weight:700}.cn-sent-hint{font-size:13.5px;line-height:1.55;color:var(--c-ink-3);margin:12px 0 0}.cn-sent-actions{display:flex;align-items:center;justify-content:center;gap:11px;margin-top:20px}.cn-textlink{display:inline-flex;align-items:center;gap:6px;background:none;border:none;cursor:pointer;padding:0;font-family:var(--font-display);font-size:13.5px;font-weight:600;color:var(--c-accent);transition:color var(--dur-fast) var(--ease-out)}.cn-textlink:hover{color:var(--c-accent-700);text-decoration:underline}.cn-dot{color:var(--c-line-2)}@media (max-width:639px){.cn-login{padding:22px 18px;align-items:flex-start}.cn-login-card{max-width:none;padding:28px 22px 20px}.cn-product-name{font-size:22px}}.c-divider{height:1px;background:var(--c-line)}.c-editlink{background:none;border:none;cursor:pointer;padding:1px 4px;margin-left:auto;display:inline-flex;align-items:center;gap:3px;font-family:var(--font-display);font-size:11.5px;font-weight:600;color:var(--c-accent)}.c-editlink:hover{color:var(--c-accent-700)}.c-back{display:inline-flex;align-items:center;gap:5px;cursor:pointer;color:var(--c-accent);font-family:var(--font-display);font-weight:600;font-size:14.5px;background:none;border:none;padding:0;text-decoration:none}.c-back:hover{color:var(--c-accent-700)}.muted{color:var(--c-ink-3)}.stack-2>*+*{margin-top:8px}.stack-3>*+*{margin-top:12px}@media (prefers-reduced-motion:no-preference){.c-fade{animation:cfade var(--dur-base) var(--ease-out) both}.c-rise{animation:crise var(--dur-base) var(--ease-out) both}}@keyframes cfade{0%{opacity:0}to{opacity:1}}@keyframes crise{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}