/* Warm Notebook v1: shared, live components from the approved design kit. */
@font-face{font-family:"Manrope";src:url("../fonts/Manrope-Variable.946beb949095.ttf") format("truetype");font-weight:200 800;font-style:normal;font-display:swap}
@font-face{font-family:"Golos Text";src:url("../fonts/GolosText-Variable.caa4693f600e.ttf") format("truetype");font-weight:400 900;font-style:normal;font-display:swap}
:root{
  --bg:#FBF8F2;--surface:#FFFCF7;--text:#202431;--muted:#666D75;
  --accent:#AF5138;--primary:#AF5138;--accent-dark:#97432D;--accent-soft:#F3EDE4;
  --terracotta-soft:#F8E9E5;--line:#E4DDD3;--border-color:#E4DDD3;
  --border:var(--line);--text-muted:var(--muted);--surface-muted:var(--accent-soft);
  --danger:#A43C34;--success:#42634A;--success-soft:#EAF0E5;
  --blue:#3E657A;--blue-soft:#E9F1F6;--pending:#846128;--pending-soft:#FAF0DB;
  --radius:20px;--shadow:0 4px 18px rgb(63 43 24 / 3%);
  font-family:"Golos Text",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
}
html{background:var(--bg)}
.warm-app{font-family:"Golos Text",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--bg);color:var(--text);line-height:1.5}
.warm-app :is(h1,h2,h3,h4,legend){font-family:"Manrope",sans-serif;font-weight:800;letter-spacing:-.025em}
.warm-app h2{line-height:1.35}.warm-app h3{line-height:1.4}
.warm-app :is(button,input,select,textarea){font-family:inherit}
.warm-app :is(p,dl,ul,ol){overflow-wrap:anywhere}
.warm-app .main-area{padding:28px 20px calc(116px + env(safe-area-inset-bottom))}
.warm-app .main-area-public{padding-top:28px}
.warm-app .main-area.main-area-public{padding:28px 20px}
.warm-app .page-content{position:relative;min-width:0}
.warm-app .page-content:before{display:none}
.warm-app .topbar{align-items:flex-start;gap:14px;margin-bottom:28px}
.warm-app .topbar h1{margin:0;font-size:26px;line-height:1.3;letter-spacing:-.03em;font-weight:800;overflow-wrap:anywhere}
.warm-app .topbar-leading>.eyebrow{display:none}
.warm-app .topbar-leading:has(.back-link){display:grid;grid-template-columns:38px minmax(0,1fr);column-gap:8px;align-items:center}
.warm-app .topbar-leading:has(.back-link)>h1{grid-column:2;grid-row:1}
.warm-app .topbar-leading:has(.back-link)>.back-link{grid-column:1;grid-row:1}
.warm-app .topbar-actions{flex-shrink:0;max-width:48%}
.warm-app .topbar-actions .button{white-space:normal;text-align:center}
.warm-app .topbar-date{margin:7px 0 0;color:var(--muted);font-size:14px;font-weight:400}
.warm-app .topbar-leading:has(.home-heading){width:100%;position:relative;padding-right:0;min-height:73px}
.warm-app .home-heading{max-width:calc(100% - 4px)}
.warm-app .home-heading-art{position:absolute;bottom:-10px;right:0;width:76px;height:52px;object-fit:contain;pointer-events:none}
.warm-app .topbar-leading:has(.home-heading-art) .topbar-date{padding-right:80px}
.warm-app .brand{font-family:"Manrope",sans-serif;font-weight:800;gap:12px}
.warm-app .brand-mark{width:44px;height:44px;flex:0 0 44px;display:block;background:none;border-radius:13px;object-fit:contain}
.warm-app .sidebar{background:#F4EEE4;border-color:var(--line)}
.warm-app .sidebar-caption{display:none}
.warm-app .nav-link{border-radius:14px;color:var(--muted);min-height:48px}
.warm-app .nav-link:hover{background:#FFFCF7;color:var(--text)}
.warm-app .nav-link.is-active{background:var(--terracotta-soft);color:var(--accent);font-weight:600}
.warm-app .user-dot{border-radius:50%;background:var(--success-soft);color:var(--success)}
.warm-app .sidebar-user-copy strong{color:var(--text);font-weight:600}
.warm-app .bottom-nav{padding:9px 4px calc(9px + env(safe-area-inset-bottom));background:#FFFCF7;border-color:var(--line);box-shadow:0 -4px 20px rgb(63 43 24 / 2%);backdrop-filter:none}
.warm-app .bottom-nav-link{border-radius:0;gap:5px;font-size:10px;min-height:60px;font-weight:500}
.warm-app .bottom-nav-link>.icon{width:38px;height:38px;flex-basis:38px;padding:8px;border-radius:50%;color:var(--muted);stroke-width:1.7}
.warm-app .bottom-nav-link.is-active{color:var(--accent)}
.warm-app .bottom-nav-link.is-active>.icon{background:var(--accent);color:#fff}
.warm-app .icon{stroke-width:1.7}
.warm-app .button{min-height:48px;padding:11px 20px;border-radius:24px;font-size:15px;line-height:1.35;font-weight:600;letter-spacing:0;box-shadow:none;transition:background .16s,color .16s,border-color .16s,transform .16s}
.warm-app .button-primary{background:var(--accent);color:#fff;border-color:transparent}
.warm-app .button-primary:hover{background:var(--accent-dark)}
.warm-app .button-primary:active{background:var(--accent-dark);transform:translateY(1px)}
.warm-app .button-secondary{background:var(--accent-soft);color:var(--accent);border-color:transparent}
.warm-app .button-secondary:hover{background:#EDE2D6;border-color:#D9CABA}
.warm-app .button-small{min-height:44px;padding:9px 14px;font-size:14px}
.warm-app .button-danger,.warm-app .button-danger-quiet{background:var(--terracotta-soft);border-color:#E8CDC3;color:var(--danger)}
.warm-app .button-danger:hover,.warm-app .button-danger-quiet:hover{background:#F0D8CD}
.warm-app .button:disabled,.warm-app .button[aria-disabled="true"]{background:#E8E1D7;color:#79736B;border-color:transparent;box-shadow:none;cursor:default;transform:none;opacity:1}
.warm-app .back-link{width:38px;height:44px;flex-basis:38px;border:0;border-radius:12px;background:transparent;font-size:24px;color:var(--text);margin:0}
.warm-app .back-link:hover{background:var(--accent-soft)}
.warm-app :where(a,button,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid #AF51387A;outline-offset:3px}
.warm-app .text-link{color:var(--accent);font-size:14px;font-weight:500}
.warm-app .text-link:hover{text-decoration:underline;text-underline-offset:4px}
.warm-app .eyebrow{font-weight:600;color:var(--muted);letter-spacing:.055em}
.warm-app :is(.surface-card,.form-card,.profile-card,.welcome-panel,.section-intro){border-color:var(--line);border-radius:20px;background:var(--surface);box-shadow:var(--shadow)}
.warm-app .surface-card{padding:20px}
.warm-app .form-card{max-width:760px;padding:22px}
.warm-app .welcome-panel{background:var(--surface);padding:24px;border-radius:20px}
.warm-app .welcome-copy h2{font-size:25px;font-weight:800}
.warm-app .section-block{margin-top:30px}
.warm-app .section-heading{margin-bottom:16px}
.warm-app :is(.section-heading,.section-intro) h2{font-size:20px;line-height:1.35}
.warm-app .overview-grid,.warm-app .link-list{gap:12px}
.warm-app :is(.overview-card,.student-row){border:1px solid var(--line);border-radius:16px;background:#FFFFFF96;box-shadow:none;min-height:76px;padding:14px;transition:background .15s,border-color .15s}
.warm-app :is(.overview-card,.student-row):hover{background:var(--surface);border-color:#CBB8A5;transform:none}
.warm-app .overview-icon{border-radius:50%;width:42px;height:42px;flex-basis:42px;background:var(--accent-soft);color:var(--accent)}
.warm-app .overview-copy strong,.warm-app .student-row-copy strong{font-weight:600;font-size:15px}
.warm-app .overview-arrow{color:var(--muted)}
.warm-app :is(.profile-avatar,.student-avatar){border-radius:50%;background:var(--success-soft);color:var(--success);font-weight:600}
.warm-app .student-avatar{width:44px;height:44px;flex-basis:44px;font-size:20px}
.warm-app .student-row{background:transparent;border:0;border-bottom:1px solid var(--line);border-radius:0;padding:15px 0;box-shadow:none}
.warm-app .student-row:hover{background:#F3EDE470;border-color:var(--line)}
.warm-app .student-list{gap:0 24px}
.warm-app .profile-card{gap:18px}
.warm-app .profile-details{margin-top:18px}
.warm-app .profile-card h2{font-size:24px;line-height:1.3}
.warm-app .profile-card p{font-size:13px}
.warm-app .account-identity{display:flex;flex-direction:column;align-items:center;padding:26px 20px 18px;border:0;background:transparent;box-shadow:none;text-align:center}
.warm-app .account-identity .profile-avatar{width:64px;height:64px;flex-basis:64px;font-size:27px;margin-bottom:0}
.warm-app .account-identity .eyebrow{display:none}
.warm-app .account-identity h2{margin:5px 0 8px}
.warm-app .account-identity .muted{margin:0}
.warm-app .profile-links{max-width:760px;margin:18px auto 0}
.warm-app .logout-mobile{max-width:760px;margin:18px auto 0}
.warm-app .logout-mobile .button{background:transparent;color:var(--danger);border-color:var(--line)}
.warm-app .form-stack{gap:20px}
.warm-app .field{gap:8px;min-width:0}
.warm-app .field label{font-size:14px;font-weight:500;color:var(--muted)}
.warm-app :is(.field input,.field select,.field textarea,.search-form input,.learning-filter input,.learning-filter select){border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--text);min-width:0;max-width:100%;min-height:48px;font-size:16px;padding:11px 14px;line-height:1.4;box-sizing:border-box}
.warm-app :is(.field input,.field select,.field textarea,.search-form input):focus{border-color:var(--accent);outline:3px solid #AF513826;outline-offset:0}
.warm-app :is(input,textarea)::placeholder{color:#777A80;opacity:1}
.warm-app :is(input,textarea,select):disabled{background:var(--accent-soft);color:var(--muted);opacity:1}
.warm-app .field input[readonly]{background:var(--accent-soft);color:var(--muted)}
.warm-app .field :is(input[type="date"],input[type="datetime-local"],input[type="time"]){width:100%;max-width:100%;min-width:0;display:block;-webkit-appearance:none;appearance:none;overflow:hidden;min-inline-size:0}
.warm-app .field :is(input[type="date"],input[type="datetime-local"],input[type="time"])::-webkit-date-and-time-value{min-height:1.4em;text-align:left}
.warm-app input[type="checkbox"],.warm-app input[type="radio"]{accent-color:var(--accent);width:20px;height:20px;min-height:20px;min-width:20px;vertical-align:middle}
.warm-app .field input[type="checkbox"],.warm-app .field input[type="radio"]{width:22px;height:22px;min-height:22px;padding:0}
.warm-app input[type="file"]{min-width:0;max-width:100%;font-size:13px}
.warm-app input[type="file"]::file-selector-button{margin-right:12px;min-height:40px;padding:8px 14px;border:0;border-radius:20px;background:#fff;color:var(--blue);font:500 13px "Golos Text",sans-serif;cursor:pointer}
.warm-app .field-invalid :is(input,select,textarea){border-color:var(--danger);background:#FFFDFC}
.warm-app :is(.field-errors,.form-errors){color:var(--danger);font-size:13px;line-height:1.5}
.warm-app .field-help{font-size:13px;color:var(--muted)}
.warm-app .form-group{padding:18px;border-color:var(--line);border-radius:16px;background:#FFFFFF70;gap:18px}
.warm-app .form-group legend{font-size:18px;font-weight:700;padding:0 6px}
.warm-app .optional-fields{border-color:var(--line)}
.warm-app .optional-fields summary{font-weight:500;min-height:48px}
.warm-app .form-actions{gap:12px;margin-top:8px}
.warm-app .password-toggle{color:var(--accent);font-weight:500}
.warm-app .search-form input{padding-left:44px}
.warm-app .status-tabs{background:var(--accent-soft);border-radius:14px;padding:4px;gap:4px}
.warm-app .status-tab{border-radius:11px;color:var(--muted);min-height:44px;font-weight:500}
.warm-app .status-tab.is-active{background:var(--surface);color:var(--accent);box-shadow:none}
.warm-app .detail-list{gap:16px}
.warm-app .detail-list dd{font-weight:500}
.warm-app .danger-zone{border-color:#E8CDC3;background:#F8E9E56E;border-radius:18px}
.warm-app .danger-icon{border-radius:50%;background:var(--terracotta-soft);color:var(--danger)}
.warm-app .messages{margin-bottom:20px}
.warm-app .message{border-radius:14px;background:var(--surface);border-color:var(--line);font-size:14px}
.warm-app .message-success{background:var(--success-soft);border-color:#CEDCC8;color:var(--success)}
.warm-app .message-error,.warm-app .rate-limit-message{background:var(--terracotta-soft);border-color:#E8CDC3;color:var(--danger);border-radius:14px}
.warm-app .notice-warning{background:var(--pending-soft);color:var(--pending);border-color:#E6D2AC}
.warm-app .empty-state{min-height:210px;border-radius:20px;padding:28px 20px;background:transparent}
.warm-app .empty-icon,.warm-app .section-icon,.warm-app .install-illustration{border-radius:50%;background:var(--blue-soft);color:var(--blue)}
.warm-app .empty-state h2{font-size:20px}
.warm-app .empty-state p{font-size:14px}
.warm-app .compact-empty,.warm-app .learning-empty{background:#FFFCF780;border:1px dashed #D6C6B4;border-radius:20px}
.warm-app .install-steps{max-width:760px;padding:22px;margin-top:24px}
.warm-app .install-steps h3:not(:first-child){margin-top:28px}
.warm-app .install-art{width:90px;height:105px;object-fit:contain;flex-shrink:0}
.warm-app .login-wrap{min-height:calc(100svh - 56px);max-width:420px;margin:0 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:12px 0 24px}
.warm-app .login-brand{display:none}
.warm-app .login-art{width:112px;height:124px;margin-bottom:24px;object-fit:contain}
.warm-app .login-card{width:100%;padding:24px 4px;border:0;border-radius:0;background:transparent;box-shadow:none}
.warm-app .login-card .eyebrow{display:none}
.warm-app .login-card h1{margin:0 0 10px;font-size:28px;text-align:center;font-weight:800}
.warm-app .login-card>p{margin:0 0 30px;text-align:center;font-size:14px;line-height:1.6}
.warm-app .login-card .form-stack{margin-top:22px;gap:22px}
.warm-app .login-card .button-primary{margin-top:8px}
.warm-app .login-footnote{font-size:12px;color:var(--muted);margin:4px 0 0}
.warm-app .teacher-home{display:grid;gap:28px}
.warm-app .teacher-home .section-block{margin-top:0}
.warm-app .teacher-home .section-heading p{display:none}
.warm-app .teacher-timeline{display:grid;gap:0;position:relative}
.warm-app .teacher-timeline:before{content:"";position:absolute;top:32px;bottom:34px;left:21px;border-left:1px dashed #BEB4A5;pointer-events:none}
.warm-app .teacher-timeline .overview-card{position:relative;background:transparent;border:0;border-radius:0;min-height:90px;padding:16px 0;gap:16px}
.warm-app .teacher-timeline .overview-icon{z-index:1;width:42px;height:42px;flex-basis:42px;border:8px solid var(--bg);background:var(--accent);color:#fff;box-sizing:content-box;margin-left:-8px}
.warm-app .teacher-timeline .overview-icon .icon{width:20px;height:20px}
.warm-app .teacher-timeline .overview-card:nth-child(even) .overview-icon{background:var(--blue)}
.warm-app .teacher-timeline .overview-copy{border-bottom:1px solid var(--line);align-self:stretch;justify-content:center;padding-bottom:14px}
.warm-app .teacher-timeline .overview-copy strong{font-size:16px;font-weight:600}
.warm-app .teacher-workspace .overview-card{background:#FFFFFF70}
.warm-app .teacher-workspace .overview-card:nth-child(1) .overview-icon{background:var(--success-soft);color:var(--success)}
.warm-app .teacher-workspace .overview-card:nth-child(3) .overview-icon{background:var(--blue-soft);color:var(--blue)}
.warm-app .teacher-workspace .overview-card:nth-child(4) .overview-icon{background:var(--pending-soft);color:var(--pending)}
.warm-app .student-detail-grid{display:grid;gap:18px;margin-top:20px}
.warm-app .student-detail-grid>.surface-card{margin:0}
.warm-app .student-detail-grid .button-row{margin-top:18px}
.warm-app .student-detail-actions{display:grid;gap:10px;margin-top:18px}
.warm-app .student-detail-actions .button{width:100%}
@media(min-width:700px){
  .warm-app .main-area{padding:34px 30px calc(112px + env(safe-area-inset-bottom))}
  .warm-app .topbar h1{font-size:30px}.warm-app .topbar{margin-bottom:30px}
  .warm-app .form-card{padding:26px}.warm-app .home-heading-art{width:100px;height:68px;bottom:-12px}
  .warm-app .profile-links{grid-template-columns:1fr}.warm-app .student-detail-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .warm-app .teacher-timeline{max-width:860px}
}
@media(min-width:1000px){
  .warm-app .sidebar{width:244px;padding:28px 17px 20px}
  .warm-app .sidebar .brand{padding:0 8px 36px}
  .warm-app .side-nav{gap:6px}.warm-app .bottom-nav{display:none}
  .warm-app .main-area-authenticated{width:calc(100% - 244px);margin-left:244px;padding:40px clamp(28px,4vw,70px) 60px}
  .warm-app .main-area-public{width:100%;margin:0 auto;padding:28px}
  .warm-app .topbar h1{font-size:32px}.warm-app .home-heading-art{width:126px;height:85px;bottom:-10px}
  .warm-app .topbar-leading:has(.home-heading-art) .topbar-date{padding-right:135px}
  .warm-app .login-wrap{min-height:calc(100svh - 56px)}
}
@media(max-width:370px){
  .warm-app .main-area{padding:24px 16px calc(110px + env(safe-area-inset-bottom))}
  .warm-app .page-content:before{left:-9px}.warm-app .topbar{gap:8px}.warm-app .topbar h1{font-size:23px}
  .warm-app .topbar-actions .button{padding:9px 12px;font-size:13px}
  .warm-app .form-card{padding:18px 16px}.warm-app .button{padding:11px 16px;font-size:14px}
  .warm-app .bottom-nav-link{font-size:9px}.warm-app .bottom-nav-link>.icon{width:36px;height:36px;padding:7px}
  .warm-app .profile-card{padding:18px;gap:12px}.warm-app .profile-card h2{font-size:21px}
  .warm-app .form-group{padding:14px}.warm-app .home-heading-art{width:62px;height:44px;bottom:-8px}
  .warm-app .login-card h1{font-size:25px}.warm-app .topbar-leading:has(.back-link){grid-template-columns:28px minmax(0,1fr);gap:6px}
  .warm-app .back-link{width:28px;flex-basis:28px}
}
@media(prefers-reduced-motion:reduce){.warm-app *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
