@charset "UTF-8";@import"https://fonts.googleapis.com/css2?family=Playfair+Display:wght@600&family=DM+Sans:wght@300;400;500&display=swap";.spinner{display:flex;flex-direction:column;align-items:center;gap:14px}.spinner-fullpage{display:flex;align-items:center;justify-content:center;height:calc(100vh - var(--nav-h, 60px));width:100%}.spinner-ring{border-radius:50%;border-style:solid;border-color:var(--border) var(--border) var(--border) var(--rust);animation:spin .75s linear infinite}.spinner--sm .spinner-ring{width:20px;height:20px;border-width:2px}.spinner--md .spinner-ring{width:36px;height:36px;border-width:3px}.spinner--lg .spinner-ring{width:56px;height:56px;border-width:4px}@keyframes spin{to{transform:rotate(360deg)}}.spinner-label{font-size:12px;font-weight:400;letter-spacing:.08em;color:var(--muted);text-align:center}@keyframes ea-panel-in{0%{opacity:0;transform:translateY(20px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes ea-panel-out{0%{opacity:1;transform:translateY(0) scale(1)}to{opacity:0;transform:translateY(12px) scale(.98)}}@keyframes ea-msg-in-left{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}@keyframes ea-msg-in-right{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:translate(0)}}@keyframes ea-fade-up{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes ea-dot{0%,80%,to{transform:translateY(0);opacity:.35}40%{transform:translateY(-4px);opacity:1}}@keyframes ea-btn-pop{0%{opacity:0;transform:scale(.8) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes ea-btn-pulse{0%,to{box-shadow:0 0 #b84c2b00,0 6px 20px #b84c2b59}50%{box-shadow:0 0 0 10px #b84c2b00,0 6px 20px #b84c2b8c}}@keyframes ea-morph-open{0%{width:56px;border-radius:50%}to{width:156px;border-radius:999px}}@keyframes ea-morph-close{0%{width:156px;border-radius:999px}to{width:56px;border-radius:50%}}@keyframes ea-spin-open{0%{transform:rotate(0) scale(1)}50%{transform:rotate(180deg) scale(.8)}to{transform:rotate(360deg) scale(1)}}@keyframes ea-spin-close{0%{transform:rotate(0) scale(1)}50%{transform:rotate(-180deg) scale(.8)}to{transform:rotate(-360deg) scale(1)}}.epoch-archivist{position:fixed;right:24px;bottom:24px;z-index:260;display:flex;flex-direction:column;align-items:flex-end;gap:14px}.epoch-archivist-panel{width:min(400px,calc(100vw - 32px));max-height:min(74vh,640px);background:#fdfbf8;border-radius:18px;box-shadow:0 0 0 1px #18140f14,0 8px 24px #18140f1f,0 24px 56px #18140f1a;display:flex;flex-direction:column;overflow:hidden;transform-origin:bottom right}.epoch-archivist-panel--visible{animation:ea-panel-in .3s cubic-bezier(.22,1,.36,1) both}.epoch-archivist-panel--hidden{animation:ea-panel-out .22s cubic-bezier(.4,0,1,1) both;pointer-events:none}.epoch-archivist-header{display:flex;align-items:center;justify-content:space-between;padding:16px 16px 14px;background:#b84c2b;flex-shrink:0}.epoch-archivist-header-left{display:flex;align-items:center;gap:11px}.epoch-archivist-avatar{width:36px;height:36px;border-radius:50%;background:#fff3;color:#fff;font-family:var(--font-display, serif);font-size:16px;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;border:1.5px solid rgba(255,255,255,.3)}.epoch-archivist-eyebrow{font-size:9px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#ffffffa6;margin-bottom:2px}.epoch-archivist-title{font-family:var(--font-display, serif);font-size:15px;line-height:1;color:#fff;margin:0}.epoch-archivist-header-actions{display:flex;align-items:center;gap:8px}.epoch-archivist-clear{height:28px;padding:0 12px;border:1.5px solid rgba(255,255,255,.3);border-radius:999px;background:transparent;color:#ffffffbf;font-family:var(--font-body, sans-serif);font-size:11px;font-weight:500;cursor:pointer;transition:border-color .15s,color .15s,background .15s;white-space:nowrap}.epoch-archivist-clear:hover{border-color:#fff9;color:#fff;background:#ffffff1f}.epoch-archivist-close{width:30px;height:30px;border:none;border-radius:50%;background:#ffffff26;color:#fffc;font-size:12px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .15s,color .15s,transform .15s;flex-shrink:0}.epoch-archivist-close:hover{background:#ffffff40;color:#fff;transform:rotate(90deg)}.epoch-archivist-body{flex:1;overflow-y:auto;padding:18px 16px 10px;display:flex;flex-direction:column;gap:12px;background:#f4efe6}.epoch-archivist-body::-webkit-scrollbar{width:3px}.epoch-archivist-body::-webkit-scrollbar-track{background:transparent}.epoch-archivist-body::-webkit-scrollbar-thumb{background:#18140f26;border-radius:99px}.epoch-archivist-bubble{max-width:88%;display:flex;flex-direction:column;gap:4px;font-size:13.5px;line-height:1.6}.epoch-archivist-bubble--assistant{align-self:flex-start}.epoch-archivist-bubble--user{align-self:flex-end}.epoch-archivist-bubble-role{font-size:9.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#18140f61;padding:0 2px}.epoch-archivist-bubble--user .epoch-archivist-bubble-role{text-align:right;color:#b84c2b99}.epoch-archivist-bubble-text{padding:11px 14px;border-radius:16px;white-space:pre-wrap}.epoch-archivist-bubble--assistant .epoch-archivist-bubble-text{background:#fff;color:#18140f;border:1px solid rgba(24,20,15,.09);border-radius:4px 16px 16px;box-shadow:0 1px 4px #18140f0f}.epoch-archivist-bubble--user .epoch-archivist-bubble-text{background:#b84c2b;color:#fff;font-weight:500;border-radius:16px 4px 16px 16px;box-shadow:0 2px 8px #b84c2b40}.epoch-archivist-bubble--assistant.epoch-archivist-bubble--new .epoch-archivist-bubble-text{animation:ea-msg-in-left .2s cubic-bezier(.22,1,.36,1) both}.epoch-archivist-bubble--user.epoch-archivist-bubble--new .epoch-archivist-bubble-text{animation:ea-msg-in-right .2s cubic-bezier(.22,1,.36,1) both}.epoch-archivist-bubble-text--markdown{white-space:normal}.epoch-archivist-bubble-text--markdown p{margin:0}.epoch-archivist-bubble-text--markdown p+p,.epoch-archivist-bubble-text--markdown p+ul,.epoch-archivist-bubble-text--markdown ul+p{margin-top:8px}.epoch-archivist-bubble-text--markdown h1,.epoch-archivist-bubble-text--markdown h2,.epoch-archivist-bubble-text--markdown h3{font-family:var(--font-display, serif);color:#18140f;margin:0 0 4px;line-height:1.2}.epoch-archivist-bubble-text--markdown h1{font-size:15px}.epoch-archivist-bubble-text--markdown h2{font-size:14px}.epoch-archivist-bubble-text--markdown h3{font-size:13.5px}.epoch-archivist-bubble-text--markdown ul,.epoch-archivist-bubble-text--markdown ol{margin:6px 0 0 18px;padding:0}.epoch-archivist-bubble-text--markdown li+li{margin-top:4px}.epoch-archivist-bubble-text--markdown code{font-family:Consolas,monospace;font-size:12px;background:#18140f12;padding:1px 5px;border-radius:4px}.epoch-archivist-bubble-text--markdown strong{color:#18140f}.epoch-archivist-bubble--action{max-width:96%}.epoch-archivist-action-card{background:#fff;border:1px solid rgba(24,20,15,.1);border-radius:4px 16px 16px;box-shadow:0 1px 4px #18140f0f;padding:14px 15px;display:flex;flex-direction:column;gap:14px}.epoch-archivist-action-message{font-size:13.5px;line-height:1.6;color:#18140f;white-space:pre-wrap}.epoch-archivist-action-buttons{display:flex;gap:8px}.epoch-archivist-action-btn{flex:1;border:none;border-radius:10px;font-family:var(--font-body, sans-serif);font-size:12.5px;font-weight:600;padding:9px 12px;cursor:pointer;transition:opacity .15s,transform .12s,filter .15s}.epoch-archivist-action-btn--confirm{background:#b84c2b;color:#fff}.epoch-archivist-action-btn--confirm:hover:not(:disabled){background:#8f3a1f;transform:translateY(-1px)}.epoch-archivist-action-btn--cancel{background:#f0ebe2;color:#18140f99;border:1px solid rgba(24,20,15,.12)}.epoch-archivist-action-btn--cancel:hover:not(:disabled){background:#e8e0d4;color:#18140fd9}.epoch-archivist-action-btn:disabled{opacity:.45;cursor:not-allowed}.epoch-archivist-action-result{font-size:13.5px;line-height:1.55}.epoch-archivist-action-result--success{color:#2a7a3b;font-weight:500}.epoch-archivist-action-result--cancelled{color:#18140f61;font-style:italic}.epoch-archivist-action-result--error{color:#b83215}.epoch-archivist-typing{display:flex;align-items:center;gap:5px;padding:4px 2px}.epoch-archivist-typing span{width:5px;height:5px;border-radius:50%;background:#18140f4d;animation:ea-dot 1.3s ease-in-out infinite}.epoch-archivist-typing span:nth-child(2){animation-delay:.16s}.epoch-archivist-typing span:nth-child(3){animation-delay:.32s}.epoch-archivist-prompts{padding:6px 16px 4px;display:flex;flex-direction:column;gap:6px;background:#f4efe6}.epoch-archivist-prompt{background:#fff;border:1px solid rgba(24,20,15,.1);color:#18140fa6;border-radius:10px;padding:9px 13px;font-family:var(--font-body, sans-serif);font-size:12.5px;text-align:left;cursor:pointer;transition:background .15s,border-color .15s,color .15s,transform .15s;opacity:0;animation:ea-fade-up .22s cubic-bezier(.22,1,.36,1) forwards;box-shadow:0 1px 3px #18140f0d}.epoch-archivist-prompt:nth-child(1){animation-delay:.06s}.epoch-archivist-prompt:nth-child(2){animation-delay:.13s}.epoch-archivist-prompt:nth-child(3){animation-delay:.2s}.epoch-archivist-prompt:hover:not(:disabled){background:#fff8f5;border-color:#b84c2b4d;color:#b84c2b;transform:translate(4px)}.epoch-archivist-error{margin:0 16px 6px;background:#fff0ed;border:1px solid rgba(184,76,43,.25);color:#b83215;font-size:12px;line-height:1.5;padding:9px 12px;border-radius:10px;animation:ea-fade-up .18s ease both;flex-shrink:0}.epoch-archivist-input-row{padding:10px 14px 14px;display:flex;align-items:flex-end;gap:9px;border-top:1px solid rgba(24,20,15,.08);background:#fdfbf8;flex-shrink:0}.epoch-archivist-input{flex:1;min-height:52px;max-height:120px;resize:none;background:#fff;border:1.5px solid rgba(24,20,15,.14);border-radius:12px;padding:11px 13px;font-family:var(--font-body, sans-serif);font-size:13px;line-height:1.55;color:#18140f;outline:none;transition:border-color .15s,box-shadow .15s}.epoch-archivist-input::placeholder{color:#18140f52}.epoch-archivist-input:focus{border-color:#b84c2b;box-shadow:0 0 0 3px #b84c2b1a}.epoch-archivist-send{width:42px;height:42px;flex-shrink:0;border:none;border-radius:50%;background:#b84c2b;color:#fff;font-size:17px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:transform .12s,filter .15s,opacity .15s;box-shadow:0 2px 8px #b84c2b4d}.epoch-archivist-send:hover:not(:disabled){background:#8f3a1f;transform:translateY(-2px)}.epoch-archivist-send:active:not(:disabled){transform:scale(.94)}.epoch-archivist-send:disabled{opacity:.35;cursor:not-allowed}.epoch-archivist-input:disabled{opacity:.5;cursor:not-allowed}.epoch-archivist-prompt:disabled{opacity:.4;cursor:not-allowed}.epoch-archivist-trigger{width:56px;height:56px;border:none;border-radius:50%;background:#b84c2b;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;overflow:hidden;will-change:width,border-radius;box-shadow:0 4px 14px #b84c2b66,0 2px 6px #18140f26;transition:box-shadow .2s,transform .15s}.epoch-archivist-trigger:hover{background:#8f3a1f;box-shadow:0 6px 22px #b84c2b8c,0 2px 8px #18140f2e;transform:translateY(-2px)}.epoch-archivist-trigger:active{transform:scale(.95)}.epoch-archivist-trigger--circle{width:56px;border-radius:50%}.epoch-archivist-trigger--pill{width:156px;border-radius:999px}.epoch-archivist-trigger--initial{animation:ea-btn-pop .4s cubic-bezier(.22,1,.36,1) .2s both,ea-btn-pulse 2.2s ease-in-out 1s 3}.epoch-archivist-trigger--opening{animation:ea-morph-open .44s cubic-bezier(.22,1,.36,1) forwards}.epoch-archivist-trigger--opening .epoch-archivist-trigger-inner{animation:ea-spin-open .44s cubic-bezier(.22,1,.36,1) forwards}.epoch-archivist-trigger--closing{animation:ea-morph-close .44s cubic-bezier(.22,1,.36,1) forwards}.epoch-archivist-trigger--closing .epoch-archivist-trigger-inner{animation:ea-spin-close .44s cubic-bezier(.22,1,.36,1) forwards}.epoch-archivist-trigger--opening:active .epoch-archivist-trigger-inner,.epoch-archivist-trigger--closing:active .epoch-archivist-trigger-inner{transform:none}.epoch-archivist-trigger-inner{position:relative;width:100%;height:100%;display:flex;align-items:center;justify-content:center}.epoch-archivist-trigger-mark{position:absolute;width:56px;height:56px;display:flex;align-items:center;justify-content:center;font-family:var(--font-display, serif);font-size:24px;font-weight:700;color:#fff;pointer-events:none;transition:opacity .16s}.epoch-archivist-trigger-copy{position:absolute;width:100%;height:100%;display:flex;align-items:center;justify-content:center;font-family:var(--font-display, serif);font-size:17px;font-weight:700;letter-spacing:.04em;color:#fff;white-space:nowrap;pointer-events:none;transition:opacity .16s}@media(max-width:600px){.epoch-archivist{right:16px;bottom:16px}.epoch-archivist-panel{width:calc(100vw - 32px);max-height:80vh}.epoch-archivist-trigger--pill{width:156px}}.auth-page{min-height:100vh;display:flex;background:var(--parchment)}.auth-panel{width:480px;flex-shrink:0;padding:60px 56px;background:#fff;border-right:1px solid var(--border);display:flex;flex-direction:column;justify-content:center}.auth-brand{display:flex;align-items:center;gap:10px;margin-bottom:48px}.auth-brand-icon{font-size:24px;color:var(--rust)}.auth-brand-name{font-family:var(--font-display);font-size:22px;color:var(--ink);text-decoration:none}.auth-title{font-family:var(--font-display);font-size:28px;font-weight:600;color:var(--ink);margin-bottom:6px}.auth-subtitle{font-size:14px;color:var(--muted);margin-bottom:28px;line-height:1.5}.auth-error{background:#c0392b14;border:1px solid rgba(192,57,43,.25);color:#a93226;font-size:13px;padding:10px 14px;border-radius:4px;margin-bottom:18px;line-height:1.5}.auth-form{display:flex;flex-direction:column;gap:0}.auth-field{margin-bottom:18px}.auth-field label{display:block;font-size:11px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}.auth-field input{width:100%;padding:11px 13px;font-size:14px;font-family:var(--font-body);color:var(--ink);background:#fff;border:1px solid var(--border);border-radius:4px;outline:none;transition:border-color .15s,box-shadow .15s}.auth-field input:focus{border-color:var(--rust);box-shadow:0 0 0 3px #b84c2b1f}.auth-role-toggle{display:grid;grid-template-columns:1fr 1fr;gap:8px}.auth-role-btn{padding:11px 8px;font-size:13px;font-family:var(--font-body);font-weight:500;background:var(--cream);border:1px solid var(--border);border-radius:4px;cursor:pointer;color:var(--muted);transition:all .15s}.auth-role-btn--active{background:var(--ink);border-color:var(--ink);color:var(--parchment)}.auth-role-btn:not(.auth-role-btn--active):hover{border-color:var(--muted);color:var(--ink)}.auth-submit{width:100%;padding:13px;margin-top:8px;background:var(--rust);color:#fff;font-size:14px;font-weight:500;font-family:var(--font-body);border:none;border-radius:4px;cursor:pointer;transition:background .15s;letter-spacing:.02em}.auth-submit:hover:not(:disabled){background:var(--rust-dark)}.auth-submit:disabled{opacity:.6;cursor:not-allowed}.auth-switch{font-size:13px;color:var(--muted);margin-top:20px;text-align:center}.auth-switch a{color:var(--rust);text-decoration:none;font-weight:500}.auth-switch a:hover{text-decoration:underline}.auth-aside{flex:1;display:flex;align-items:center;justify-content:center;padding:60px;background:radial-gradient(ellipse at 20% 80%,rgba(184,76,43,.08) 0%,transparent 60%),radial-gradient(ellipse at 80% 20%,rgba(201,168,76,.06) 0%,transparent 60%),var(--parchment)}.auth-quote{max-width:400px;font-family:var(--font-display);font-size:22px;font-weight:600;color:var(--ink);line-height:1.5;font-style:italic;opacity:.75;transition:opacity .4s ease,transform .4s ease}.quote-fade-out{opacity:0;transform:translateY(8px)}.quote-fade-in{opacity:.75;transform:translateY(0)}.auth-quote cite{display:block;font-family:var(--font-body);font-size:12px;font-style:normal;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:16px}.auth-sent-state{display:flex;flex-direction:column}.auth-sent-icon{font-size:42px;margin-bottom:16px}.auth-inline-btn{background:none;border:none;padding:0;font-family:var(--font-body);font-size:inherit;color:var(--rust);font-weight:500;cursor:pointer;text-decoration:underline}.auth-inline-btn:hover{color:var(--rust-dark)}.auth-pw-wrap{position:relative;display:flex;align-items:center}.auth-pw-wrap input{padding-right:60px}.auth-pw-toggle{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:none;font-size:12px;font-weight:600;font-family:var(--font-body);color:var(--rust);cursor:pointer;padding:4px 8px;border-radius:4px;transition:background .12s}.auth-pw-toggle:hover{background:#b84c2b14}.auth-pw-strength{display:flex;align-items:center;gap:10px;margin-top:6px}.auth-pw-bar{flex:1;height:4px;border-radius:999px;background:var(--border);position:relative;overflow:hidden}.auth-pw-bar:after{content:"";position:absolute;left:0;top:0;height:100%;border-radius:999px;transition:width .3s,background .3s}.auth-pw-bar--weak:after{width:33%;background:#c0392b}.auth-pw-bar--ok:after{width:66%;background:#d4a017}.auth-pw-bar--strong:after{width:100%;background:#27ae60}.auth-pw-strength-label{font-size:11px;font-weight:600;color:var(--muted);flex-shrink:0}@media(max-width:768px){.auth-panel{width:100%;border-right:none;padding:40px 28px}.auth-aside{display:none}}.modal-overlay{position:fixed;inset:0;z-index:200;background:#0a0908b8;-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);display:flex;align-items:center;justify-content:center;padding:20px;animation:fadeIn .15s ease}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal{background:var(--parchment);border:1px solid var(--border);border-top:3px solid var(--rust);border-radius:6px;display:flex;flex-direction:column;max-height:calc(100vh - 80px);width:100%;box-shadow:0 24px 64px #0006;animation:slideUp .18s ease}@keyframes slideUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}.modal--sm{max-width:400px}.modal--md{max-width:560px}.modal--lg{max-width:760px}.modal--xl{max-width:1000px}.modal--xxl{max-width:1240px}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px 16px;border-bottom:1px solid var(--border);flex-shrink:0}.modal-title{font-family:var(--font-display);font-size:20px;font-weight:600;color:var(--ink);line-height:1.2}.modal-close{width:30px;height:30px;background:none;border:none;font-size:13px;color:var(--muted);cursor:pointer;border-radius:3px;display:flex;align-items:center;justify-content:center;transition:background .15s,color .15s;flex-shrink:0}.modal-close:hover{background:var(--cream);color:var(--ink)}.modal-body{padding:22px 24px;overflow-y:auto;flex:1}.modal-footer{padding:16px 24px;border-top:1px solid var(--border);flex-shrink:0;background:var(--cream);border-radius:0 0 6px 6px}.modal-body label,.modal-label{display:block;font-size:11px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}.modal-body input[type=text],.modal-body input[type=email],.modal-body input[type=password],.modal-body input[type=number],.modal-body input[type=date],.modal-body textarea,.modal-body select,.modal-input,.modal-textarea,.modal-select{width:100%;padding:10px 12px;font-size:14px;font-family:var(--font-body);color:var(--ink);background:#fff;border:1px solid var(--border);border-radius:4px;outline:none;transition:border-color .15s,box-shadow .15s;margin-bottom:16px}.modal-body input:focus,.modal-body textarea:focus,.modal-body select:focus,.modal-input:focus,.modal-textarea:focus,.modal-select:focus{border-color:var(--rust);box-shadow:0 0 0 3px #b84c2b1f}.modal-body textarea,.modal-textarea{resize:vertical;min-height:90px;line-height:1.5}.modal-error{font-size:12px;color:#c0392b;background:#c0392b14;border:1px solid rgba(192,57,43,.2);border-radius:4px;padding:8px 12px;margin-bottom:14px}.modal-actions{display:flex;justify-content:flex-end;gap:8px}.modal-btn{font-family:var(--font-body);font-size:13px;font-weight:500;padding:9px 20px;border-radius:4px;border:none;cursor:pointer;transition:background .15s,color .15s,opacity .15s;letter-spacing:.02em}.modal-btn:disabled{opacity:.5;cursor:not-allowed}.modal-btn--ghost{background:transparent;color:var(--muted);border:1px solid var(--border)}.modal-btn--ghost:hover:not(:disabled){background:var(--cream);color:var(--ink)}.modal-btn--primary{background:var(--ink);color:var(--parchment)}.modal-btn--primary:hover:not(:disabled){background:#2a2622}.modal-btn--danger{background:#c0392b;color:#fff}.modal-btn--danger:hover:not(:disabled){background:#a93226}:root{--ink: #0f0e0d;--parchment: #f5f0e8;--cream: #ede8dc;--rust: #b84c2b;--rust-dark: #8f3a1f;--gold: #c9a84c;--muted: #7a7060;--border: #d6cfc2;--font-display: "Playfair Display", Georgia, serif;--font-body: "DM Sans", sans-serif;--nav-h: 60px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-body);background:var(--parchment);color:var(--ink);min-height:100vh}.navbar{position:fixed;top:0;left:0;right:0;z-index:100;height:var(--nav-h);background:var(--ink);border-bottom:2px solid var(--rust)}.navbar-inner{height:100%;display:flex;align-items:center;justify-content:space-between;padding:0 20px}.navbar-left{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.navbar-back-btn{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:4px;background:#ffffff0f;border:1px solid rgba(255,255,255,.1);color:var(--cream);cursor:pointer;transition:background .15s,border-color .15s;flex-shrink:0}.navbar-back-btn:hover{background:#ffffff1f;border-color:#fff3}.navbar-brand{display:flex;align-items:center;text-decoration:none;flex-shrink:0}.navbar-brand-text{font-family:var(--font-display);font-size:21px;color:var(--parchment);letter-spacing:.02em}.navbar-breadcrumb-sep{color:#fff3;font-size:15px;font-weight:300;flex-shrink:0}.navbar-breadcrumb{font-family:var(--font-body);font-size:13px;font-weight:300;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.navbar-center{flex-shrink:0}.navbar-role-badge{font-family:var(--font-body);font-size:10px;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);border:1px solid rgba(201,168,76,.4);padding:4px 12px;border-radius:2px}.navbar-right{display:flex;align-items:center;gap:12px;flex:1;justify-content:flex-end;position:relative;min-width:0}.navbar-user-name{font-size:12px;font-weight:300;color:#ede8dc99;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:140px}.navbar-avatar{width:34px;height:34px;border-radius:50%;background:var(--rust);color:#fff;font-size:13px;font-weight:500;display:flex;align-items:center;justify-content:center;cursor:pointer;border:2px solid transparent;transition:background .2s,border-color .2s;flex-shrink:0;-webkit-user-select:none;user-select:none}.navbar-avatar:hover{background:var(--rust-dark)}.navbar-avatar--open{border-color:var(--rust);background:var(--rust-dark)}.navbar-dropdown{position:absolute;top:calc(100% + 12px);right:0;width:232px;background:#1a1815;border:1px solid #2e2b28;border-top:2px solid var(--rust);border-radius:6px;overflow:hidden;box-shadow:0 12px 40px #0009;animation:dropIn .15s cubic-bezier(.16,1,.3,1);z-index:101}@keyframes dropIn{0%{opacity:0;transform:translateY(-8px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.navbar-dropdown-header{padding:14px 16px;display:flex;align-items:center;gap:12px}.navbar-dropdown-avatar{width:36px;height:36px;border-radius:50%;background:var(--rust);color:#fff;font-size:14px;font-weight:500;display:flex;align-items:center;justify-content:center;flex-shrink:0}.navbar-dropdown-name{font-size:13px;font-weight:500;color:var(--parchment);line-height:1.3}.navbar-dropdown-role{font-size:10px;font-weight:400;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:2px}.navbar-dropdown-divider{height:1px;background:#2a2825;margin:0}.navbar-dropdown-item{display:flex;align-items:center;gap:10px;width:100%;padding:11px 16px;font-size:13px;font-family:var(--font-body);color:#a09880;text-decoration:none;background:none;border:none;cursor:pointer;text-align:left;transition:background .15s,color .15s}.navbar-dropdown-item:hover{background:#242220;color:var(--parchment)}.navbar-dropdown-logout{color:#b87060}.navbar-dropdown-logout:hover{background:#b84c2b1f;color:#d46040}.navbar-quiz-exit-modal-copy{display:flex;flex-direction:column;gap:12px;font-size:14px;line-height:1.65;color:var(--ink)}.sidebar-shell{display:flex;flex-direction:row;height:calc(100vh - var(--nav-h));position:sticky;top:var(--nav-h);padding:0;flex-shrink:0;align-self:flex-start;z-index:50;background:var(--ink);border-right:1px solid #1e1c1a}.sidebar-shell--locked{opacity:.82}.sidebar-rail{width:64px;background:var(--ink);border-right:1px solid #1e1c1a;display:flex;flex-direction:column;align-items:center;padding:14px 0;flex-shrink:0;overflow:hidden}.rail-mark{width:32px;height:32px;display:flex;align-items:center;justify-content:center;color:#d7c7b2;margin-bottom:6px;-webkit-user-select:none;user-select:none}.rail-divider{width:30px;height:1px;background:#2a2825;margin:4px 0 6px;flex-shrink:0}.rail-classrooms{display:flex;flex-direction:column;align-items:center;gap:8px;flex:1;overflow-y:auto;overflow-x:hidden;width:100%;padding:4px 0;scrollbar-width:none}.rail-classrooms::-webkit-scrollbar{display:none}.rail-item{--sidebar-accent-bg: #252220;--sidebar-accent-solid: var(--rust);--sidebar-accent-border: rgba(255, 255, 255, .08);--sidebar-accent-shadow: rgba(0, 0, 0, 0);width:46px;height:46px;border-radius:8px;display:flex;align-items:center;justify-content:center;cursor:pointer;background:transparent;border:none;transition:background .16s ease,color .16s ease;position:relative;flex-shrink:0;color:#cec4b7}.rail-item:hover{background:#ffffff0f}.rail-item:disabled{cursor:not-allowed;opacity:.6}.rail-item:disabled:hover{background:transparent}.rail-item--active{background:#ffffff0d}.rail-item--active:before{content:"";position:absolute;right:-2px;top:50%;transform:translateY(-50%);width:3px;height:22px;background:var(--sidebar-accent-solid);border-radius:999px 0 0 999px}.rail-avatar{width:32px;height:32px;border-radius:6px;background:var(--sidebar-accent-bg);border:1px solid var(--sidebar-accent-border);display:flex;align-items:center;justify-content:center;font-family:var(--font-body);font-size:10px;font-weight:700;color:#fffaf5;letter-spacing:.06em;box-shadow:0 8px 18px var(--sidebar-accent-shadow);transition:border-color .16s ease,color .16s ease,background .16s ease,box-shadow .16s ease,transform .16s ease;-webkit-user-select:none;user-select:none}.rail-item:hover .rail-avatar{border-color:var(--sidebar-accent-border);box-shadow:0 10px 22px var(--sidebar-accent-shadow);transform:translateY(-1px)}.rail-item--active .rail-avatar{color:#fff;border-color:var(--sidebar-accent-border);box-shadow:0 12px 24px var(--sidebar-accent-shadow)}.rail-empty{width:40px;height:40px;border-radius:8px;display:flex;align-items:center;justify-content:center;color:#645b52;background:#ffffff08;border:1px dashed rgba(255,255,255,.08)}.rail-bottom{width:100%;display:flex;flex-direction:column;align-items:center;flex-shrink:0}.sidebar-panel{width:0;background:#151310;border-right:1px solid #1e1c1a;display:flex;flex-direction:column;position:relative;overflow:hidden;opacity:0;transform:translate(-10px);transform-origin:left center;transition:width .28s cubic-bezier(.16,1,.3,1),opacity .22s ease,transform .28s cubic-bezier(.16,1,.3,1);will-change:transform,opacity;backface-visibility:hidden;pointer-events:none}.sidebar-panel--open{width:252px;opacity:1;transform:translate(0);pointer-events:auto}.sidebar-panel--closed{border-right-color:transparent}.panel-header{display:flex;align-items:center;gap:12px;padding:18px 16px 14px;border-bottom:1px solid #24211d;cursor:pointer;transition:background .18s ease,color .18s ease;flex-shrink:0}.panel-header:hover{background:#1b1815}.panel-header--disabled{cursor:not-allowed;opacity:.68}.panel-header--disabled:hover{background:transparent}.panel-header:hover .panel-header-arrow{color:var(--rust)}.panel-header--disabled:hover .panel-header-arrow{color:#8f8476}.panel-classroom-initials{width:40px;height:40px;border-radius:8px;background:var(--sidebar-accent-bg, var(--rust));border:1px solid var(--sidebar-accent-border, rgba(184, 76, 43, .22));display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:#fff;letter-spacing:.06em;flex-shrink:0;box-shadow:0 10px 24px var(--sidebar-accent-shadow, rgba(184, 76, 43, .18))}.panel-classroom-info{flex:1;min-width:0}.panel-classroom-eyebrow{font-size:9px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:#96897a;margin-bottom:4px}.panel-classroom-name{font-family:var(--font-body);font-size:14px;font-weight:600;color:var(--parchment);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.2}.panel-classroom-code{display:inline-flex;align-items:center;margin-top:6px;padding:3px 7px;border-radius:4px;background:#ffffff0a;color:#9f9282;font-size:10px;font-weight:700;letter-spacing:.14em;font-family:Courier New,monospace}.panel-header-arrow{width:28px;height:28px;padding:6px;border-radius:999px;background:#ffffff0a;color:#8f8476;flex-shrink:0;transition:color .16s ease,background .16s ease}.panel-section-label{font-family:var(--font-body);font-size:10px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);padding:16px 18px 8px;flex-shrink:0}.panel-units{flex:1;overflow-y:auto;overflow-x:hidden;padding:4px 10px 14px;scrollbar-width:thin;scrollbar-color:rgba(156,130,104,.45) transparent;scroll-behavior:smooth}.panel-units::-webkit-scrollbar{width:4px}.panel-units::-webkit-scrollbar-thumb{background:#2a2825;border-radius:999px}.panel-unit{display:flex;align-items:center;gap:0;padding:11px 12px 11px 16px;margin-bottom:6px;border-radius:8px;text-decoration:none;color:#bfb6a7;font-size:13px;font-weight:500;transition:background .18s ease,color .18s ease,transform .18s ease;position:relative;line-height:1.35}.panel-unit:hover{background:#1d1a17;color:var(--parchment);transform:translate(2px)}.panel-unit--disabled{cursor:not-allowed;opacity:.6}.panel-unit--disabled:hover{background:transparent;color:#bfb6a7;transform:none}.panel-unit--active{background:#b84c2b1a;color:var(--parchment);font-weight:600}.panel-unit-bar{position:absolute;left:7px;top:50%;transform:translateY(-50%);width:3px;height:10px;background:#b84c2b38;border-radius:999px;transition:height .18s ease,background .18s ease}.panel-unit--active .panel-unit-bar{height:22px;background:var(--rust)}.panel-unit:hover .panel-unit-bar{height:16px;background:#b84c2b66}.panel-unit-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.panel-unit-hidden{color:#8c8174;display:flex;align-items:center;justify-content:center;width:22px;height:22px;flex-shrink:0;margin-left:8px;border-radius:999px;background:#ffffff0a}.panel-skeleton{display:flex;flex-direction:column;gap:10px;padding:4px 6px 0}.panel-skeleton-row{height:42px;border-radius:8px;background:linear-gradient(90deg,#ffffff0a,#ffffff14,#ffffff0a);background-size:200% 100%;animation:panelShimmer 1.25s ease-in-out infinite}.panel-skeleton-row--short{width:78%}@keyframes panelShimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.panel-empty{margin:8px 6px 0;padding:14px 12px;border-radius:8px;background:#ffffff08;border:1px dashed rgba(255,255,255,.08);font-size:12px;color:#8f8476;font-style:italic;text-align:center}.panel-footer{display:flex;justify-content:stretch;padding:12px 12px 14px;flex-shrink:0;border-top:1px solid #24211d;background:transparent}.panel-collapse-button{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid rgba(255,255,255,.08);background:#ffffff0a;color:var(--cream);border-radius:8px;padding:10px 12px;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:background .18s ease,border-color .18s ease,color .18s ease,transform .18s ease}.panel-collapse-button:hover{background:#b84c2b1a;border-color:#b84c2b33;color:var(--parchment);transform:translateY(-1px)}.panel-collapse-button:disabled{cursor:not-allowed;opacity:.55}.panel-collapse-button:disabled:hover{background:#ffffff0a;border-color:#ffffff14;color:var(--cream);transform:none}@media(max-width:1200px){.sidebar-shell{padding-left:0}.sidebar-panel--open{width:232px}}.ob-backdrop{position:fixed;inset:0;z-index:9000;background:#0a0806b8;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px);pointer-events:all;opacity:1;transition:opacity .15s ease;animation:ob-appear .2s ease}.ob-backdrop.ob-fading{opacity:0}@keyframes ob-appear{0%{opacity:0}to{opacity:1}}.ob-welcome{position:fixed;top:50%;left:50%;transform:translate(-50%,-50%);z-index:9002;width:420px;max-width:calc(100vw - 32px);background:var(--parchment);border:1px solid var(--border);border-radius:12px;padding:36px 36px 28px;box-shadow:0 24px 64px #00000038,0 4px 12px #0000001f;pointer-events:all;font-family:var(--font-body);opacity:1;transition:opacity .15s ease}.ob-welcome.ob-fading{opacity:0}.ob-welcome-eyebrow{font-size:11px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--rust);margin-bottom:10px}.ob-welcome-title{font-family:var(--font-display);font-size:26px;font-weight:600;color:var(--ink);line-height:1.2;margin-bottom:14px}.ob-welcome-body{font-size:14px;color:var(--muted);line-height:1.7;margin-bottom:28px}.ob-welcome-actions{display:flex;align-items:center;justify-content:space-between}.ob-tooltip{background:var(--parchment);border:1px solid var(--border);border-radius:10px;padding:18px 20px 16px;box-shadow:0 8px 32px #0000002e,0 2px 8px #0000001a;pointer-events:all;font-family:var(--font-body);opacity:1;transition:opacity .15s ease}.ob-tooltip.ob-fading{opacity:0}.ob-step-dots{display:flex;gap:5px;margin-bottom:11px}.ob-dot{width:6px;height:6px;border-radius:50%;background:var(--border);transition:background .2s,transform .2s}.ob-dot--active{background:var(--rust);transform:scale(1.2)}.ob-title{font-family:var(--font-display);font-size:15px;font-weight:600;color:var(--ink);margin-bottom:7px;line-height:1.3}.ob-body{font-size:13px;color:var(--muted);line-height:1.65;margin-bottom:15px}.ob-actions{display:flex;align-items:center;justify-content:space-between;gap:8px}.ob-skip{font-size:12px;color:var(--muted);background:none;border:none;cursor:pointer;padding:0;font-family:var(--font-body);transition:color .15s}.ob-skip:hover{color:var(--ink)}.ob-next{font-size:13px;font-weight:500;padding:7px 16px;background:var(--rust);color:#fff;border:none;border-radius:6px;cursor:pointer;font-family:var(--font-body);transition:background .15s}.ob-next:hover{background:var(--rust-dark)}.ob-next--lg{font-size:14px;padding:9px 22px}.ob-waiting{font-size:11px;color:var(--muted);font-style:italic}body.ob-active .modal-overlay{z-index:9500!important}.app-shell{display:flex;padding-top:var(--nav-h);min-height:100vh}.page-main{flex:1;min-width:0;padding:40px 48px;max-width:1100px;margin:0 auto;width:100%}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:32px}.page-eyebrow{font-size:10px;font-weight:500;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}.page-title{font-family:var(--font-display);font-size:32px;font-weight:600;color:var(--ink);line-height:1.15}.page-subtitle{font-size:14px;color:var(--muted);margin-top:6px;line-height:1.5}.btn{display:inline-flex;align-items:center;gap:6px;font-family:var(--font-body);font-size:13px;font-weight:500;padding:9px 20px;border-radius:4px;border:none;cursor:pointer;transition:background .15s,color .15s,opacity .15s,box-shadow .15s;letter-spacing:.02em;text-decoration:none;white-space:nowrap}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--rust);color:#fff}.btn-primary:hover:not(:disabled){background:var(--rust-dark)}.btn-dark{background:var(--ink);color:var(--parchment)}.btn-dark:hover:not(:disabled){background:#2a2622}.btn-ghost{background:transparent;color:var(--muted);border:1px solid var(--border)}.btn-ghost:hover:not(:disabled){background:var(--cream);color:var(--ink)}.btn-danger{background:#c0392b;color:#fff}.btn-danger:hover:not(:disabled){background:#a93226}.panel{background:#fff;border:1px solid var(--border);border-radius:6px;padding:28px 32px}.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:20px}.empty-state{text-align:center;padding:64px 32px;color:var(--muted)}.empty-state-icon{font-size:40px;margin-bottom:16px;opacity:.4}.empty-state h3{font-family:var(--font-display);font-size:22px;color:var(--ink);margin-bottom:8px}.empty-state p{font-size:14px;line-height:1.6;max-width:360px;margin:0 auto 24px}.field{margin-bottom:18px}.field label{display:block;font-size:11px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}.field input,.field textarea,.field select{width:100%;padding:10px 13px;font-size:14px;font-family:var(--font-body);color:var(--ink);background:#fff;border:1px solid var(--border);border-radius:4px;outline:none;transition:border-color .15s,box-shadow .15s}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--rust);box-shadow:0 0 0 3px #b84c2b1f}.field textarea{resize:vertical;min-height:80px;line-height:1.5}input[type=date]{padding:9px 12px;font-size:13px;font-family:var(--font-body);color:var(--ink);background:#fff;border:1.5px solid var(--border);border-radius:7px;outline:none;cursor:pointer;transition:border-color .15s,box-shadow .15s;box-sizing:border-box}input[type=date]:focus{border-color:var(--rust);box-shadow:0 0 0 3px #b84c2b1f}input[type=date]::-webkit-calendar-picker-indicator{opacity:.5;cursor:pointer;filter:invert(30%) sepia(40%) saturate(500%) hue-rotate(340deg)}input[type=date]::-webkit-calendar-picker-indicator:hover{opacity:.9}.alert{padding:10px 14px;border-radius:4px;font-size:13px;margin-bottom:16px;line-height:1.5}.alert-error{background:#c0392b14;border:1px solid rgba(192,57,43,.25);color:#a93226}.alert-success{background:#27ae6014;border:1px solid rgba(39,174,96,.25);color:#1e8449}.tabs{display:flex;gap:0;border-bottom:2px solid var(--border);margin-bottom:28px}.tab-btn{padding:10px 22px;font-size:13px;font-weight:500;font-family:var(--font-body);background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;color:var(--muted);cursor:pointer;transition:color .15s,border-color .15s;letter-spacing:.02em}.divider{height:1px;background:var(--border);margin:24px 0}.join-code-display{font-family:Courier New,monospace;font-size:28px;font-weight:700;letter-spacing:.25em;color:var(--ink);background:var(--cream);border:1px solid var(--border);padding:14px 24px;border-radius:4px;display:inline-block}.persona-context-section{background:var(--cream);border:1px solid var(--border);border-radius:6px;padding:16px;margin-bottom:4px}.persona-context-label{font-size:10px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:12px}.persona-context-preview{margin-top:10px;font-size:12px;color:var(--ink);background:#fff;border:1px solid var(--border);border-radius:3px;padding:6px 10px;font-family:Courier New,monospace;letter-spacing:.04em}.quiz-tab-bar{display:flex;gap:0;border-bottom:2px solid var(--border);margin-bottom:24px}.quiz-tab{background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;padding:10px 20px;font-family:var(--font-body);font-size:13px;font-weight:500;color:var(--muted);cursor:pointer;display:flex;align-items:center;gap:8px;transition:color .15s,border-color .15s}.quiz-tab:hover{color:var(--ink)}.quiz-tab--active{color:var(--rust);border-bottom-color:var(--rust)}.quiz-tab-badge{background:var(--rust);color:#fff;font-size:10px;font-weight:600;padding:1px 6px;border-radius:10px;line-height:1.6}.quiz-results-layout{display:grid;grid-template-columns:260px 1fr;gap:0;border:1px solid var(--border);border-radius:6px;overflow:hidden;min-height:400px}.quiz-results-list{border-right:1px solid var(--border);display:flex;flex-direction:column;overflow-y:auto;max-height:700px}.quiz-results-list-header{padding:12px 16px;font-size:10px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--border);background:var(--cream);flex-shrink:0}.quiz-results-student-row{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border:none;border-bottom:1px solid var(--border);background:#fff;cursor:pointer;text-align:left;transition:background .12s;width:100%}.quiz-results-student-row:hover{background:var(--cream)}.quiz-results-student-row--active{background:#fef6f3;border-left:3px solid var(--rust);padding-left:13px}.quiz-results-student-name{font-size:13px;font-weight:500;color:var(--ink)}.quiz-results-student-score{font-size:12px;font-weight:600;padding:2px 8px;border-radius:10px;flex-shrink:0}.quiz-results-detail{padding:20px 24px;overflow-y:auto;max-height:700px}.quiz-results-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;min-height:300px}.quiz-results-detail-header{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:16px;padding-bottom:16px;border-bottom:1px solid var(--border)}.quiz-results-detail-name{font-family:var(--font-display);font-size:20px;font-weight:600;color:var(--ink);margin-bottom:2px}.quiz-results-detail-score{font-family:var(--font-display);font-size:40px;font-weight:600;line-height:1}.quiz-analysis-panel{background:var(--cream);border:1px solid var(--border);border-radius:6px;padding:18px 20px;margin-bottom:20px;display:flex;flex-direction:column;gap:16px}.quiz-analysis-summary{font-size:14px;color:var(--ink);line-height:1.7;font-style:italic;padding-bottom:16px;border-bottom:1px solid var(--border)}.quiz-analysis-copy--markdown{white-space:normal}.quiz-analysis-copy--markdown p{margin:0}.quiz-analysis-copy--markdown p+p,.quiz-analysis-copy--markdown ul+p,.quiz-analysis-copy--markdown ol+p,.quiz-analysis-copy--markdown p+ul,.quiz-analysis-copy--markdown p+ol{margin-top:8px}.quiz-analysis-copy--markdown ul,.quiz-analysis-copy--markdown ol{margin:8px 0 0 18px;padding:0}.quiz-analysis-copy--markdown li+li{margin-top:4px}.quiz-analysis-copy--markdown strong{font-weight:600}.quiz-analysis-copy--markdown em{font-style:italic}.quiz-analysis-copy--markdown code{font-size:.92em;background:#0000000d;border-radius:3px;padding:1px 4px}.quiz-analysis-section{display:flex;flex-direction:column;gap:8px}.quiz-analysis-section-label{font-size:10px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}.quiz-analysis-section-label--good{color:#2a7a2a}.quiz-analysis-section-label--improve{color:#b8860b}.quiz-analysis-list{margin:0;padding-left:18px;display:flex;flex-direction:column;gap:4px}.quiz-analysis-list li{font-size:13px;color:var(--ink);line-height:1.6}.quiz-analysis-recommendation{font-size:13px;color:var(--ink);line-height:1.6;background:#fff;border:1px solid var(--border);border-radius:4px;padding:10px 14px}.quiz-results-question-item{padding:14px 0;border-bottom:1px solid var(--border)}.quiz-results-question-item:last-child{border-bottom:none}.quiz-results-question-meta{display:flex;align-items:center;justify-content:space-between;font-size:10px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}.dashboard-summary-bar{display:flex;align-items:center;gap:0;background:#fff;border:1px solid var(--border);border-radius:12px;padding:0;margin-bottom:28px;overflow:hidden}.dashboard-summary-item{display:flex;flex-direction:column;align-items:center;gap:4px;padding:18px 32px;flex:1}.dashboard-summary-value{font-family:var(--font-display);font-size:32px;color:var(--ink);line-height:1}.dashboard-summary-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.09em;color:var(--muted)}.dashboard-summary-divider{width:1px;height:40px;background:var(--border);flex-shrink:0}.classroom-card{background:#fff;border:1px solid var(--border);border-radius:12px;padding:0;cursor:pointer;display:flex;flex-direction:column;transition:box-shadow .2s,border-color .2s;position:relative;overflow:hidden}.classroom-card:hover{box-shadow:0 8px 28px #2e22191c;border-color:#c8c0b4}.classroom-card-accent{height:5px;width:100%;flex-shrink:0}.classroom-card-accent--0{background:linear-gradient(90deg,#b5451b,#d4845a)}.classroom-card-accent--1{background:linear-gradient(90deg,#1e4d8c,#4a7fc4)}.classroom-card-accent--2{background:linear-gradient(90deg,#166534,#4ead72)}.classroom-card-accent--3{background:linear-gradient(90deg,#6b21a8,#a855f7)}.classroom-card-accent--4{background:linear-gradient(90deg,#9a3412,#f97316)}.classroom-card-top{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:20px 22px 12px}.classroom-card-name{font-family:var(--font-display);font-size:20px;font-weight:600;color:var(--ink);line-height:1.25;flex:1;min-width:0;display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;-webkit-line-clamp:2;line-clamp:2}.classroom-card-initial{width:40px;height:40px;border-radius:10px;background:var(--cream);border:1px solid var(--border);display:grid;place-items:center;font-family:var(--font-display);font-size:18px;font-weight:700;color:var(--ink);flex-shrink:0}.classroom-card-join-row{display:flex;align-items:center;gap:8px;padding:0 22px 14px}.classroom-card-join-label{font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.classroom-card-code{font-family:Courier New,monospace;font-size:13px;letter-spacing:.14em;font-weight:700;color:var(--ink);background:var(--cream);border:1px solid var(--border);padding:3px 10px;border-radius:4px}.classroom-card-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1px;background:var(--border);border-top:1px solid var(--border);border-bottom:1px solid var(--border);margin:4px 0 0}.classroom-card-stat{background:#faf7f2;padding:12px 16px;display:flex;flex-direction:column;align-items:center;gap:3px}.classroom-card-stat-value{font-family:var(--font-display);font-size:22px;font-weight:700;color:var(--ink);line-height:1}.classroom-card-stat-label{font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.classroom-card-footer{display:flex;align-items:center;justify-content:space-between;padding:12px 16px 14px;margin-top:auto}.classroom-card-meta{font-size:11px;color:var(--muted)}.classroom-info-bar{display:flex;align-items:center;background:#fff;border:1px solid var(--border);border-radius:12px;overflow:hidden;margin-bottom:28px}.classroom-info-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:16px 28px;flex:1}.classroom-info-item--code{align-items:flex-start;padding:14px 24px;flex:1.4}.classroom-info-divider{width:1px;height:36px;background:var(--border);flex-shrink:0}.classroom-info-label{font-size:10px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.classroom-info-value{font-family:var(--font-display);font-size:28px;font-weight:600;color:var(--ink);line-height:1}.classroom-info-code{font-family:Courier New,monospace;font-size:20px;font-weight:700;letter-spacing:.16em;color:var(--ink);line-height:1}.copy-code-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px solid var(--border);border-radius:6px;background:transparent;cursor:pointer;color:var(--muted);transition:background .15s;flex-shrink:0}.copy-code-btn:hover{background:var(--cream);color:var(--ink)}.unit-editor-meta{display:grid;grid-template-columns:1fr 1fr;gap:16px}.notes-editor-toolbar{display:flex;align-items:center;gap:10px;margin-bottom:16px;flex-wrap:wrap}.notes-editor-textarea{width:100%;min-height:480px;padding:20px;font-size:14px;font-family:var(--font-body);line-height:1.8;color:var(--ink);background:#fff;border:1px solid var(--border);border-radius:4px;outline:none;resize:vertical;transition:border-color .15s,box-shadow .15s}.notes-editor-textarea:focus{border-color:var(--rust);box-shadow:0 0 0 3px #b84c2b1a}.notes-generated-at{font-size:11px;color:var(--muted);margin-top:8px;font-style:italic}.persona-list{display:flex;flex-direction:column;gap:12px}.persona-mode-options{display:flex;flex-direction:column;gap:8px}.persona-mode-option{display:flex;align-items:flex-start;gap:12px;padding:12px 14px;border-radius:6px;border:1.5px solid var(--border);background:#fff;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s;-webkit-user-select:none;user-select:none}.persona-mode-option:hover{border-color:#b5451b59;background:var(--cream)}.persona-mode-option--active{border-color:var(--rust);background:#b5451b0a;box-shadow:0 0 0 1px #b5451b1a}.persona-mode-radio{width:16px;height:16px;min-width:16px;border-radius:50%;border:2px solid var(--border);margin-top:2px;transition:border-color .15s;flex-shrink:0}.persona-mode-radio--checked{border-color:var(--rust);background:var(--rust);box-shadow:inset 0 0 0 3px #fff}.persona-mode-content{flex:1;min-width:0}.persona-mode-title{font-weight:600;font-size:14px;color:var(--ink);margin-bottom:3px;line-height:1.3}.persona-mode-option--active .persona-mode-title{color:var(--rust)}.persona-mode-desc{font-size:12px;color:var(--muted);line-height:1.5}.persona-emoji-picker{display:flex;flex-wrap:wrap;gap:8px}.persona-emoji-btn{width:42px;height:42px;border-radius:8px;border:2px solid var(--border);background:#fff;font-size:19px;cursor:pointer;transition:border-color .15s,background .15s,transform .1s;display:flex;align-items:center;justify-content:center;padding:0}.persona-emoji-btn:hover{border-color:#b5451b66;background:var(--cream);transform:scale(1.08)}.persona-emoji-btn--active{border-color:var(--rust);background:#b5451b0f;box-shadow:0 0 0 1px #b5451b1f}.persona-missions-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.persona-missions-ai-hint{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:var(--muted);background:var(--cream);border:1px dashed var(--border);border-radius:4px;padding:5px 10px;font-style:italic;line-height:1.4}.persona-missions-empty{text-align:center;padding:18px 12px;font-size:13px;color:var(--muted);background:#fff;border:1px dashed var(--border);border-radius:5px;line-height:1.6;margin-bottom:12px}.persona-missions-empty-icon{font-size:20px;margin-bottom:6px;opacity:.5}.persona-mission-row{display:flex;gap:8px;align-items:flex-start;margin-bottom:8px}.persona-mission-number{display:flex;align-items:center;justify-content:center;width:22px;height:22px;min-width:22px;background:var(--cream);border:1px solid var(--border);border-radius:50%;font-size:11px;font-weight:600;color:var(--muted);margin-top:9px}.persona-mission-add-row{display:flex;gap:8px;margin-top:6px;align-items:center}.persona-mission-add-row input{margin-bottom:0}.persona-quiz-info{margin-top:12px;padding:14px 16px;border-radius:6px;background:#b5451b0d;border:1px solid rgba(181,69,27,.18);font-size:13px;color:var(--ink);line-height:1.6}.persona-quiz-info ul{margin:6px 0 0;padding-left:18px;display:flex;flex-direction:column;gap:3px}.persona-item{background:#fff;border:1px solid var(--border);border-radius:6px;padding:16px 20px;display:flex;align-items:flex-start;gap:16px}.persona-item-avatar{width:40px;height:40px;border-radius:50%;background:var(--cream);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}.persona-item-body{flex:1;min-width:0}.persona-item-name{font-weight:500;font-size:15px;color:var(--ink);margin-bottom:3px}.persona-item-desc{font-size:13px;color:var(--muted);line-height:1.5;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;line-clamp:2;-webkit-box-orient:vertical}.persona-item-meta{font-size:11px;color:var(--muted);margin-top:4px}.persona-item-actions{display:flex;gap:6px;flex-shrink:0}.pconv-layout{display:grid;grid-template-columns:minmax(260px,320px) minmax(0,1fr);gap:18px;align-items:start}.pconv-sidebar,.pconv-main{background:#fff;border:1px solid var(--border);border-radius:14px}.pconv-sidebar{max-height:72vh;overflow:auto;padding:14px}.pconv-persona-group+.pconv-persona-group{margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}.pconv-persona-group-header{display:flex;align-items:center;gap:12px;margin-bottom:10px}.pconv-persona-emoji{width:38px;height:38px;border-radius:12px;background:var(--cream);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:700;color:var(--ink);flex-shrink:0}.pconv-persona-group-info{min-width:0}.pconv-persona-group-name{font-size:14px;font-weight:700;color:var(--ink)}.pconv-persona-group-meta{margin-top:2px;font-size:12px;color:var(--muted);line-height:1.5}.pconv-student-list{display:flex;flex-direction:column;gap:6px}.pconv-student-row{width:100%;border:1px solid transparent;background:transparent;border-radius:10px;padding:9px 10px;display:flex;align-items:center;gap:10px;cursor:pointer;transition:background .15s ease,border-color .15s ease;text-align:left}.pconv-student-row:hover{background:var(--cream);border-color:#b5451b29}.pconv-student-row--active{background:#b5451b14;border-color:#b5451b47}.pconv-student-avatar{width:30px;height:30px;border-radius:50%;background:var(--cream);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700;color:var(--muted);flex-shrink:0}.pconv-student-name{min-width:0;font-size:13px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pconv-main{min-height:520px;height:clamp(520px,72vh,860px);display:flex;flex-direction:column;overflow:hidden;position:relative}.pconv-conv-header{padding:18px 20px;border-bottom:1px solid var(--border);display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.pconv-conv-header-left{min-width:0}.pconv-conv-header-right{margin-left:auto;flex-shrink:0}.pconv-conv-title{display:flex;flex-wrap:wrap;align-items:center;gap:8px;font-size:18px;font-weight:700;color:var(--ink)}.pconv-conv-title-sep{font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.pconv-conv-meta{margin-top:8px;display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:13px;color:var(--muted)}.pconv-badge{display:inline-flex;align-items:center;border-radius:999px;padding:4px 10px;font-size:11px;font-weight:700;line-height:1}.pconv-badge--complete{background:#eaf6ea;color:#1f6f3e}.pconv-badge--quiz{background:#eaf0fb;color:#315a96}.pconv-badge--missions{background:#b5451b1a;color:var(--rust)}.missions-overlay{position:absolute;inset:0;z-index:5;background:#140e0a47;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);animation:fadeIn .15s ease}.missions-drawer{position:absolute;top:0;right:0;bottom:0;width:min(320px,100%);z-index:6;background:linear-gradient(180deg,#faf6f0,#f5ede2);border-left:1px solid rgba(119,98,73,.16);display:flex;flex-direction:column;transform:translate(100%);transition:transform .26s cubic-bezier(.22,1,.36,1);box-shadow:-8px 0 32px #2119121a;overflow:hidden}.missions-drawer--open{transform:translate(0)}.missions-drawer-item{display:flex;align-items:flex-start;gap:10px;padding:11px 13px;border-radius:10px;border:1px solid rgba(119,98,73,.12);background:#ffffffb3;transition:background .15s,border-color .15s}.pconv-loading,.pconv-empty{flex:1;padding:28px 24px;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center}.pconv-empty-icon{min-width:52px;height:52px;padding:0 14px;border-radius:16px;background:var(--cream);border:1px solid var(--border);display:inline-flex;align-items:center;justify-content:center;font-size:13px;font-weight:700;color:var(--muted)}.pconv-empty-title{margin-top:14px;font-size:18px;font-weight:700;color:var(--ink)}.pconv-empty-sub{margin-top:8px;max-width:420px;font-size:14px;line-height:1.65;color:var(--muted)}.pconv-messages{padding:20px;display:flex;flex-direction:column;gap:14px;flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain}.pconv-messages::-webkit-scrollbar{width:8px}.pconv-messages::-webkit-scrollbar-track{background:transparent}.pconv-messages::-webkit-scrollbar-thumb{background:#5e4d3c38;border-radius:999px}.pconv-bubble{max-width:min(760px,100%);border-radius:16px;padding:14px 16px;border:1px solid var(--border)}.pconv-bubble--user{align-self:flex-end;background:var(--cream)}.pconv-bubble--assistant{align-self:flex-start;background:#fff}.pconv-bubble-sender{margin-bottom:8px;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.pconv-bubble-text{font-size:14px;line-height:1.75;color:var(--ink);white-space:pre-wrap}.pconv-bubble-text--md>*:first-child{margin-top:0}.pconv-bubble-text--md>*:last-child{margin-bottom:0}.quiz-question-list{display:flex;flex-direction:column;gap:14px}.quiz-question-item{background:#fff;border:1px solid var(--border);border-radius:6px;padding:16px 20px}.quiz-question-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.quiz-question-num{font-size:11px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.quiz-question-type{font-size:10px;padding:2px 8px;border-radius:2px;font-weight:500;letter-spacing:.08em;text-transform:uppercase}.quiz-question-type--mc{background:#c9a84c26;color:#7a6028}.quiz-question-type--sa{background:#5082b41f;color:#2a5a8a}.quiz-question-text{font-size:14px;color:var(--ink);line-height:1.5;margin-bottom:8px;font-weight:500}.quiz-question-text--markdown p{margin:0}.quiz-question-text--markdown p+p,.quiz-question-text--markdown ul+p,.quiz-question-text--markdown ol+p,.quiz-question-text--markdown p+ul,.quiz-question-text--markdown p+ol{margin-top:10px}.quiz-question-text--markdown ul,.quiz-question-text--markdown ol{margin:10px 0 0 20px}.quiz-question-text--markdown li+li{margin-top:4px}.quiz-question-text--markdown strong{font-weight:600}.quiz-question-text--markdown em{font-style:italic}.quiz-question-text--markdown code{font-size:.92em;background:#0000000d;border-radius:3px;padding:1px 4px}.quiz-question-answer{font-size:12px;color:#2a7a2a;background:#27ae6012;border:1px solid rgba(39,174,96,.2);padding:5px 10px;border-radius:3px;display:inline-block}.quiz-question-options{display:flex;flex-direction:column;gap:4px;margin-bottom:8px}.quiz-option{font-size:13px;color:var(--muted);padding:3px 0;display:flex;align-items:center;gap:8px}.quiz-option--correct{color:#2a7a2a;font-weight:500}.quiz-option-bullet{font-size:10px}.quiz-question-type--essay{background:#8b5ab41f;color:#5a2d82}.quiz-question-essay-prompt{font-size:12px;color:var(--muted);background:#8b5ab40f;border:1px solid rgba(139,90,180,.2);border-left:3px solid rgba(139,90,180,.4);padding:6px 10px;border-radius:0 3px 3px 0;line-height:1.5}.quiz-question-essay-prompt-label{font-weight:600;color:#5a2d82;margin-right:6px}.essay-breakdown-cell{background:var(--cream);border:1px solid var(--border);border-radius:4px;padding:8px;text-align:center}.essay-breakdown-label{font-size:10px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}.essay-breakdown-score{font-size:18px;font-weight:600;line-height:1}.essay-breakdown-denom{font-size:10px;color:var(--muted);font-weight:400}.assignment-section-heading{font-family:var(--font-display);font-size:17px;font-weight:600;color:var(--ink);display:flex;align-items:center;gap:8px;margin:0}.assignment-section-count{font-family:var(--font-body);font-size:11px;font-weight:600;background:var(--rust);color:#fff;padding:1px 7px;border-radius:10px}.assignment-source-card{background:#fff;border:1px solid var(--border);border-radius:6px;overflow:hidden}.assignment-source-header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 16px;border-bottom:1px solid var(--border);background:var(--cream)}.assignment-source-title{font-size:13px;font-weight:500;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.assignment-source-preview{font-size:13px;color:var(--muted);line-height:1.65;padding:14px 16px;max-height:100px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:4;line-clamp:4;-webkit-box-orient:vertical}.assignment-source-badge{font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:2px 7px;border-radius:3px;flex-shrink:0}.assignment-source-badge--primary{background:#b84c2b1a;color:var(--rust);border:1px solid rgba(184,76,43,.2)}.assignment-source-badge--secondary{background:#5082b41a;color:#2a5a8a;border:1px solid rgba(80,130,180,.2)}.assignment-source-badge--ai{background:#8b5ab41a;color:#5a2d82;border:1px solid rgba(139,90,180,.2)}.perf-overall-row{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--cream);border:1px solid var(--border);border-radius:6px}.perf-unit-card{border:1px solid var(--border);border-radius:6px;overflow:hidden}.perf-unit-header{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;background:var(--cream);border-bottom:1px solid var(--border);gap:12px}.perf-unit-title{font-family:var(--font-display);font-size:14px;font-weight:600;color:var(--ink)}.perf-submission-block{padding:12px 16px;border-bottom:1px solid var(--border)}.perf-submission-block:last-child{border-bottom:none}.perf-submission-label{font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--rust);margin-bottom:4px}.perf-essay-breakdown{background:#fafaf8;border:1px solid var(--border);border-radius:4px;padding:10px 12px;margin-bottom:8px}.perf-breakdown-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:8px}.perf-breakdown-cell{background:#fff;border:1px solid var(--border);border-radius:4px;padding:7px;text-align:center}.perf-breakdown-label{font-size:9px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:3px}.perf-breakdown-score{font-size:16px;font-weight:600;line-height:1}.perf-feedback-pill{font-size:12px;color:var(--ink);padding:7px 10px;background:#fff;border:1px solid var(--border);border-left-width:3px;border-radius:0 4px 4px 0;line-height:1.6;margin-bottom:6px}.perf-table{width:100%;border-collapse:collapse;font-size:13px}.perf-table-th{padding:8px 12px;text-align:center;font-size:11px;font-weight:600;color:var(--muted);background:var(--cream);border:1px solid var(--border);white-space:nowrap}.perf-table-th--student{text-align:left;min-width:140px}.perf-table-unit-name{max-width:100px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:11px;color:var(--ink);font-weight:600}.perf-table-unit-sub{font-size:9px;color:var(--muted);font-weight:400;letter-spacing:.06em;margin-top:2px}.perf-table-row:hover td{background:#fafaf8}.perf-table-td{padding:10px 12px;border:1px solid var(--border);color:var(--ink);vertical-align:middle}.perf-table-td--student{min-width:140px}.perf-table-td--center{text-align:center}.perf-class-avg{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;background:var(--cream);border:1px solid var(--border);border-top:none;font-size:12px;color:var(--muted);font-weight:500;border-radius:0 0 4px 4px}.quiz-manager-shell{display:grid;grid-template-columns:320px minmax(0,1fr);gap:20px;align-items:start}.quiz-manager-sidebar,.quiz-manager-main{min-width:0}.quiz-manager-sidebar{display:flex;flex-direction:column;gap:16px;border:1px solid var(--border);border-radius:16px;background:linear-gradient(180deg,#fffdf8,#f7f0e7);padding:18px}.quiz-manager-sidebar-header{display:flex;flex-direction:column;gap:12px}.quiz-manager-sidebar-header h3{margin:4px 0;font-family:var(--font-display);color:var(--ink)}.quiz-manager-sidebar-header p{margin:0;color:var(--muted);font-size:13px;line-height:1.6}.quiz-manager-eyebrow{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}.quiz-manager-list{display:flex;flex-direction:column;gap:10px}.quiz-manager-card{width:100%;border:1px solid rgba(90,74,54,.12);border-radius:14px;background:#ffffffe6;padding:14px;text-align:left;cursor:pointer;transition:transform .15s,border-color .15s,box-shadow .15s,background .15s}.quiz-manager-card:hover{border-color:#b84c2b47;transform:translateY(-1px);box-shadow:0 10px 20px #59381e14}.quiz-manager-card--active{border-color:#b84c2b6b;background:linear-gradient(180deg,#fff6ef,#fffdfb);box-shadow:0 12px 24px #b84c2b1f}.quiz-manager-card-top,.quiz-manager-card-meta{display:flex;align-items:center;justify-content:space-between;gap:10px}.quiz-manager-card-title{font-size:15px;font-weight:700;color:var(--ink);line-height:1.4}.quiz-manager-card-count{font-size:11px;font-weight:700;color:#1e4d8c;background:#dbeafe;border-radius:999px;padding:4px 8px}.quiz-manager-card-meta{margin-top:8px;font-size:11px;color:var(--muted);letter-spacing:.04em}.quiz-manager-card-context{margin-top:10px;font-size:13px;line-height:1.55;color:var(--ink)}.quiz-manager-card-context--muted{color:var(--muted);font-style:italic}.quiz-builder-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:20px;border:1px solid var(--border);border-radius:16px;background:linear-gradient(135deg,#fffaf4,#f4ede4)}.quiz-builder-hero-main h2{margin:6px 0 8px;font-family:var(--font-display);color:var(--ink)}.quiz-builder-hero-main p{margin:0;font-size:14px;line-height:1.7;color:var(--muted);max-width:700px}.quiz-builder-actions{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}.quiz-builder-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(260px,.9fr);gap:16px;align-items:start}.quiz-builder-inline-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.quiz-builder-generate-row{display:flex;gap:10px;align-items:center}.quiz-builder-generate-row input{width:96px;margin-bottom:0}.quiz-builder-sidecard{border:1px solid var(--border);border-radius:16px;background:#fff;padding:18px;display:flex;flex-direction:column;gap:12px}.quiz-builder-sidecard-heading,.quiz-builder-toggle-label{font-family:var(--font-display);font-size:18px;color:var(--ink)}.quiz-builder-sidecard-copy,.quiz-builder-toggle-copy{font-size:13px;line-height:1.7;color:var(--muted)}.quiz-builder-sidecard-meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:auto}.quiz-builder-sidecard-meta span{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:var(--cream);border-radius:999px;padding:6px 10px}.quiz-builder-toggle{display:flex;justify-content:space-between;gap:12px;align-items:center;padding:16px 18px;border:1px solid var(--border);border-radius:14px;background:#fff}.quiz-builder-questions-header{display:flex;justify-content:space-between;gap:12px;align-items:flex-end}.quiz-meta-panel{border:1px solid var(--border);border-radius:12px;padding:20px 22px;background:linear-gradient(160deg,#fffdf8,#f7f0e6);margin-bottom:20px;position:relative}.quiz-meta-panel:before{content:"";position:absolute;top:0;left:0;width:100%;height:3px;background:linear-gradient(90deg,var(--rust),var(--gold));border-radius:12px 12px 0 0}.quiz-meta-panel-row{display:grid;grid-template-columns:1fr 192px;gap:14px;margin-bottom:14px;align-items:start}.quiz-meta-field{display:flex;flex-direction:column;gap:6px}.quiz-meta-label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}.quiz-meta-label-note{font-size:11px;font-weight:400;text-transform:none;letter-spacing:0;color:var(--muted);opacity:.8}.quiz-meta-name-input{font-family:var(--font-display)!important;font-size:18px!important;font-weight:600!important;color:var(--ink)!important;padding:9px 12px!important;border-radius:7px!important;border:1.5px solid var(--border)!important;background:#fff!important;transition:border-color .15s,box-shadow .15s!important}.quiz-meta-name-input:focus{border-color:var(--rust)!important;box-shadow:0 0 0 3px #b84c2b17!important;outline:none!important}.quiz-meta-focus-row{margin-bottom:16px}.quiz-meta-date-input{width:100%;height:43px}.quiz-meta-focus-row textarea{width:100%;box-sizing:border-box;resize:vertical;border-radius:7px;font-size:13px;line-height:1.6;min-height:64px;border:1.5px solid var(--border)!important;padding:9px 12px!important;background:#fff!important;color:var(--ink);font-family:inherit;transition:border-color .15s,box-shadow .15s}.quiz-meta-focus-row textarea:focus{border-color:var(--rust);box-shadow:0 0 0 3px #b84c2b17;outline:none}.quiz-meta-footer{display:flex;align-items:center;gap:10px;padding-top:4px;border-top:1px solid rgba(0,0,0,.06);margin-top:2px}.quiz-meta-saved-badge{font-size:12px;color:#2a7a2a;font-weight:600;display:flex;align-items:center;gap:4px}@media(max-width:700px){.quiz-meta-panel-row{grid-template-columns:1fr}}@media(max-width:1100px){.quiz-manager-shell,.quiz-builder-grid{grid-template-columns:1fr}}@media(max-width:700px){.quiz-builder-hero,.quiz-builder-toggle,.quiz-builder-questions-header{flex-direction:column;align-items:stretch}.quiz-builder-inline-fields{grid-template-columns:1fr}.quiz-builder-actions{justify-content:stretch}.quiz-builder-actions .btn{width:100%;justify-content:center}.quiz-builder-generate-row{flex-direction:column;align-items:stretch}}.classroom-tab-bar{display:flex;gap:0;border-bottom:2px solid var(--border);margin-bottom:28px;margin-top:4px}.classroom-tab{display:flex;align-items:center;gap:7px;padding:10px 20px;font-family:var(--font-body);font-size:13px;font-weight:600;color:var(--muted);background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;cursor:pointer;transition:color .15s,border-color .15s;letter-spacing:.01em}.classroom-tab:hover{color:var(--ink)}.classroom-tab--active{color:var(--ink);border-bottom-color:var(--rust)}.classroom-tab-count{font-size:11px;font-weight:700;background:var(--cream);border:1px solid var(--border);color:var(--muted);padding:1px 7px;border-radius:999px}.classroom-tab--active .classroom-tab-count{background:#b84c2b14;border-color:#b84c2b33;color:var(--rust)}.students-tab{display:flex;flex-direction:column;gap:24px}.grades-table-section{background:#fff;border:1px solid var(--border);border-radius:12px;padding:16px 20px}.grades-table-header{display:flex;align-items:center;justify-content:space-between;gap:12px}.students-list-section{background:#fff;border:1px solid var(--border);border-radius:12px;padding:18px 20px}.students-list-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px;flex-wrap:wrap}.students-search-wrap{display:flex;align-items:center;gap:8px;background:var(--cream);border:1px solid var(--border);border-radius:8px;padding:5px 10px;color:var(--muted);transition:border-color .15s,box-shadow .15s}.students-search-wrap:focus-within{border-color:#c8c0b4;box-shadow:0 0 0 3px #b84c2b12;background:#fff}.students-search{border:none;background:transparent;outline:none;font-size:13px;font-family:var(--font-body);color:var(--ink);width:180px}.students-search::placeholder{color:var(--muted)}.students-grid{display:flex;flex-direction:column;gap:6px}.student-card{display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:8px;border:1px solid var(--border);background:#faf8f5;transition:background .15s}.student-card:hover{background:var(--cream)}.student-card-avatar{width:36px;height:36px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:700;flex-shrink:0}.student-card-info{display:flex;flex-direction:column;gap:2px;flex:1;min-width:0}.student-card-name{font-size:14px;font-weight:500;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.student-card-meta{font-size:11px;color:var(--muted)}.performance-tab{display:flex;flex-direction:column;gap:0}.performance-tab-divider{display:flex;align-items:center;gap:0;margin:28px 0 20px}.course-quiz-results-inline{min-height:200px}.class-analysis-panel{background:linear-gradient(135deg,#fffdf9,#f6f0e8);border:1px solid var(--border);border-radius:14px;padding:24px 26px;margin-bottom:0}.class-analysis-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:16px}.class-analysis-eyebrow{font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--rust);margin:0 0 4px}.class-analysis-title{font-family:var(--font-display);font-size:20px;font-weight:600;color:var(--ink);margin:0 0 4px;line-height:1.2}.class-analysis-subtitle{font-size:13px;color:var(--muted);margin:0;line-height:1.5}.class-analysis-updated{font-size:11px;color:var(--muted);margin:6px 0 0;font-style:italic}.class-analysis-empty{font-size:13px;color:var(--muted);font-style:italic;padding:16px 0 4px;min-height:48px;display:flex;align-items:center}.class-analysis-body{display:flex;flex-direction:column;gap:14px;margin-top:4px}.class-analysis-summary{font-size:14px;color:var(--ink);line-height:1.7;margin:0;padding:12px 16px;background:#fff;border-radius:8px;border:1px solid var(--border)}.class-analysis-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}.class-analysis-card{background:#fff;border:1px solid var(--border);border-radius:10px;padding:14px 16px}.class-analysis-card--strengths{border-top:3px solid #22c55e}.class-analysis-card--weaknesses{border-top:3px solid #f97316}.class-analysis-card--recommendations{border-top:3px solid var(--rust);grid-column:1 / -1}.class-analysis-card-label{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:var(--muted);margin-bottom:10px}.class-analysis-card--strengths .class-analysis-card-label{color:#166534}.class-analysis-card--weaknesses .class-analysis-card-label{color:#9a3412}.class-analysis-card--recommendations .class-analysis-card-label{color:var(--rust)}.class-analysis-list{margin:0;padding:0 0 0 18px;display:flex;flex-direction:column;gap:6px}.class-analysis-list li{font-size:13px;color:var(--ink);line-height:1.55}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media(max-width:640px){.class-analysis-grid{grid-template-columns:1fr}.class-analysis-header{flex-direction:column}.classroom-tab{padding:8px 14px;font-size:12px}.pconv-layout{grid-template-columns:1fr}.pconv-sidebar{max-height:none}.pconv-main{min-height:420px;height:70vh}.pconv-conv-header{flex-direction:column}.pconv-conv-header-right{margin-left:0}.missions-drawer{width:100%}}.react-datepicker__navigation-icon:before,.react-datepicker__year-read-view--down-arrow,.react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view--down-arrow{border-color:#ccc;border-style:solid;border-width:3px 3px 0 0;content:"";display:block;height:9px;position:absolute;top:6px;width:9px}.react-datepicker__sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}.react-datepicker-wrapper{display:inline-block;padding:0;border:0}.react-datepicker{font-family:Helvetica Neue,helvetica,arial,sans-serif;font-size:.8rem;background-color:#fff;color:#000;border:1px solid #aeaeae;border-radius:.3rem;display:inline-block;position:relative;line-height:initial}.react-datepicker--time-only .react-datepicker__time-container{border-left:0}.react-datepicker--time-only .react-datepicker__time,.react-datepicker--time-only .react-datepicker__time-box{border-bottom-left-radius:.375em;border-bottom-right-radius:.375em}.react-datepicker-popper{z-index:1;line-height:0}.react-datepicker-popper .react-datepicker__triangle{stroke:#aeaeae}.react-datepicker-popper[data-placement^=bottom] .react-datepicker__triangle{fill:#f0f0f0;color:#f0f0f0}.react-datepicker-popper[data-placement^=top] .react-datepicker__triangle,.react-datepicker-popper--header-middle[data-placement^=bottom] .react-datepicker__triangle,.react-datepicker-popper--header-bottom[data-placement^=bottom] .react-datepicker__triangle{fill:#fff;color:#fff}.react-datepicker-popper--header-bottom[data-placement^=top] .react-datepicker__triangle{fill:#f0f0f0;color:#f0f0f0}.react-datepicker__header{text-align:center;background-color:#f0f0f0;border-bottom:1px solid #aeaeae;border-top-left-radius:.3rem;padding:8px 0;position:relative}.react-datepicker__header--time{padding-bottom:8px;padding-left:5px;padding-right:5px}.react-datepicker__header--time:not(.react-datepicker__header--time--only){border-top-left-radius:0}.react-datepicker__header:not(.react-datepicker__header--has-time-select,.react-datepicker__header--middle,.react-datepicker__header--bottom){border-top-right-radius:.3rem}.react-datepicker__header--middle{border-top:1px solid #aeaeae;border-radius:0;margin-top:4px}.react-datepicker__header--bottom{border-bottom:none;border-top:1px solid #aeaeae;border-radius:0 0 .3rem .3rem}.react-datepicker__header-wrapper{position:relative}.react-datepicker__header-wrapper .react-datepicker__navigation--next--with-time:not(.react-datepicker__navigation--next--with-today-button){right:2px}.react-datepicker__year-dropdown-container--select,.react-datepicker__month-dropdown-container--select,.react-datepicker__month-year-dropdown-container--select,.react-datepicker__year-dropdown-container--scroll,.react-datepicker__month-dropdown-container--scroll,.react-datepicker__month-year-dropdown-container--scroll{display:inline-block;margin:0 15px}.react-datepicker__month-select,.react-datepicker__year-select,.react-datepicker__month-year-select{background-color:transparent;border:1px solid #aeaeae;border-radius:.3rem;color:inherit;cursor:pointer;font-family:inherit;font-size:inherit;margin-top:5px;padding:2px 5px}.react-datepicker__month-select:focus-visible,.react-datepicker__year-select:focus-visible,.react-datepicker__month-year-select:focus-visible{outline:auto 1px}.react-datepicker__current-month,.react-datepicker-time__header,.react-datepicker-year-header{margin-top:0;color:#000;font-weight:700;font-size:.944rem}h2.react-datepicker__current-month{padding:0;margin:0}.react-datepicker-time__header{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.react-datepicker__navigation{align-items:center;background:none;display:flex;justify-content:center;text-align:center;cursor:pointer;position:absolute;top:2px;padding:0;border:none;z-index:1;height:32px;width:32px;text-indent:-999em;overflow:hidden}.react-datepicker__navigation--previous{left:2px}.react-datepicker__navigation--next{right:2px}.react-datepicker__navigation--next--with-time:not(.react-datepicker__navigation--next--with-today-button){right:85px}.react-datepicker__navigation--years{position:relative;top:0;display:block;margin-left:auto;margin-right:auto}.react-datepicker__navigation--years-previous{top:4px}.react-datepicker__navigation--years-upcoming{top:-4px}.react-datepicker__navigation:hover *:before{border-color:#a6a6a6}.react-datepicker__navigation-icon{position:relative;top:-1px;font-size:20px;width:0}.react-datepicker__navigation-icon--next{left:-2px}.react-datepicker__navigation-icon--next:before{transform:rotate(45deg);left:-7px}.react-datepicker__navigation-icon--previous{right:-2px}.react-datepicker__navigation-icon--previous:before{transform:rotate(225deg);right:-7px}.react-datepicker__month-container{float:left}.react-datepicker__year{margin:.5em;text-align:center}.react-datepicker__year-wrapper{display:flex;flex-wrap:wrap;max-width:180px}.react-datepicker__year .react-datepicker__year-text{display:inline-block;width:5em;margin:2px}.react-datepicker__month{margin:.5em;text-align:center}.react-datepicker__month .react-datepicker__month-text,.react-datepicker__month .react-datepicker__quarter-text{display:inline-block;width:5em;margin:2px}.react-datepicker__input-time-container{clear:both;width:100%;float:left;margin:5px 0 10px 15px;text-align:left}.react-datepicker__input-time-container .react-datepicker-time__caption,.react-datepicker__input-time-container .react-datepicker-time__input-container{display:inline-block}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input{display:inline-block;margin-left:10px}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input{width:auto}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]::-webkit-inner-spin-button,.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__input input[type=time]{-moz-appearance:textfield}.react-datepicker__input-time-container .react-datepicker-time__input-container .react-datepicker-time__delimiter{margin-left:5px;display:inline-block}.react-datepicker__time-container{float:right;border-left:1px solid #aeaeae;width:85px}.react-datepicker__time-container--with-today-button{display:inline;border:1px solid #aeaeae;border-radius:.375em;position:absolute;right:-87px;top:0}.react-datepicker__time-container .react-datepicker__time{position:relative;background:#fff;border-bottom-right-radius:.375em}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box{width:85px;overflow-x:hidden;margin:0 auto;text-align:center;border-bottom-right-radius:.375em}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list{list-style:none;margin:0;height:calc(195px + 1.0625em);overflow-y:scroll;padding-right:0;padding-left:0;width:100%;box-sizing:content-box}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item{height:30px;padding:5px 10px;white-space:nowrap}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item:hover{cursor:pointer;background-color:#f0f0f0}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected{background-color:#216ba5;color:#fff;font-weight:700}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--selected:hover{background-color:#216ba5}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--disabled{color:#ccc}.react-datepicker__time-container .react-datepicker__time .react-datepicker__time-box ul.react-datepicker__time-list li.react-datepicker__time-list-item--disabled:hover{cursor:default;background-color:transparent}.react-datepicker__week-number{color:#ccc;display:inline-block;width:2.125em;line-height:2.125em;text-align:center;margin:.208em}.react-datepicker__week-number.react-datepicker__week-number--clickable{cursor:pointer}.react-datepicker__week-number.react-datepicker__week-number--clickable:not(.react-datepicker__week-number--selected):hover{border-radius:.3rem;background-color:#f0f0f0}.react-datepicker__week-number--selected{border-radius:.3rem;background-color:#216ba5;color:#fff}.react-datepicker__week-number--selected:hover{background-color:#1d5d90}.react-datepicker__day-names{text-align:center;white-space:nowrap;margin-bottom:-8px}.react-datepicker__week{white-space:nowrap}.react-datepicker__day-name,.react-datepicker__day,.react-datepicker__time-name{color:#000;display:inline-block;width:2.125em;line-height:2.125em;text-align:center;margin:.208em}.react-datepicker__day-name--disabled,.react-datepicker__day--disabled,.react-datepicker__time-name--disabled{cursor:default;color:#ccc}.react-datepicker__day,.react-datepicker__month-text,.react-datepicker__quarter-text,.react-datepicker__year-text{cursor:pointer}.react-datepicker__day:not([aria-disabled=true]):hover,.react-datepicker__month-text:not([aria-disabled=true]):hover,.react-datepicker__quarter-text:not([aria-disabled=true]):hover,.react-datepicker__year-text:not([aria-disabled=true]):hover{border-radius:.3rem;background-color:#f0f0f0}.react-datepicker__day--today,.react-datepicker__month-text--today,.react-datepicker__quarter-text--today,.react-datepicker__year-text--today{font-weight:700}.react-datepicker__day--highlighted,.react-datepicker__month-text--highlighted,.react-datepicker__quarter-text--highlighted,.react-datepicker__year-text--highlighted{border-radius:.3rem;background-color:#3dcc4a;color:#fff}.react-datepicker__day--highlighted:not([aria-disabled=true]):hover,.react-datepicker__month-text--highlighted:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--highlighted:not([aria-disabled=true]):hover,.react-datepicker__year-text--highlighted:not([aria-disabled=true]):hover{background-color:#32be3f}.react-datepicker__day--highlighted-custom-1,.react-datepicker__month-text--highlighted-custom-1,.react-datepicker__quarter-text--highlighted-custom-1,.react-datepicker__year-text--highlighted-custom-1{color:#f0f}.react-datepicker__day--highlighted-custom-2,.react-datepicker__month-text--highlighted-custom-2,.react-datepicker__quarter-text--highlighted-custom-2,.react-datepicker__year-text--highlighted-custom-2{color:green}.react-datepicker__day--holidays,.react-datepicker__month-text--holidays,.react-datepicker__quarter-text--holidays,.react-datepicker__year-text--holidays{position:relative;border-radius:.3rem;background-color:#ff6803;color:#fff}.react-datepicker__day--holidays .overlay,.react-datepicker__month-text--holidays .overlay,.react-datepicker__quarter-text--holidays .overlay,.react-datepicker__year-text--holidays .overlay{position:absolute;bottom:100%;left:50%;transform:translate(-50%);background-color:#333;color:#fff;padding:4px;border-radius:4px;white-space:nowrap;visibility:hidden;opacity:0;transition:visibility 0s,opacity .3s ease-in-out}.react-datepicker__day--holidays:not([aria-disabled=true]):hover,.react-datepicker__month-text--holidays:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--holidays:not([aria-disabled=true]):hover,.react-datepicker__year-text--holidays:not([aria-disabled=true]):hover{background-color:#cf5300}.react-datepicker__day--holidays:hover .overlay,.react-datepicker__month-text--holidays:hover .overlay,.react-datepicker__quarter-text--holidays:hover .overlay,.react-datepicker__year-text--holidays:hover .overlay{visibility:visible;opacity:1}.react-datepicker__day--selected,.react-datepicker__day--in-selecting-range,.react-datepicker__day--in-range,.react-datepicker__month-text--selected,.react-datepicker__month-text--in-selecting-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--selected,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--selected,.react-datepicker__year-text--in-selecting-range,.react-datepicker__year-text--in-range{border-radius:.3rem;background-color:#216ba5;color:#fff}.react-datepicker__day--selected:not([aria-disabled=true]):hover,.react-datepicker__day--in-selecting-range:not([aria-disabled=true]):hover,.react-datepicker__day--in-range:not([aria-disabled=true]):hover,.react-datepicker__month-text--selected:not([aria-disabled=true]):hover,.react-datepicker__month-text--in-selecting-range:not([aria-disabled=true]):hover,.react-datepicker__month-text--in-range:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--selected:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--in-selecting-range:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--in-range:not([aria-disabled=true]):hover,.react-datepicker__year-text--selected:not([aria-disabled=true]):hover,.react-datepicker__year-text--in-selecting-range:not([aria-disabled=true]):hover,.react-datepicker__year-text--in-range:not([aria-disabled=true]):hover{background-color:#1d5d90}.react-datepicker__day--keyboard-selected,.react-datepicker__month-text--keyboard-selected,.react-datepicker__quarter-text--keyboard-selected,.react-datepicker__year-text--keyboard-selected{border-radius:.3rem;background-color:#bad9f1;color:#000}.react-datepicker__day--keyboard-selected:not([aria-disabled=true]):hover,.react-datepicker__month-text--keyboard-selected:not([aria-disabled=true]):hover,.react-datepicker__quarter-text--keyboard-selected:not([aria-disabled=true]):hover,.react-datepicker__year-text--keyboard-selected:not([aria-disabled=true]):hover{background-color:#1d5d90;color:#fff}.react-datepicker__day--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range),.react-datepicker__month-text--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range),.react-datepicker__quarter-text--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range),.react-datepicker__year-text--in-selecting-range:not(.react-datepicker__day--in-range,.react-datepicker__month-text--in-range,.react-datepicker__quarter-text--in-range,.react-datepicker__year-text--in-range){background-color:#216ba580}.react-datepicker__month--selecting-range .react-datepicker__day--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__year--selecting-range .react-datepicker__day--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__month--selecting-range .react-datepicker__month-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__year--selecting-range .react-datepicker__month-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__month--selecting-range .react-datepicker__quarter-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__year--selecting-range .react-datepicker__quarter-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__month--selecting-range .react-datepicker__year-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range),.react-datepicker__year--selecting-range .react-datepicker__year-text--in-range:not(.react-datepicker__day--in-selecting-range,.react-datepicker__month-text--in-selecting-range,.react-datepicker__quarter-text--in-selecting-range,.react-datepicker__year-text--in-selecting-range){background-color:#f0f0f0;color:#000}.react-datepicker__day--disabled,.react-datepicker__month-text--disabled,.react-datepicker__quarter-text--disabled,.react-datepicker__year-text--disabled{cursor:default;color:#ccc}.react-datepicker__day--disabled .overlay,.react-datepicker__month-text--disabled .overlay,.react-datepicker__quarter-text--disabled .overlay,.react-datepicker__year-text--disabled .overlay{position:absolute;bottom:70%;left:50%;transform:translate(-50%);background-color:#333;color:#fff;padding:4px;border-radius:4px;white-space:nowrap;visibility:hidden;opacity:0;transition:visibility 0s,opacity .3s ease-in-out}.react-datepicker__input-container{position:relative;display:inline-block;width:100%}.react-datepicker__input-container .react-datepicker__calendar-icon{position:absolute;padding:.625em;box-sizing:content-box}.react-datepicker__view-calendar-icon input{padding:6px 10px 5px 25px}.react-datepicker__year-read-view,.react-datepicker__month-read-view,.react-datepicker__month-year-read-view{border:1px solid transparent;border-radius:.3rem;position:relative}.react-datepicker__year-read-view:hover,.react-datepicker__month-read-view:hover,.react-datepicker__month-year-read-view:hover{cursor:pointer}.react-datepicker__year-read-view:hover .react-datepicker__year-read-view--down-arrow,.react-datepicker__year-read-view:hover .react-datepicker__month-read-view--down-arrow,.react-datepicker__month-read-view:hover .react-datepicker__year-read-view--down-arrow,.react-datepicker__month-read-view:hover .react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view:hover .react-datepicker__year-read-view--down-arrow,.react-datepicker__month-year-read-view:hover .react-datepicker__month-read-view--down-arrow{border-top-color:#b3b3b3}.react-datepicker__year-read-view--down-arrow,.react-datepicker__month-read-view--down-arrow,.react-datepicker__month-year-read-view--down-arrow{transform:rotate(135deg);right:-16px;top:0}.react-datepicker__year-dropdown,.react-datepicker__month-dropdown,.react-datepicker__month-year-dropdown{background-color:#f0f0f0;position:absolute;width:50%;left:25%;top:30px;z-index:1;text-align:center;border-radius:.3rem;border:1px solid #aeaeae}.react-datepicker__year-dropdown:hover,.react-datepicker__month-dropdown:hover,.react-datepicker__month-year-dropdown:hover{cursor:pointer}.react-datepicker__year-dropdown--scrollable,.react-datepicker__month-dropdown--scrollable,.react-datepicker__month-year-dropdown--scrollable{height:150px;overflow-y:scroll}.react-datepicker__year-option,.react-datepicker__month-option,.react-datepicker__month-year-option{line-height:20px;width:100%;display:block;margin-left:auto;margin-right:auto}.react-datepicker__year-option:first-of-type,.react-datepicker__month-option:first-of-type,.react-datepicker__month-year-option:first-of-type{border-top-left-radius:.3rem;border-top-right-radius:.3rem}.react-datepicker__year-option:last-of-type,.react-datepicker__month-option:last-of-type,.react-datepicker__month-year-option:last-of-type{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;border-bottom-left-radius:.3rem;border-bottom-right-radius:.3rem}.react-datepicker__year-option:hover,.react-datepicker__month-option:hover,.react-datepicker__month-year-option:hover{background-color:#ccc}.react-datepicker__year-option:hover .react-datepicker__navigation--years-upcoming,.react-datepicker__month-option:hover .react-datepicker__navigation--years-upcoming,.react-datepicker__month-year-option:hover .react-datepicker__navigation--years-upcoming{border-bottom-color:#b3b3b3}.react-datepicker__year-option:hover .react-datepicker__navigation--years-previous,.react-datepicker__month-option:hover .react-datepicker__navigation--years-previous,.react-datepicker__month-year-option:hover .react-datepicker__navigation--years-previous{border-top-color:#b3b3b3}.react-datepicker__year-option--selected,.react-datepicker__month-option--selected,.react-datepicker__month-year-option--selected{position:absolute;left:15px}.react-datepicker__close-icon{cursor:pointer;background-color:transparent;border:0;outline:0;padding:0 6px 0 0;position:absolute;top:0;right:0;height:100%;display:table-cell;vertical-align:middle}.react-datepicker__close-icon:after{cursor:pointer;background-color:#216ba5;color:#fff;border-radius:50%;height:16px;width:16px;padding:2px;font-size:12px;line-height:1;text-align:center;display:table-cell;vertical-align:middle;content:"×"}.react-datepicker__close-icon--disabled{cursor:default}.react-datepicker__close-icon--disabled:after{cursor:default;background-color:#ccc}.react-datepicker__today-button{background:#f0f0f0;border-top:1px solid #aeaeae;cursor:pointer;text-align:center;font-weight:700;padding:5px 0;clear:left}.react-datepicker__portal{position:fixed;width:100vw;height:100vh;background-color:#000c;left:0;top:0;justify-content:center;align-items:center;display:flex;z-index:2147483647}.react-datepicker__children-container{width:17.25em;margin:.5em;padding-right:.25em;padding-left:.25em;height:auto}.react-datepicker__aria-live{position:absolute;clip-path:circle(0);border:0;height:1px;margin:-1px;overflow:hidden;padding:0;width:1px;white-space:nowrap}.react-datepicker__calendar-icon{width:1em;height:1em;vertical-align:-.125em}.react-datepicker-popper-offset{margin-top:-.7em}.app-date-wrapper{display:block;width:100%}.app-date-input{width:100%;box-sizing:border-box;padding:9px 12px;font-size:13px;font-family:var(--font-body);color:var(--ink);background:#fff;border:1.5px solid var(--border);border-radius:7px;outline:none;cursor:pointer;transition:border-color .15s,box-shadow .15s}.app-date-input:focus{border-color:var(--rust);box-shadow:0 0 0 3px #b84c2b1f}.app-date-popper{z-index:9999}.app-date-popper .react-datepicker{font-family:var(--font-body);background:#fffdf9;border:1.5px solid var(--border);border-radius:12px;box-shadow:0 8px 32px #0f0e0d1f,0 2px 8px #0f0e0d14;overflow:hidden;padding:0}.app-date-popper .react-datepicker__header{background:linear-gradient(135deg,var(--rust) 0%,#c96a3a 100%);border-bottom:none;padding:14px 12px 10px;border-radius:0}.app-date-popper .react-datepicker__current-month{font-family:var(--font-display);font-size:15px;font-weight:600;color:#fff;margin-bottom:8px;letter-spacing:.01em}.app-date-popper .react-datepicker__navigation{top:12px}.app-date-popper .react-datepicker__navigation-icon:before{border-color:#fffc;border-width:2px 2px 0 0;width:8px;height:8px}.app-date-popper .react-datepicker__navigation:hover .react-datepicker__navigation-icon:before{border-color:#fff}.app-date-popper .react-datepicker__day-names{display:flex;justify-content:space-around;margin:0}.app-date-popper .react-datepicker__day-name{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#ffffffbf;width:32px;line-height:1;text-align:center}.app-date-popper .react-datepicker__month{margin:8px 10px 10px}.app-date-popper .react-datepicker__week{display:flex;justify-content:space-around}.app-date-popper .react-datepicker__day{width:32px;height:32px;line-height:32px;margin:2px;border-radius:6px;font-size:13px;color:var(--ink);transition:background .12s,color .12s}.app-date-popper .react-datepicker__day:hover{background:#b84c2b1a;color:var(--rust);border-radius:6px}.app-date-popper .react-datepicker__day--selected,.app-date-popper .react-datepicker__day--selected:hover{background:var(--rust);color:#fff;font-weight:600;border-radius:6px}.app-date-popper .react-datepicker__day--today{font-weight:700;color:var(--rust);background:#b84c2b14;border-radius:6px}.app-date-popper .react-datepicker__day--today.react-datepicker__day--selected{color:#fff;background:var(--rust)}.app-date-popper .react-datepicker__day--outside-month{color:var(--muted);opacity:.45}.app-date-popper .react-datepicker__day--disabled{color:var(--muted);opacity:.3;cursor:not-allowed}.app-date-popper .react-datepicker__day--keyboard-selected{background:#b84c2b26;color:var(--rust);border-radius:6px}.unit-card{background:#fff;border:1px solid var(--border);border-radius:12px;padding:20px 22px 16px;display:flex;flex-direction:column;gap:10px;transition:box-shadow .2s,border-color .2s;position:relative;overflow:hidden}.unit-card:after{content:"";position:absolute;top:0;left:0;width:100%;height:4px;background:linear-gradient(90deg,var(--rust),var(--gold));opacity:.85}.unit-card--accent-0:after{background:linear-gradient(90deg,#b5451b,#d4845a)}.unit-card--accent-1:after{background:linear-gradient(90deg,#1e4d8c,#4a7fc4)}.unit-card--accent-2:after{background:linear-gradient(90deg,#166534,#4ead72)}.unit-card--accent-3:after{background:linear-gradient(90deg,#6b21a8,#a855f7)}.unit-card--accent-4:after{background:linear-gradient(90deg,#9a3412,#f97316)}.unit-card:hover{box-shadow:0 8px 28px #2e22191a;border-color:#c8c0b4}.unit-card--hidden{opacity:.6}.unit-card--hidden:after{background:var(--border)}.unit-card-topbar{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:22px}.unit-card-vis{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:3px 9px;border-radius:999px}.unit-card-vis--on{background:#dcfce7;color:#166534;border:1px solid #86efac}.unit-card-vis--off{background:var(--cream);color:var(--muted);border:1px solid var(--border)}.unit-card-due{font-size:11px;font-weight:500;color:var(--muted);background:var(--cream);border:1px solid var(--border);padding:2px 8px;border-radius:999px;white-space:nowrap}.unit-card-due--late{color:var(--rust);background:#fff0ec;border-color:#f4c8ab}.unit-card-title{font-family:var(--font-display);font-size:19px;font-weight:600;color:var(--ink);line-height:1.3;cursor:pointer;transition:color .15s;margin-top:2px}.unit-card-title:hover{color:var(--rust)}.unit-card-context{font-size:13px;color:var(--muted);line-height:1.65;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;flex:1}.unit-card-context--empty{font-style:italic;color:#b0a898}.unit-card-progress{display:flex;gap:0;padding:10px 0 4px;border-top:1px solid var(--border);margin-top:4px}.unit-card-progress-item{display:flex;align-items:center;gap:6px;flex:1;padding:0 4px}.unit-card-progress-item--done .unit-card-progress-label{color:#166534;font-weight:600}.unit-card-progress-dot{width:8px;height:8px;border-radius:50%;border:1.5px solid var(--border);background:transparent;flex-shrink:0;transition:background .2s,border-color .2s}.unit-card-progress-dot--done{background:#166534;border-color:#166534}.unit-card-progress-label{font-size:11px;font-weight:500;color:var(--muted)}.unit-card-footer{display:flex;align-items:center;justify-content:space-between;margin-top:6px;padding-top:12px;border-top:1px solid var(--border);gap:8px}.unit-card-teacher-actions{display:flex;gap:6px}.unit-card-btn{font-family:var(--font-body);font-size:12px;font-weight:600;padding:7px 14px;border-radius:6px;border:none;cursor:pointer;transition:background .15s,color .15s,opacity .15s;letter-spacing:.02em}.unit-card-btn--primary{background:var(--ink);color:#fff;padding:8px 18px;font-size:13px}.unit-card-btn--primary:hover{background:#2a2622}.unit-card-btn--ghost{background:transparent;color:var(--muted);border:1px solid var(--border)}.unit-card-btn--ghost:hover{background:var(--cream);color:var(--ink)}.unit-card-btn--danger{background:transparent;color:#c0392b;border:1px solid rgba(192,57,43,.2)}.unit-card-btn--danger:hover{background:#fdecea;border-color:#c0392b}.db-main{padding-top:32px}.db-header{margin-bottom:28px;display:flex;flex-direction:column;gap:18px}.db-header-main{max-width:760px}.db-metrics-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.db-metric{display:flex;flex-direction:column;gap:6px;padding:14px 16px;border:1px solid var(--border);border-radius:12px;background:linear-gradient(180deg,#fffffff5,#f8f2e9f2);box-shadow:0 10px 28px #59381e0d}.db-metric--warm{border-color:#b84c2b33}.db-metric--cool{border-color:#3a72b92e}.db-metric--success{border-color:#27ae6033}.db-metric-label{font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.db-metric-value{font-family:var(--font-display);font-size:28px;color:var(--ink);line-height:1}.db-metric-hint{font-size:12px;color:var(--muted)}.db-layout{display:grid;grid-template-columns:1fr 300px;gap:28px;align-items:start}.db-feed{min-width:0}.db-focus-panel{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:22px 24px;margin-bottom:18px;border:1px solid rgba(184,76,43,.12);border-radius:16px;background:radial-gradient(circle at top right,rgba(201,168,76,.16),transparent 36%),linear-gradient(135deg,#fffaf3,#f4ece2);box-shadow:0 16px 36px #59381e14}.db-focus-label{display:inline-block;margin-bottom:8px;font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--rust)}.db-focus-title{margin:0;font-family:var(--font-display);font-size:28px;line-height:1.15;color:var(--ink)}.db-focus-copy{margin:8px 0 0;max-width:680px;font-size:14px;line-height:1.7;color:var(--muted)}.db-focus-btn{flex-shrink:0;padding-inline:18px}.db-tabs{display:flex;gap:4px;margin-bottom:20px;border-bottom:2px solid var(--border)}.db-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-bottom:18px}.db-search{flex:1;min-width:0;display:flex;align-items:center;gap:10px;padding:11px 14px;border:1px solid var(--border);border-radius:999px;background:#ffffffdb}.db-search:focus-within{border-color:#b84c2b52;box-shadow:0 0 0 4px #b84c2b14}.db-search-icon{font-size:14px;color:var(--muted);flex-shrink:0}.db-search input{width:100%;min-width:0;border:none;background:transparent;outline:none;font:inherit;color:var(--ink)}.db-search input::placeholder{color:#8e8174}.db-filter-pills{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.db-filter-pill{border:1px solid var(--border);background:#fff;color:var(--muted);border-radius:999px;padding:9px 13px;font-size:12px;font-weight:600;font-family:var(--font-body);cursor:pointer;transition:border-color .15s,background .15s,color .15s}.db-filter-pill:hover{background:var(--cream);color:var(--ink)}.db-filter-pill--active{background:#b84c2b1a;border-color:#b84c2b3d;color:var(--rust)}.db-tab{display:flex;align-items:center;gap:7px;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;padding:10px 16px;font-family:var(--font-body);font-size:14px;font-weight:500;color:var(--muted);cursor:pointer;transition:color .15s}.db-tab:hover{color:var(--ink)}.db-tab--active{color:var(--rust);border-bottom-color:var(--rust)}.db-tab-count{font-size:11px;font-weight:700;background:var(--rust);color:#fff;border-radius:999px;padding:1px 7px;min-width:20px;text-align:center}.db-tab-count--done{background:#27ae60}.sg{margin-bottom:18px}.sg-header{width:100%;display:flex;align-items:center;gap:10px;padding:10px 14px;background:var(--cream);border:1px solid var(--border);border-radius:8px 8px 0 0;cursor:pointer;font-family:var(--font-body);transition:background .15s;margin-bottom:0}.sg:not(:has(.sg-grid)) .sg-header{border-radius:8px}.sg-header:hover{background:#e8e1d4}.sg-header--urgent{background:#b84c2b12;border-color:#b84c2b40}.sg-header--urgent:hover{background:#b84c2b1f}.sg-label{flex:1;font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--ink)}.sg-header--urgent .sg-label{color:var(--rust)}.sg-count{font-size:11px;font-weight:700;background:#1110091a;color:var(--ink);border-radius:999px;padding:2px 8px}.sg-header--urgent .sg-count{background:#b84c2b26;color:var(--rust)}.sg-chevron{font-size:18px;color:var(--muted);line-height:1;transition:transform .18s}.sg-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:10px;padding:12px;background:#ffffff80;border:1px solid var(--border);border-top:none;border-radius:0 0 8px 8px}.submitted-groups{display:flex;flex-direction:column;gap:18px}.submitted-group{border-radius:12px}.submitted-group-header{display:flex;align-items:center;justify-content:center;position:relative;gap:12px;padding:10px 14px;border:1px solid var(--border);border-bottom:none;border-radius:8px 8px 0 0;background:var(--cream)}.submitted-group--assignment .submitted-group-header{background:#b84c2b12;border-color:#b84c2b33}.submitted-group--quiz .submitted-group-header{background:#c9a84c1a;border-color:#c9a84c47}.submitted-group-heading{display:flex;align-items:center;justify-content:center;gap:10px;min-width:0;flex:1}.submitted-group-badge{flex-shrink:0;font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:4px 9px;border-radius:999px}.submitted-group-badge--assignment{background:#b84c2b24;color:var(--rust);border:1px solid rgba(184,76,43,.18)}.submitted-group-badge--quiz{background:#c9a84c2e;color:#7a5c00;border:1px solid rgba(201,168,76,.26)}.submitted-group-title{margin:0;font-family:var(--font-body);font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--ink)}.submitted-group-count{position:absolute;right:14px;top:50%;transform:translateY(-50%);flex-shrink:0;font-size:11px;font-weight:700;background:#1110091a;color:var(--ink);border-radius:999px;padding:2px 8px;letter-spacing:.04em}.submitted-group-grid{border-top:1px solid var(--border)}.submitted-group--assignment .submitted-group-grid{border-color:#b84c2b33}.submitted-group--quiz .submitted-group-grid{border-color:#c9a84c47}.wc{display:flex;background:#fff;border:1px solid var(--border);border-radius:10px;overflow:hidden;cursor:pointer;transition:box-shadow .18s,border-color .18s,transform .18s;position:relative}.wc:hover{box-shadow:0 6px 20px #1110091a;border-color:#c4bcb0;transform:translateY(-1px)}.wc--overdue{border-color:#b84c2b4d;background:#fffbf8}.wc--today{border-color:#c9a84c73}.wc-bar{width:4px;flex-shrink:0}.wc-bar--assignment{background:linear-gradient(180deg,var(--rust),var(--rust-dark))}.wc-bar--quiz{background:linear-gradient(180deg,var(--gold),#a07a25)}.wc-body{flex:1;padding:14px 16px;min-width:0;display:flex;flex-direction:column;gap:6px}.wc-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.wc-type-badge{font-size:10px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;padding:2px 8px;border-radius:3px;flex-shrink:0}.wc-type-badge--assignment{background:#b84c2b1a;color:var(--rust);border:1px solid rgba(184,76,43,.2)}.wc-type-badge--quiz{background:#c9a84c1f;color:#7a5c00;border:1px solid rgba(201,168,76,.3)}.wc-status{font-size:11px;font-weight:600;padding:3px 9px;border-radius:999px;white-space:nowrap}.wc-status--done{background:#eaf6ea;color:#1e7a3a}.wc-status--overdue{background:#b84c2b1a;color:var(--rust);border:1px solid rgba(184,76,43,.2)}.wc-status--today{background:#fff3cd;color:#856404;border:1px solid #ffe082}.wc-status--soon{background:#fff8e6;color:#a06000;border:1px solid #ffd06a}.wc-status--upcoming{background:var(--cream);color:var(--muted);border:1px solid var(--border)}.wc-status--done{display:flex;align-items:center;gap:5px}.wc-grade{font-size:13px;font-weight:700}.wc-score{font-size:11px;color:var(--muted);font-weight:500}.wc-title{font-family:var(--font-display);font-size:15px;font-weight:600;color:var(--ink);line-height:1.3;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.wc-meta{display:flex;align-items:center;gap:5px;font-size:12px;color:var(--muted);overflow:hidden}.wc-meta-class{font-weight:500;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wc-meta-sep{flex-shrink:0}.wc-meta-unit{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wc-footer{display:flex;align-items:center;justify-content:space-between;margin-top:4px}.wc-date{font-size:11px;color:var(--muted)}.wc-action{font-size:12px;font-weight:500;color:var(--rust)}.db-empty{text-align:center;padding:48px 24px;border:1px dashed var(--border);border-radius:10px;background:#ffffff80}.db-empty-icon{font-size:36px;margin-bottom:12px;line-height:1}.db-empty h3{font-family:var(--font-display);font-size:20px;color:var(--ink);margin-bottom:6px}.db-empty p{font-size:14px;color:var(--muted)}.db-panel{position:sticky;top:calc(var(--nav-h) + 24px);display:flex;flex-direction:column;gap:0}.db-panel-section{background:#fff;border:1px solid var(--border);border-radius:10px;padding:18px;margin-bottom:14px}.db-panel-label{font-size:10px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:14px}.db-stats{display:flex;align-items:center;background:linear-gradient(180deg,#fffdf9,#f5ede2);border:1px solid rgba(184,76,43,.14);border-radius:10px;padding:18px 16px;margin-bottom:14px;box-shadow:0 10px 24px #59381e0f}.db-stat{flex:1;display:flex;flex-direction:column;align-items:center;gap:3px}.db-stat-value{font-family:var(--font-display);font-size:26px;font-weight:600;color:var(--ink);line-height:1}.db-stat-label{font-size:10px;font-weight:500;text-transform:uppercase;letter-spacing:.08em;color:#7e7061}.db-stat-div{width:1px;height:36px;background:#5e432b24;flex-shrink:0}.db-week-list{display:flex;flex-direction:column;gap:8px}.db-week-item{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:6px;cursor:pointer;transition:background .12s;border:1px solid transparent}.db-week-item:hover{background:var(--cream);border-color:var(--border)}.db-week-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0}.db-week-dot--assignment{background:var(--rust)}.db-week-dot--quiz{background:var(--gold)}.db-week-info{flex:1;min-width:0;display:flex;flex-direction:column}.db-week-name{font-size:13px;font-weight:500;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.db-week-class{font-size:11px;color:var(--muted)}.db-week-days{font-size:11px;font-weight:700;color:var(--muted);background:var(--cream);border-radius:4px;padding:2px 6px;white-space:nowrap;flex-shrink:0}.db-week-days--today{background:#fff3cd;color:#856404}.db-week-days--soon{background:#b84c2b1a;color:var(--rust)}.db-class-list{display:flex;flex-direction:column;gap:6px}.db-class-item{display:flex;align-items:center;gap:10px;padding:11px 12px;border-radius:8px;cursor:pointer;border:1px solid var(--border);background:#fff;transition:background .12s,border-color .12s,box-shadow .12s}.db-class-item:hover{background:#fcf8f1;border-color:#d7cabb;box-shadow:0 6px 16px #59381e0d}.db-class-dot{display:none}.db-class-info{flex:1;min-width:0;display:flex;flex-direction:column}.db-class-name{font-size:13px;font-weight:600;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.db-class-meta{font-size:11px;color:var(--muted)}.db-class-arrow{font-size:16px;color:#8a7c6f;flex-shrink:0}.db-join-form{display:flex;gap:7px}.db-join-form input{flex:1;padding:9px 11px;font-size:13px;font-family:Courier New,monospace;letter-spacing:.1em;text-transform:uppercase;border:1px solid var(--border);border-radius:4px;outline:none;background:#fff;color:var(--ink);transition:border-color .15s,box-shadow .15s;min-width:0}.db-join-form input:focus{border-color:var(--rust);box-shadow:0 0 0 3px #b84c2b1a}.db-join-form .btn{padding:9px 14px;font-size:12px;flex-shrink:0}@media(max-width:900px){.db-metrics-grid,.classroom-summary-grid,.student-unit-quicknav{grid-template-columns:repeat(2,minmax(0,1fr))}.db-layout{grid-template-columns:1fr}.classroom-hero,.student-unit-hero,.db-focus-panel,.db-toolbar{flex-direction:column;align-items:stretch}.classroom-units-header{flex-direction:column;align-items:flex-start}.db-panel{position:static}.db-stats{order:-1}.submitted-group-header{align-items:flex-start;flex-direction:column;justify-content:flex-start}.submitted-group-heading{justify-content:flex-start;width:100%}.submitted-group-count{position:static;transform:none}}@media(max-width:640px){.db-metrics-grid,.classroom-summary-grid,.student-unit-quicknav{grid-template-columns:1fr}}.student-classroom-card{background:#fff;border:1px solid var(--border);border-radius:6px;padding:22px 24px 18px;cursor:pointer;display:flex;flex-direction:column;gap:8px;transition:box-shadow .2s,border-color .2s;position:relative;overflow:hidden}.student-classroom-card:before{content:"";position:absolute;top:0;left:0;width:100%;height:3px;background:linear-gradient(90deg,var(--gold),var(--rust))}.student-classroom-card:hover{box-shadow:0 6px 24px #00000017;border-color:#c8c0b4}.student-classroom-card-name{font-family:var(--font-display);font-size:20px;font-weight:600;color:var(--ink);line-height:1.25}.student-classroom-card-meta{font-size:12px;color:var(--muted)}.classroom-hero,.student-unit-hero{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;padding:22px 24px;margin-bottom:18px;border:1px solid var(--border);border-radius:18px;background:radial-gradient(circle at top right,rgba(201,168,76,.14),transparent 34%),linear-gradient(135deg,#fffaf4,#f3ebe1);box-shadow:0 14px 34px #59381e12}.classroom-hero-copy,.student-unit-hero-copy{max-width:780px}.classroom-hero-actions,.student-unit-meta{display:flex;align-items:flex-start;gap:10px;flex-wrap:wrap}.classroom-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:24px}.classroom-summary-card{display:flex;flex-direction:column;gap:6px;padding:16px;border:1px solid var(--border);border-radius:14px;background:#ffffffeb}.classroom-summary-card--warm{border-color:#b84c2b33}.classroom-summary-card--cool{border-color:#3a72b92e}.classroom-summary-card--success{border-color:#27ae602e}.classroom-summary-label{font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.classroom-summary-value{font-family:var(--font-display);font-size:28px;color:var(--ink);line-height:1}.classroom-summary-copy{font-size:12px;color:var(--muted)}.classroom-units-shell{display:flex;flex-direction:column;gap:16px}.classroom-units-header{display:flex;align-items:flex-end;justify-content:space-between;gap:18px}.classroom-units-title{margin:0;font-family:var(--font-display);font-size:28px;color:var(--ink)}.classroom-units-copy{max-width:460px;margin:0;font-size:14px;line-height:1.7;color:var(--muted)}.student-unit-meta-pill{padding:7px 12px;border-radius:999px;border:1px solid var(--border);background:#ffffffd6;font-size:12px;font-weight:600;color:var(--muted)}.student-unit-meta-pill--due{border-color:#b84c2b38;color:var(--rust)}.student-unit-quicknav{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:20px}.student-unit-quicknav-card{display:flex;flex-direction:column;gap:6px;padding:16px;text-align:left;border:1px solid var(--border);border-radius:14px;background:#ffffffeb;cursor:pointer;transition:transform .15s,border-color .15s,box-shadow .15s}.student-unit-quicknav-card:hover{transform:translateY(-1px);border-color:#b84c2b3d;box-shadow:0 12px 28px #59381e0f}.student-unit-quicknav-card--active{border-color:#b84c2b47;background:linear-gradient(180deg,#b84c2b14,#fffffff5)}.student-unit-quicknav-eyebrow{font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.student-unit-quicknav-title{font-size:16px;color:var(--ink)}.student-unit-quicknav-copy{font-size:12px;line-height:1.6;color:var(--muted)}.join-form{display:flex;gap:8px;align-items:center;max-width:360px}.join-form input{flex:1;padding:10px 13px;font-size:14px;font-family:Courier New,monospace;letter-spacing:.12em;text-transform:uppercase;border:1px solid var(--border);border-radius:4px;outline:none;background:#fff;color:var(--ink);transition:border-color .15s,box-shadow .15s}.join-form input:focus{border-color:var(--rust);box-shadow:0 0 0 3px #b84c2b1f}.notes-content{background:#fff;border:1px solid var(--border);border-radius:6px;padding:36px 40px;font-size:15px;line-height:1.9;color:var(--ink);white-space:pre-wrap;word-break:break-word}.notes-content h1,.notes-content h2,.notes-content h3{font-family:var(--font-display);color:var(--ink);margin:28px 0 10px}.notes-content h1{font-size:26px}.notes-content h2{font-size:21px}.notes-content h3{font-size:17px}.notes-content p{margin-bottom:14px}.notes-content ul,.notes-content ol{padding-left:24px;margin-bottom:14px}.notes-content li{margin-bottom:4px}.notes-content strong{font-weight:600}.notes-content em{font-style:italic}.persona-tabs{display:flex;gap:10px;margin-bottom:18px;flex-wrap:wrap}.persona-tab{display:flex;align-items:center;gap:8px;padding:9px 16px;border-radius:999px;border:1px solid rgba(125,96,67,.16);background:linear-gradient(180deg,#fffffffa,#f8f2eafa);color:var(--muted);font-size:13px;font-weight:600;cursor:pointer;box-shadow:0 8px 20px #3425180d,inset 0 1px #ffffffc7;transition:border-color .18s,color .18s,background .18s,transform .18s,box-shadow .18s}.persona-tab:hover{border-color:#b84c2b57;color:var(--ink);transform:translateY(-1px);box-shadow:0 12px 24px #34251814}.persona-tab--active{border-color:#b84c2b6b;background:linear-gradient(135deg,var(--rust) 0%,#cc7444 100%);color:#fff;box-shadow:0 14px 28px #b84c2b33}.persona-tab-emoji{font-size:16px;line-height:1}.persona-chat-wrap{position:relative;border-radius:22px;overflow:hidden;border:1px solid rgba(119,98,73,.16);box-shadow:0 24px 56px #21191214,0 4px 14px #2119120a;background:linear-gradient(180deg,#fffffffc,#f9f4ecfa)}.warp-overlay{position:absolute;inset:0;z-index:10;display:flex;align-items:center;justify-content:center;border-radius:22px;pointer-events:all;cursor:default;overflow:hidden;background:radial-gradient(ellipse 80% 70% at 50% 50%,#f5eee2f7,#e8dcccfa);animation:warpIn .44s cubic-bezier(.22,1,.36,1) both}.warp-overlay--exit{animation:warpOut .72s cubic-bezier(.4,0,.2,1) forwards}.warp-vignette{position:absolute;inset:0;border-radius:inherit;background:radial-gradient(ellipse 90% 80% at 50% 50%,transparent 45%,rgba(89,56,30,.1) 100%);pointer-events:none}.warp-clock-ghost{position:absolute;width:clamp(220px,38vw,340px);aspect-ratio:1;border-radius:50%;border:1.5px solid rgba(94,67,43,.14);background:radial-gradient(circle at 38% 34%,rgba(255,255,255,.28) 0%,rgba(229,216,198,.18) 60%,transparent 100%)}.warp-clock-ring{position:absolute;border-radius:50%;border:.75px solid rgba(94,67,43,.09);pointer-events:none}.warp-clock-ring--outer{inset:8px}.warp-clock-ring--inner{inset:18px}.warp-clock-canvas{position:absolute;inset:0;width:100%;height:100%;opacity:.45}.warp-hand{position:absolute;left:50%;bottom:50%;transform-origin:50% 100%;transform:translate(-50%) rotate(0);border-radius:999px;will-change:transform}.warp-hand--hour{width:4px;height:22%;background:#34211233}.warp-hand--minute{width:2.5px;height:32%;background:#34211226}.warp-hand--second{width:1.5px;height:38%;background:#b84c2b52}.warp-clock-center{position:absolute;top:50%;left:50%;width:12px;height:12px;border-radius:50%;transform:translate(-50%,-50%);background:#5e432b38;border:1.5px solid rgba(255,255,255,.5)}.warp-year-display{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:6px;pointer-events:none;user-select:none;-webkit-user-select:none}.warp-year-label{font-size:9px;font-weight:600;letter-spacing:.4em;text-transform:uppercase;color:#5e432b8c;font-family:var(--font-body, sans-serif)}.warp-year-number{font-family:var(--font-display, Georgia, serif);font-size:clamp(72px,11vw,138px);font-weight:400;line-height:1;letter-spacing:-.02em;color:var(--ink, #1c130b);font-variant-numeric:tabular-nums lining-nums}.warp-year-divider{width:80px;height:1px;background:#5e432b2e}.warp-year-era{font-size:10px;font-weight:600;letter-spacing:.35em;text-transform:uppercase;color:#5e432b73;font-family:var(--font-body, sans-serif)}.persona-header{display:flex;align-items:center;gap:16px;padding:22px 24px 18px;background:radial-gradient(circle at top right,rgba(201,168,76,.12),transparent 30%),linear-gradient(180deg,#f7f1e8fa,#f0e8dbfa);border-bottom:1px solid rgba(118,96,72,.12)}.persona-header-avatar{width:54px;height:54px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#ffffffe0,#b84c2b1a);border:1px solid rgba(184,76,43,.22);display:flex;align-items:center;justify-content:center;font-size:24px;flex-shrink:0;box-shadow:inset 0 1px #ffffffa8}.persona-header-info{display:flex;flex-direction:column;gap:4px;min-width:0}.persona-header-name{font-family:var(--font-display);font-size:24px;color:var(--ink);font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.persona-header-meta{font-size:12px;color:#5e4d3cdb;line-height:1.45}.persona-progress{display:flex;flex-direction:column;align-items:flex-end;gap:8px}.persona-progress-label{font-size:11px;color:#5e4d3ccc;letter-spacing:.08em;text-transform:uppercase;white-space:nowrap}.persona-progress-bar{width:150px;height:6px;background:#7d624624;border-radius:999px;overflow:hidden}.persona-progress-fill{height:100%;background:linear-gradient(90deg,var(--rust),var(--gold));border-radius:inherit;transition:width .35s ease}.chat-messages{display:flex;flex-direction:column;gap:18px;min-height:340px;max-height:500px;overflow-y:auto;padding:26px 24px;background:radial-gradient(circle at top left,rgba(201,168,76,.1),transparent 28%),linear-gradient(180deg,#fcfaf5,#f7f1e8);scrollbar-width:thin;scrollbar-color:var(--border) transparent}.chat-messages::-webkit-scrollbar{width:4px}.chat-messages::-webkit-scrollbar-track{background:transparent}.chat-messages::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.chat-empty-hint{color:var(--muted);font-size:14px;text-align:center;margin:auto;font-style:italic;max-width:38ch;line-height:1.7}.chat-bubble{display:flex;flex-direction:column;max-width:min(78%,620px);opacity:0;transform:translateY(18px) scale(.985);animation:student-chat-bubble-in .48s cubic-bezier(.2,.85,.2,1) forwards;animation-delay:calc(var(--chat-bubble-index, 0) * .04s)}.chat-bubble--user{align-self:flex-end;align-items:flex-end}.chat-bubble--assistant{align-self:flex-start;align-items:flex-start}.chat-bubble--loading{animation-duration:.32s}.chat-bubble-sender{font-size:11px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:6px}.chat-bubble-text{padding:14px 16px;border-radius:18px;font-size:14px;line-height:1.7;white-space:pre-wrap;border:1px solid rgba(124,97,69,.12);box-shadow:0 10px 24px #2c1f150d;transition:transform .22s ease,box-shadow .22s ease,border-color .22s ease}.chat-bubble--user .chat-bubble-text{background:linear-gradient(135deg,#2d241d,#17120f);color:var(--parchment);border-color:#130e0b38;border-bottom-right-radius:8px}.chat-bubble--assistant .chat-bubble-text{background:#fffdf9f5;color:var(--ink);border:1px solid rgba(124,97,69,.12);border-left:3px solid rgba(184,76,43,.52);border-bottom-left-radius:8px}.chat-bubble:hover .chat-bubble-text{transform:translateY(-2px);box-shadow:0 16px 28px #2c1f1514}.chat-bubble-text--typing{display:flex;align-items:center;gap:5px;padding:15px 18px}.chat-bubble-text--typing span{width:6px;height:6px;border-radius:50%;background:var(--muted);animation:typingDot 1.2s ease-in-out infinite}.chat-bubble-text--typing span:nth-child(2){animation-delay:.2s}.chat-bubble-text--typing span:nth-child(3){animation-delay:.4s}@keyframes student-chat-bubble-in{0%{opacity:0;transform:translateY(18px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}.chat-bubble-text--markdown{white-space:normal}.chat-bubble-text--markdown p{margin:0}.chat-bubble-text--markdown p+p,.chat-bubble-text--markdown ul+p,.chat-bubble-text--markdown p+ul,.chat-bubble-text--markdown h1+p,.chat-bubble-text--markdown h2+p,.chat-bubble-text--markdown h3+p{margin-top:8px}.chat-bubble-text--markdown h1,.chat-bubble-text--markdown h2,.chat-bubble-text--markdown h3{font-family:var(--font-display);line-height:1.25;margin:0}.chat-bubble-text--markdown h1{font-size:18px}.chat-bubble-text--markdown h2{font-size:16px}.chat-bubble-text--markdown h3{font-size:14px;font-weight:700}.chat-bubble-text--markdown ul,.chat-bubble-text--markdown ol{margin:8px 0 0 18px;padding:0}.chat-bubble-text--markdown li+li{margin-top:4px}.chat-bubble-text--markdown code{font-family:Consolas,Courier New,monospace;font-size:12px;background:#0f0e0d0f;padding:2px 6px;border-radius:5px}.chat-input-row{display:flex;align-items:flex-end;gap:12px;padding:16px 18px 18px;background:linear-gradient(180deg,#f5eee4f0,#f1e8dbfa);border-top:1px solid rgba(118,96,72,.12)}.chat-input{flex:1;min-height:56px;padding:14px 16px;font-size:14px;font-family:var(--font-body);border:1px solid rgba(121,96,70,.16);border-radius:14px;outline:none;background:#fff;color:var(--ink);box-shadow:inset 0 1px #ffffffd1;transition:border-color .15s,box-shadow .15s,background .15s;resize:none}.chat-input::placeholder{color:var(--muted);opacity:.6}.chat-input:focus{border-color:var(--rust);box-shadow:0 0 0 3px #b84c2b1a,inset 0 1px #ffffffd1}.chat-send-btn{align-self:stretch;min-width:96px;justify-content:center;border-radius:14px;box-shadow:0 14px 24px #b84c2b2e}.chat-completed-banner{text-align:center;padding:13px 20px;background:linear-gradient(180deg,#2a7a2a14,#2a7a2a0a);border-top:1px solid rgba(42,122,42,.12);font-size:13px;color:#2a6e2a;font-weight:600;letter-spacing:.02em}.persona-header-badges{display:flex;align-items:center;gap:6px;margin-top:4px}.persona-mode-badge{display:inline-flex;align-items:center;gap:4px;font-size:10px;font-weight:600;letter-spacing:.06em;padding:3px 9px;border-radius:999px;line-height:1.4}.persona-mode-badge--free{background:#6464641a;color:#666}.persona-mode-badge--missions{background:#b84c2b1f;color:var(--rust)}.persona-mode-badge--quiz{background:#2c5aa01a;color:#2c5aa0}.persona-header-right{display:flex;flex-direction:column;align-items:flex-end;gap:10px;margin-left:auto;flex-shrink:0}.missions-fab{display:inline-flex;align-items:center;gap:7px;padding:7px 13px 7px 10px;border-radius:999px;border:1.5px solid rgba(184,76,43,.22);background:#b84c2b12;cursor:pointer;font-family:var(--font-body);font-size:12px;font-weight:600;color:var(--rust);transition:background .15s,border-color .15s,box-shadow .15s;white-space:nowrap}.missions-fab:hover{background:#b84c2b21;border-color:#b84c2b61;box-shadow:0 4px 12px #b84c2b1f}.missions-fab--done{border-color:#2a7a2a47;background:#2a7a2a14;color:#2a7a2a}.missions-fab--done:hover{background:#2a7a2a21;border-color:#2a7a2a66;box-shadow:0 4px 12px #2a7a2a1a}.missions-fab-icon{font-size:14px;line-height:1}.missions-fab-label{letter-spacing:.01em}.missions-fab-pill{background:var(--rust);color:#fff;font-size:10px;font-weight:700;padding:2px 7px;border-radius:999px;line-height:1.5}.missions-fab-pill--done{background:#2a7a2a}.missions-overlay{position:absolute;inset:0;z-index:5;border-radius:22px;background:#140e0a47;-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);animation:student-soft-fade-in .22s ease}.missions-drawer{position:absolute;top:0;right:0;bottom:0;width:300px;z-index:6;background:linear-gradient(180deg,#faf6f0,#f5ede2);border-left:1px solid rgba(119,98,73,.16);border-radius:0 22px 22px 0;display:flex;flex-direction:column;transform:translate(100%) scale(.985);opacity:0;transition:transform .32s cubic-bezier(.22,1,.36,1),opacity .22s ease,box-shadow .24s ease;box-shadow:-8px 0 32px #2119121a;overflow:hidden}.missions-drawer--open{transform:translate(0) scale(1);opacity:1;box-shadow:-18px 0 42px #21191226}.missions-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:18px 18px 14px;border-bottom:1px solid rgba(119,98,73,.12);background:linear-gradient(180deg,#f8f2e9f2,#f3eadcf2);flex-shrink:0}.missions-drawer-title{font-family:var(--font-display);font-size:17px;font-weight:600;color:var(--ink)}.missions-drawer-close{width:28px;height:28px;border-radius:50%;border:none;background:#7762491a;color:var(--muted);font-size:11px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .13s,color .13s}.missions-drawer-close:hover{background:#b84c2b1f;color:var(--rust)}.missions-drawer-progress{padding:14px 18px 12px;border-bottom:1px solid rgba(119,98,73,.1);flex-shrink:0}.missions-drawer-progress-text{display:flex;align-items:center;justify-content:space-between;font-size:11px;font-weight:600;color:var(--muted);margin-bottom:8px;letter-spacing:.04em}.missions-drawer-done-badge{background:#2a7a2a1f;color:#2a7a2a;padding:2px 8px;border-radius:999px;font-size:10px;font-weight:700}.missions-drawer-bar{height:4px;background:#7d62461f;border-radius:999px;overflow:hidden}.missions-drawer-bar-fill{height:100%;background:linear-gradient(90deg,var(--rust),var(--gold));border-radius:inherit;transition:width .4s ease}.missions-drawer-bar-fill--done{background:linear-gradient(90deg,#2a7a2a,#52b252)}.missions-drawer-list{flex:1;overflow-y:auto;padding:12px 14px;display:flex;flex-direction:column;gap:8px;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.missions-drawer-list::-webkit-scrollbar{width:3px}.missions-drawer-list::-webkit-scrollbar-track{background:transparent}.missions-drawer-list::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.missions-drawer-item{display:flex;align-items:flex-start;gap:10px;padding:11px 13px;border-radius:10px;border:1px solid rgba(119,98,73,.12);background:#ffffffb3;transition:background .18s,border-color .18s,transform .22s ease,box-shadow .22s ease;opacity:0;transform:translate(18px)}.missions-drawer--open .missions-drawer-item{animation:student-mission-item-in .42s cubic-bezier(.2,.85,.2,1) forwards;animation-delay:calc(.08s + var(--mission-item-index, 0) * .05s)}.missions-drawer-item--done{background:#2a7a2a0f;border-color:#2a7a2a2e}.missions-drawer-item:hover{transform:translate(-2px);box-shadow:0 12px 24px #3d2c1c14}.missions-drawer-item-left{display:flex;align-items:flex-start;gap:10px;width:100%}.missions-drawer-check{width:24px;height:24px;min-width:24px;border-radius:50%;border:2px solid var(--border);background:#fff;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:var(--muted);transition:background .2s,border-color .2s,color .2s;flex-shrink:0;margin-top:1px}@keyframes student-mission-item-in{0%{opacity:0;transform:translate(18px)}to{opacity:1;transform:translate(0)}}.missions-drawer-check--done{background:#2a7a2a;border-color:#2a7a2a;color:#fff;font-size:12px}.missions-drawer-item-text{font-size:13px;color:var(--ink);line-height:1.55}.missions-drawer-item--done .missions-drawer-item-text{color:var(--muted);text-decoration:line-through;text-decoration-color:#2a7a2a66}.missions-drawer-all-done{margin:0 14px 14px;text-align:center;padding:12px;background:#2a7a2a14;border:1px solid rgba(42,122,42,.2);border-radius:10px;font-size:13px;font-weight:600;color:#2a7a2a;line-height:1.5;flex-shrink:0}.chat-quiz-prompt{padding:28px 24px;border-top:1px solid var(--border);background:linear-gradient(180deg,#b5451b0d,#fff0);text-align:center;display:flex;flex-direction:column;align-items:center;gap:0}.chat-quiz-prompt-icon{font-size:32px;margin-bottom:10px;line-height:1}.chat-quiz-prompt-title{font-family:var(--font-display);font-size:20px;font-weight:600;color:var(--ink);margin-bottom:8px}.chat-quiz-prompt-body{font-size:13px;color:var(--muted);line-height:1.65;max-width:38ch;margin-bottom:18px}.pq-take{border-top:1px solid var(--border);display:flex;flex-direction:column}.pq-take-header{padding:22px 24px 18px;border-bottom:1px solid var(--border);background:linear-gradient(180deg,#f8f2e9e6,#fff0)}.pq-take-title{font-family:var(--font-display);font-size:20px;font-weight:600;color:var(--ink);margin-bottom:6px}.pq-take-sub{font-size:13px;color:var(--muted);line-height:1.6;margin-bottom:14px}.pq-take-bar-row{display:flex;align-items:center;gap:10px}.pq-take-bar{flex:1;height:5px;background:#7d62461f;border-radius:999px;overflow:hidden}.pq-take-bar-fill{height:100%;background:linear-gradient(90deg,var(--rust),var(--gold));border-radius:inherit;transition:width .3s ease}.pq-take-bar-label{font-size:11px;font-weight:600;color:var(--muted);white-space:nowrap}.pq-questions{padding:20px 24px;display:flex;flex-direction:column;gap:16px;overflow-y:auto;max-height:480px;scrollbar-width:thin;scrollbar-color:var(--border) transparent}.pq-questions::-webkit-scrollbar{width:4px}.pq-questions::-webkit-scrollbar-track{background:transparent}.pq-questions::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px}.pq-question{background:#fff;border:1px solid var(--border);border-radius:10px;padding:16px 18px}.pq-question-header{display:flex;align-items:center;gap:10px;margin-bottom:10px}.pq-question-num{width:26px;height:26px;border-radius:50%;background:var(--cream);border:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;color:var(--muted);flex-shrink:0}.pq-question-type{font-size:10px;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}.pq-question-text{font-size:14px;font-weight:600;color:var(--ink);line-height:1.55;margin-bottom:14px}.pq-options{display:flex;flex-direction:column;gap:8px}.pq-option{display:flex;align-items:center;gap:12px;padding:11px 14px;border-radius:8px;border:1.5px solid var(--border);background:#fff;cursor:pointer;transition:border-color .13s,background .13s;-webkit-user-select:none;user-select:none}.pq-option:hover{border-color:#b84c2b4d;background:var(--cream)}.pq-option--selected{border-color:var(--rust);background:#b84c2b0a}.pq-radio{width:16px;height:16px;min-width:16px;border-radius:50%;border:2px solid var(--border);transition:border-color .13s;flex-shrink:0}.pq-radio--checked{border-color:var(--rust);background:var(--rust);box-shadow:inset 0 0 0 3px #fff}.pq-option-text{font-size:13px;color:var(--ink);line-height:1.4}.pq-sa{width:100%;padding:10px 13px;font-size:14px;font-family:var(--font-body);color:var(--ink);background:#fff;border:1.5px solid var(--border);border-radius:8px;outline:none;resize:vertical;transition:border-color .15s,box-shadow .15s;box-sizing:border-box}.pq-sa:focus{border-color:var(--rust);box-shadow:0 0 0 3px #b84c2b1a}.pq-submit-row{display:flex;align-items:center;justify-content:space-between;padding:16px 24px;border-top:1px solid var(--border);background:linear-gradient(180deg,#f5eee4b3,#f1e8dbe6);gap:16px;flex-shrink:0}.pq-submit-hint{font-size:12px;color:var(--muted);font-style:italic}.pq-results{border-top:1px solid var(--border)}.pq-score-card{text-align:center;padding:28px 20px 22px;border-bottom:1px solid var(--border);background:linear-gradient(180deg,#f8f2e9cc,#fff0)}.pq-score-emoji{font-size:36px;margin-bottom:10px;line-height:1}.pq-score-num{font-family:var(--font-display);font-size:54px;font-weight:600;line-height:1;margin-bottom:8px}.pq-score--high{color:#2a7a2a}.pq-score--mid{color:#b8860b}.pq-score--low{color:#c0392b}.pq-score-label{font-size:14px;font-weight:600;color:var(--ink);margin-bottom:4px}.pq-score-sub{font-size:12px;color:var(--muted)}.pq-results-list{padding:18px 24px;display:flex;flex-direction:column;gap:10px}.pq-result-item{border-radius:10px;padding:14px 16px;border:1px solid var(--border);border-left-width:3px}.pq-result-item--correct{border-color:#c8e6c8;border-left-color:#2a7a2a;background:#f5fbf5}.pq-result-item--wrong{border-color:#f5c8c8;border-left-color:#c0392b;background:#fef7f7}.pq-result-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.pq-result-num{font-size:10px;font-weight:700;color:var(--muted);text-transform:uppercase;letter-spacing:.1em}.pq-result-badge{font-size:11px;font-weight:700;padding:2px 9px;border-radius:999px}.pq-result-badge--correct{background:#2a7a2a1f;color:#2a7a2a}.pq-result-badge--wrong{background:#c0392b1a;color:#c0392b}.pq-result-q{font-size:13px;font-weight:600;color:var(--ink);margin-bottom:8px;line-height:1.5}.pq-result-row{display:flex;gap:6px;font-size:12px;margin-bottom:3px;line-height:1.5}.pq-result-row-label{color:var(--muted);flex-shrink:0}.pq-ans--correct{color:#2a7a2a;font-weight:500}.pq-ans--wrong{color:#c0392b}.pq-result-feedback{font-size:11px;color:var(--muted);font-style:italic;margin-top:6px;line-height:1.5;padding-top:6px;border-top:1px solid rgba(0,0,0,.05)}@keyframes warpIn{0%{opacity:0;transform:scale(.988) translateY(6px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes warpOut{0%{opacity:1;transform:scale(1) translateY(0)}to{opacity:0;transform:scale(1.01) translateY(-5px)}}@keyframes typingDot{0%,60%,to{transform:translateY(0);opacity:.35}30%{transform:translateY(-5px);opacity:1}}.quiz-student-question{background:#fff;border:1px solid var(--border);border-radius:6px;padding:20px 24px;margin-bottom:14px;user-select:none;-webkit-user-select:none}.quiz-student-question-text{font-size:15px;font-weight:500;color:var(--ink);margin-bottom:14px;line-height:1.5;user-select:none;-webkit-user-select:none}.quiz-student-question-text--markdown p{margin:0}.quiz-student-question-text--markdown p+p,.quiz-student-question-text--markdown ul+p,.quiz-student-question-text--markdown ol+p,.quiz-student-question-text--markdown p+ul,.quiz-student-question-text--markdown p+ol{margin-top:10px}.quiz-student-question-text--markdown ul,.quiz-student-question-text--markdown ol{margin:10px 0 0 20px}.quiz-student-question-text--markdown li+li{margin-top:4px}.quiz-student-question-text--markdown strong{font-weight:600}.quiz-student-question-text--markdown em{font-style:italic}.quiz-student-question-text--markdown code{font-size:.92em;background:#0000000d;border-radius:3px;padding:1px 4px}.assignment-image-preview{margin:0 0 14px;border:1px solid rgba(115,96,72,.18);border-radius:14px;background:linear-gradient(180deg,#f8f4ed,#fff);box-shadow:0 12px 28px #271c1212;overflow:hidden}.assignment-image-preview-frame{display:flex;align-items:center;justify-content:center;padding:16px;background:radial-gradient(circle at top,rgba(184,76,43,.1),transparent 48%),linear-gradient(180deg,#ffffffb3,#f5efe6e6)}.assignment-image-preview-img{display:block;width:100%;max-height:360px;object-fit:contain;border-radius:10px;background:#fff;box-shadow:0 10px 30px #271c121f;cursor:zoom-in}.assignment-image-preview-actions{display:flex;justify-content:center;padding:10px 14px 14px}.assignment-image-preview-btn{border:1px solid rgba(184,76,43,.22);border-radius:999px;background:#b84c2b14;color:var(--rust-dark);padding:7px 14px;font-size:12px;font-weight:600;font-family:var(--font-body);cursor:pointer;transition:background .15s,border-color .15s,transform .15s}.assignment-image-preview-btn:hover{background:#b84c2b21;border-color:#b84c2b57;transform:translateY(-1px)}.assignment-image-preview-btn:active{transform:scale(.98)}.assignment-image-modal-overlay{position:fixed;inset:0;z-index:1200;display:flex;align-items:center;justify-content:center;padding:28px;background:#130e0ad1;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:assignment-image-backdrop-in .2s ease-out}.assignment-image-modal-shell{width:min(1280px,96vw);max-height:94vh;display:flex;flex-direction:column;border-radius:18px;overflow:hidden;background:#f8f4ed;border:1px solid rgba(255,255,255,.12);box-shadow:0 30px 80px #00000061;transform-origin:center center;animation:assignment-image-modal-in .26s cubic-bezier(.2,.85,.2,1)}.assignment-image-modal-header{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 18px;background:#fffffff5;border-bottom:1px solid rgba(115,96,72,.14)}.assignment-image-modal-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink);font-size:14px;font-weight:600}.assignment-image-modal-close{width:38px;height:38px;flex-shrink:0;border:1px solid rgba(115,96,72,.18);border-radius:999px;background:#fff;color:var(--ink);font-size:24px;line-height:1;cursor:pointer}.assignment-image-modal-body{flex:1;display:flex;align-items:center;justify-content:center;padding:20px;min-height:min(72vh,820px);overflow:auto;background:radial-gradient(circle at top,rgba(184,76,43,.14),transparent 36%),#f3ede4}.assignment-image-modal-img{display:block;width:100%;height:100%;max-width:none;max-height:none;object-fit:contain;border-radius:12px;background:#fff;box-shadow:0 18px 46px #271c1238;animation:assignment-image-content-in .3s cubic-bezier(.2,.85,.2,1)}@keyframes assignment-image-backdrop-in{0%{opacity:0}to{opacity:1}}@keyframes assignment-image-modal-in{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}@keyframes assignment-image-content-in{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}@media(max-width:720px){.warp-overlay{border-radius:16px}.warp-year-number{font-size:clamp(56px,16vw,100px)}.assignment-image-preview-frame{padding:12px}.assignment-image-preview-img{max-height:260px}.assignment-image-modal-overlay{padding:14px}.assignment-image-modal-header{padding:12px 14px}.assignment-image-modal-title{font-size:13px}.assignment-image-modal-body{padding:12px;min-height:calc(100vh - 120px)}.assignment-image-modal-img{width:100%;height:100%}}.quiz-options-list{display:flex;flex-direction:column;gap:8px}.quiz-option-btn{display:flex;align-items:center;gap:10px;padding:10px 14px;border:1px solid var(--border);border-radius:4px;background:#fff;cursor:pointer;font-size:14px;font-family:var(--font-body);color:var(--ink);text-align:left;transition:border-color .15s,background .15s;width:100%}.quiz-option-btn:hover:not(:disabled){border-color:var(--rust);background:#b84c2b0a}.quiz-option-btn--selected{border-color:var(--rust);background:#b84c2b14;color:var(--rust-dark);font-weight:500}.quiz-option-btn:disabled{cursor:default}.quiz-option-bullet{width:20px;height:20px;border-radius:50%;border:1.5px solid var(--border);flex-shrink:0;display:flex;align-items:center;justify-content:center;font-size:11px;transition:border-color .15s,background .15s}.quiz-option-btn--selected .quiz-option-bullet{border-color:var(--rust);background:var(--rust);color:#fff}.quiz-short-answer{width:100%;padding:10px 14px;font-size:14px;font-family:var(--font-body);border:1px solid var(--border);border-radius:4px;outline:none;resize:vertical;min-height:80px;transition:border-color .15s,box-shadow .15s}.quiz-short-answer:focus{border-color:var(--rust);box-shadow:0 0 0 3px #b84c2b1f}.quiz-result-score{text-align:center;padding:36px;background:#fff;border:1px solid var(--border);border-radius:6px;margin-bottom:24px}.quiz-result-score-value{font-family:var(--font-display);font-size:64px;font-weight:600;color:var(--rust);line-height:1}.quiz-result-score-label{font-size:14px;color:var(--muted);margin-top:8px}.file-drop-zone{border:1.5px dashed var(--border);border-radius:6px;padding:24px;text-align:center;cursor:pointer;transition:border-color .15s,background .15s;margin-bottom:14px}.file-drop-zone:hover,.file-drop-zone--active{border-color:var(--rust);background:#b84c2b08}.file-list{display:flex;flex-direction:column;gap:8px}.file-item{display:flex;align-items:center;gap:12px;padding:10px 14px;background:#fff;border:1px solid var(--border);border-radius:6px;transition:border-color .15s}.file-item:hover{border-color:#c8c0b4}.file-item-icon{font-size:20px;flex-shrink:0;line-height:1}.file-item-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.file-item-name{font-size:13px;font-weight:500;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.file-item-size{font-size:11px;color:var(--muted)}.quiz-essay-answer{width:100%;padding:16px 18px;font-size:14px;font-family:var(--font-body);line-height:1.8;color:var(--ink);background:#fff;border:1px solid var(--border);border-radius:4px;outline:none;resize:vertical;min-height:240px;transition:border-color .15s,box-shadow .15s}.quiz-essay-answer:focus{border-color:var(--rust);box-shadow:0 0 0 3px #b84c2b1a}.essay-writing-hints{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.essay-hint{font-size:11px;font-weight:500;padding:3px 8px;border-radius:3px;letter-spacing:.04em}.essay-hint--thesis{background:#fef3cd;color:#7a5c00;border:1px solid #f0c040}.essay-hint--evidence{background:#dbeafe;color:#1e4d8c;border:1px solid #93c5fd}.essay-hint--analysis{background:#dcfce7;color:#166534;border:1px solid #86efac}.essay-hint--counterclaim{background:#f3e8ff;color:#6b21a8;border:1px solid #c084fc}.essay-score-breakdown{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.essay-score-cell{background:var(--cream);border:1px solid var(--border);border-radius:4px;padding:10px 8px;text-align:center}.essay-score-label{font-size:10px;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}.essay-score-value{font-size:20px;font-weight:600;line-height:1}.essay-score-denom{font-size:11px;color:var(--muted);font-weight:400}.assignment-layout{display:grid;grid-template-columns:1fr 1fr;gap:32px;align-items:start}.assignment-sources-panel{position:sticky;top:calc(var(--nav-h) + 20px);max-height:calc(100vh - var(--nav-h) - 60px);overflow-y:auto;display:flex;flex-direction:column;gap:0;border:1px solid var(--border);border-radius:6px;background:#fff;scrollbar-width:thin}.assignment-sources-header{display:flex;align-items:center;justify-content:space-between;padding:14px 16px;font-family:var(--font-display);font-size:15px;font-weight:600;color:var(--ink);border-bottom:1px solid var(--border);background:var(--cream);border-radius:6px 6px 0 0;position:sticky;top:0;z-index:1}.assignment-questions-panel{display:flex;flex-direction:column}.assignment-source-block{border-bottom:1px solid var(--border)}.assignment-source-block:last-child{border-bottom:none}.assignment-source-toggle{width:100%;display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;background:transparent;border:none;cursor:pointer;text-align:left;transition:background .15s}.assignment-source-toggle:hover{background:var(--cream)}.assignment-source-toggle--active{background:#b84c2b0a}.assignment-source-toggle-title{font-size:13px;font-weight:500;color:var(--ink);line-height:1.4}.assignment-source-body{padding:14px 16px 16px;font-size:13px;line-height:1.85;color:var(--ink);white-space:pre-wrap;font-family:Georgia,serif;border-top:1px solid var(--border);margin-top:0}.assignment-student-badge{font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;padding:2px 7px;border-radius:3px;flex-shrink:0}.assignment-student-badge--primary{background:#b84c2b1a;color:var(--rust);border:1px solid rgba(184,76,43,.2)}.assignment-student-badge--secondary{background:#5082b41a;color:#2a5a8a;border:1px solid rgba(80,130,180,.2)}@media(max-width:900px){.persona-header{flex-wrap:wrap;align-items:flex-start}.persona-progress{width:100%;margin-left:0;align-items:flex-start}.persona-progress-bar{width:min(220px,100%)}.chat-bubble{max-width:88%}.assignment-layout{grid-template-columns:1fr}.assignment-sources-panel{position:relative;top:0;max-height:none}}.tabs{display:flex;gap:4px;border-bottom:2px solid var(--border);margin-bottom:28px}.tab-btn{background:none;border:none;padding:10px 18px;font-family:var(--font-body);font-size:14px;font-weight:500;color:var(--muted);cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-2px;transition:color .15s}.tab-btn:hover{color:var(--ink)}.tab-btn--active{color:var(--rust);border-bottom-color:var(--rust)}.quiz-short-answer,.quiz-essay-answer,.quiz-option-btn{user-select:text;-webkit-user-select:text}.student-quiz-browser{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.student-quiz-card{border:1px solid var(--border);border-radius:16px;background:linear-gradient(180deg,#fffdf8,#f8f1e8);padding:16px;text-align:left;cursor:pointer;transition:transform .15s,border-color .15s,box-shadow .15s}.student-quiz-card:hover{border-color:#b84c2b47;transform:translateY(-1px);box-shadow:0 10px 18px #59381e14}.student-quiz-card--active{border-color:#b84c2b6b;box-shadow:0 12px 22px #b84c2b1f}.student-quiz-card-top,.student-quiz-card-meta{display:flex;align-items:center;justify-content:space-between;gap:10px}.student-quiz-card-title{font-size:15px;font-weight:700;color:var(--ink);line-height:1.4}.student-quiz-card-status{font-size:11px;font-weight:700;border-radius:999px;padding:4px 8px;white-space:nowrap}.student-quiz-card-status--done{background:#eaf6ea;color:#2a7a2a}.student-quiz-card-status--open{background:#fff1e6;color:var(--rust)}.student-quiz-card-meta{margin-top:10px;font-size:11px;color:var(--muted)}.student-quiz-card-copy{margin-top:10px;font-size:13px;line-height:1.6;color:var(--ink)}.student-quiz-card-copy--muted{color:var(--muted);font-style:italic}.student-quiz-hero{display:flex;justify-content:space-between;gap:16px;padding:20px;border:1px solid var(--border);border-radius:16px;background:linear-gradient(135deg,#fffaf4,#f3ece3)}.student-quiz-hero h2{margin:6px 0 8px;font-family:var(--font-display);color:var(--ink)}.student-quiz-hero p{margin:0;max-width:700px;font-size:14px;line-height:1.7;color:var(--muted)}.student-quiz-hero-meta{display:flex;flex-direction:column;gap:8px;align-items:flex-end}.student-quiz-hero-meta span{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);background:#ffffffbf;border-radius:999px;padding:6px 10px}.student-quiz-guide-btn{display:flex;flex-direction:column;align-items:flex-start;gap:4px;margin-bottom:10px;padding:10px 12px;background:#fef3cd;border:1px solid #f0c040;border-radius:8px;cursor:pointer;font-size:12px;font-weight:700;color:#7a5c00;font-family:var(--font-body)}.student-quiz-guide-btn span{font-size:11px;font-weight:400}@media(max-width:800px){.student-quiz-hero{flex-direction:column}.student-quiz-hero-meta{align-items:flex-start}}.db-ai-panel{margin-bottom:20px;padding:22px 24px;border:1px solid rgba(34,88,142,.16);border-radius:16px;background:radial-gradient(circle at top left,rgba(88,142,196,.14),transparent 34%),linear-gradient(145deg,#f8fbff,#eef4f8);box-shadow:0 14px 32px #273e5514}.db-ai-panel-top{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:12px}.db-ai-label{display:inline-block;margin-bottom:8px;font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#2a5a8a}.db-ai-title{margin:0;font-family:var(--font-display);font-size:26px;line-height:1.15;color:var(--ink)}.db-ai-refresh{padding:8px 12px;border:1px solid rgba(42,90,138,.18);border-radius:999px;background:#fffc;font-size:12px;font-weight:600;color:#2a5a8a;cursor:pointer;font-family:var(--font-body)}.db-ai-refresh:disabled{cursor:default;opacity:.65}.db-ai-headline{margin:0 0 8px;font-size:15px;font-weight:600;color:var(--ink)}.db-ai-copy{margin:0;font-size:14px;line-height:1.7;color:var(--muted)}.db-ai-priority-list{display:flex;flex-direction:column;gap:10px;margin-top:16px}.db-ai-priority-item{display:flex;gap:12px;padding:12px 14px;border:1px solid rgba(42,90,138,.12);border-radius:12px;background:#ffffffc7}.db-ai-priority-index{width:26px;height:26px;display:inline-flex;align-items:center;justify-content:center;border-radius:50%;background:#2a5a8a1a;color:#2a5a8a;font-size:12px;font-weight:700;flex-shrink:0}.db-ai-priority-title{font-size:14px;font-weight:700;color:var(--ink)}.db-ai-priority-detail{margin-top:3px;font-size:13px;line-height:1.6;color:var(--muted)}.db-ai-watchout{margin-top:16px;padding:14px 16px;border-radius:12px;background:#b84c2b14;border:1px solid rgba(184,76,43,.16)}.db-ai-watchout-label{display:inline-block;margin-bottom:6px;font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--rust)}.db-ai-watchout p,.db-ai-fallback{margin:0;font-size:13px;line-height:1.6;color:var(--muted)}.db-ai-fallback{margin-top:12px}.student-unit-lock-link{opacity:.7}.student-unit-lock-banner{margin-bottom:16px;padding:12px 14px;border:1px solid rgba(184,76,43,.18);border-radius:12px;background:#b84c2b14;font-size:13px;font-weight:600;color:var(--rust)}.student-unit-quicknav-card--disabled,.student-unit-quicknav-card--disabled:hover{cursor:not-allowed;transform:none;box-shadow:none;border-color:var(--border);background:#f6f0e8cc;opacity:.58}.student-copilot-trigger{display:flex;flex-direction:column;align-items:flex-start;gap:3px;padding:10px 14px;border:1px solid rgba(42,90,138,.18);border-radius:14px;background:radial-gradient(circle at top left,rgba(88,142,196,.16),transparent 36%),#ffffffeb;box-shadow:0 10px 24px #273e5514;cursor:pointer;font-family:var(--font-body);text-align:left;transition:transform .24s ease,box-shadow .24s ease,border-color .24s ease,background-position .36s ease;background-size:150% 150%;animation:student-copilot-trigger-float 5.4s ease-in-out infinite}.student-copilot-trigger:hover{transform:translateY(-3px);border-color:#2a5a8a4d;box-shadow:0 18px 32px #273e5524;background-position:100% 0}.student-copilot-trigger-label{font-size:13px;font-weight:700;color:#2a5a8a}.student-copilot-trigger-copy{font-size:11px;line-height:1.5;color:var(--muted)}.student-copilot-overlay{position:fixed;inset:0;z-index:210;background:#12100b3d;animation:student-soft-fade-in .24s ease}.student-copilot-drawer{position:fixed;top:0;right:0;bottom:0;z-index:211;width:min(440px,100%);display:flex;flex-direction:column;background:radial-gradient(circle at top left,rgba(88,142,196,.08),transparent 28%),linear-gradient(180deg,#fff,#fbf8f2);box-shadow:-16px 0 44px #1d18122e;transform:translate(36px) scale(.985);opacity:0;animation:student-copilot-drawer-in .42s cubic-bezier(.2,.85,.2,1) forwards}.student-copilot-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 20px 14px;border-bottom:1px solid var(--border);opacity:0;transform:translateY(10px);animation:student-copilot-section-in .38s ease forwards;animation-delay:.12s}.student-copilot-title{font-family:var(--font-display);font-size:20px;color:var(--ink)}.student-copilot-subtitle{margin-top:4px;font-size:12px;color:var(--muted)}.student-copilot-close{border:none;background:none;padding:4px;font-size:20px;line-height:1;color:var(--muted);cursor:pointer;transition:transform .18s ease,color .18s ease,background .18s ease;border-radius:999px}.student-copilot-close:hover{transform:rotate(90deg);color:#2a5a8a;background:#2a5a8a14}.student-copilot-policy{margin:16px 20px 0;padding:12px 14px;border-radius:12px;border:1px solid rgba(184,76,43,.14);background:#b84c2b12;font-size:12px;line-height:1.6;color:var(--muted);opacity:0;transform:translateY(10px);animation:student-copilot-section-in .38s ease forwards;animation-delay:.18s}.student-copilot-policy strong{color:var(--rust)}.student-copilot-suggestions{display:flex;flex-wrap:wrap;gap:8px;padding:14px 20px 0;opacity:0;transform:translateY(10px);animation:student-copilot-section-in .38s ease forwards;animation-delay:.24s}.student-copilot-chip{border:1px solid var(--border);border-radius:999px;background:#fff;padding:8px 12px;font-size:12px;line-height:1.4;color:var(--ink);cursor:pointer;font-family:var(--font-body);opacity:0;transform:translateY(10px) scale(.98);animation:student-copilot-chip-in .38s cubic-bezier(.2,.85,.2,1) forwards;animation-delay:calc(.28s + var(--copilot-chip-index, 0) * .05s);transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease,background .2s ease}.student-copilot-chip:hover:not(:disabled){transform:translateY(-2px) scale(1.01);border-color:#2a5a8a3d;background:#588ec40f;box-shadow:0 10px 18px #273e5514}.student-copilot-chip:disabled{cursor:default;opacity:.6}.student-copilot-messages{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:12px;padding:18px 20px;opacity:0;transform:translateY(10px);animation:student-copilot-section-in .38s ease forwards;animation-delay:.3s}.student-copilot-message{max-width:88%;display:flex;flex-direction:column;gap:5px;opacity:0;transform:translateY(16px) scale(.985);animation:student-copilot-message-in .42s cubic-bezier(.2,.85,.2,1) forwards;animation-delay:calc(.34s + var(--copilot-message-index, 0) * .04s)}.student-copilot-message--assistant{align-self:flex-start}.student-copilot-message--user{align-self:flex-end}.student-copilot-message-role{font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}.student-copilot-message-body{padding:12px 14px;border-radius:16px;font-size:13px;line-height:1.7;box-shadow:0 10px 22px #2b22180d;transition:transform .22s ease,box-shadow .22s ease}.student-copilot-message--assistant .student-copilot-message-body{background:var(--cream);color:var(--ink);border-bottom-left-radius:6px}.student-copilot-message--user .student-copilot-message-body{background:var(--rust);color:#fff;border-bottom-right-radius:6px}.student-copilot-message:hover .student-copilot-message-body{transform:translateY(-2px);box-shadow:0 16px 28px #2b221814}.student-copilot-message-body--markdown>:first-child{margin-top:0}.student-copilot-message-body--markdown>:last-child{margin-bottom:0}.student-copilot-message-body--markdown p{margin-bottom:10px}.student-copilot-message-body--markdown ul,.student-copilot-message-body--markdown ol{margin:0 0 10px;padding-left:18px}.student-copilot-loading{padding:10px 14px;border-radius:16px 16px 16px 6px;background:linear-gradient(120deg,#ede8dcf2,#fffffffa,#ede8dcf2);background-size:180% 100%;animation:student-copilot-loading-wave 1.8s ease-in-out infinite}.student-copilot-input-row{display:flex;gap:10px;padding:16px 20px 18px;border-top:1px solid var(--border);opacity:0;transform:translateY(10px);animation:student-copilot-section-in .38s ease forwards;animation-delay:.36s}.student-copilot-input{flex:1;resize:none;min-height:74px;padding:11px 12px;border:1px solid var(--border);border-radius:12px;font-size:13px;line-height:1.6;color:var(--ink);font-family:var(--font-body);outline:none}.student-copilot-input:focus{border-color:#2a5a8a47;box-shadow:0 0 0 4px #2a5a8a14}.student-copilot-send{align-self:flex-end}@keyframes student-soft-fade-in{0%{opacity:0}to{opacity:1}}@keyframes student-copilot-trigger-float{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes student-copilot-drawer-in{0%{opacity:0;transform:translate(36px) scale(.985)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes student-copilot-section-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes student-copilot-chip-in{0%{opacity:0;transform:translateY(10px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes student-copilot-message-in{0%{opacity:0;transform:translateY(16px) scale(.985)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes student-copilot-loading-wave{0%{background-position:0% 50%}50%{background-position:100% 50%}to{background-position:0% 50%}}.student-quiz-lock-notice{margin-bottom:18px;padding:12px 14px;border-radius:12px;border:1px solid rgba(184,76,43,.18);background:#b84c2b14;font-size:13px;font-weight:600;color:var(--rust)}body.epoch-reduce-motion .chat-bubble,body.epoch-reduce-motion .missions-overlay,body.epoch-reduce-motion .missions-drawer,body.epoch-reduce-motion .missions-drawer-item,body.epoch-reduce-motion .student-copilot-trigger,body.epoch-reduce-motion .student-copilot-overlay,body.epoch-reduce-motion .student-copilot-drawer,body.epoch-reduce-motion .student-copilot-header,body.epoch-reduce-motion .student-copilot-policy,body.epoch-reduce-motion .student-copilot-suggestions,body.epoch-reduce-motion .student-copilot-chip,body.epoch-reduce-motion .student-copilot-messages,body.epoch-reduce-motion .student-copilot-message,body.epoch-reduce-motion .student-copilot-loading,body.epoch-reduce-motion .student-copilot-input-row{animation:none!important;transition:none!important;opacity:1!important;transform:none!important}@media(prefers-reduced-motion:reduce){.chat-bubble,.missions-overlay,.missions-drawer,.missions-drawer-item,.student-copilot-trigger,.student-copilot-overlay,.student-copilot-drawer,.student-copilot-header,.student-copilot-policy,.student-copilot-suggestions,.student-copilot-chip,.student-copilot-messages,.student-copilot-message,.student-copilot-loading,.student-copilot-input-row{animation:none!important;transition:none!important;opacity:1!important;transform:none!important}}@media(max-width:900px){.db-ai-panel-top{flex-direction:column;align-items:stretch}.student-copilot-input-row{flex-direction:column}.student-copilot-send{width:100%}}.sp-main{padding-top:32px}.sp-header{display:flex;align-items:center;gap:22px;margin-bottom:28px}.sp-avatar-lg{width:72px;height:72px;border-radius:50%;background:linear-gradient(135deg,var(--rust) 0%,#d4714a 100%);color:#fff;font-family:var(--font-display);font-size:30px;font-weight:600;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 6px 20px #b84c2b40}.sp-header-info{min-width:0}.sp-header-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:6px;font-size:13px;color:var(--muted)}.sp-role-badge{display:inline-flex;align-items:center;padding:2px 10px;border-radius:999px;background:#f5e4d7;color:var(--rust);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.sp-meta-sep{color:var(--border);font-size:16px}.sp-stats-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:28px}.sp-stat{display:flex;align-items:center;gap:14px;padding:18px 20px;border:1px solid var(--border);border-radius:14px;background:linear-gradient(180deg,#fffffff5,#f8f2e9f2);box-shadow:0 10px 28px #59381e0d}.sp-stat-icon{font-size:24px;flex-shrink:0}.sp-stat-value{font-family:var(--font-display);font-size:22px;color:var(--ink);line-height:1;margin-bottom:2px}.sp-stat-label{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.sp-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;margin-bottom:22px}.sp-card{border:1px solid var(--border);border-radius:14px;background:#fff;padding:24px;box-shadow:0 12px 30px #1e17110d}.sp-card--full{width:100%}.sp-card-head{margin-bottom:20px}.sp-card-kicker{display:block;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--rust);margin-bottom:6px}.sp-card-title{font-family:var(--font-display);font-size:22px;color:var(--ink);margin-bottom:6px}.sp-card-desc{font-size:13px;color:var(--muted);line-height:1.6}.sp-toast{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.5;margin-bottom:16px}.sp-toast--error{background:#c0392b14;border:1px solid rgba(192,57,43,.25);color:#a93226}.sp-toast--success{background:#27ae6014;border:1px solid rgba(39,174,96,.25);color:#1e8449}.sp-toast--info{background:#3a72b914;border:1px solid rgba(58,114,185,.2);color:#1e4d8c}.sp-form{display:flex;flex-direction:column;gap:16px}.sp-field{display:flex;flex-direction:column;gap:6px}.sp-field label{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink)}.sp-field input{width:100%;padding:10px 13px;font-size:14px;font-family:var(--font-body);color:var(--ink);background:#fcfaf6;border:1px solid var(--border);border-radius:8px;outline:none;transition:border-color .15s,box-shadow .15s;box-sizing:border-box}.sp-field input:focus{border-color:var(--rust);box-shadow:0 0 0 3px #b84c2b1f;background:#fff}.sp-field-error{font-size:12px;color:#c0392b;margin:0}.sp-form-actions{display:flex;justify-content:flex-end;padding-top:4px}.sp-pw-wrap{position:relative;display:flex;align-items:center}.sp-pw-wrap input{padding-right:60px}.sp-pw-toggle{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:none;font-size:12px;font-weight:600;font-family:var(--font-body);color:var(--rust);cursor:pointer;padding:4px 8px;border-radius:4px;transition:background .12s}.sp-pw-toggle:hover{background:#b84c2b14}.sp-pw-strength{display:flex;align-items:center;gap:10px;margin-top:2px}.sp-pw-bar{flex:1;height:4px;border-radius:999px;background:var(--border);position:relative;overflow:hidden}.sp-pw-bar:after{content:"";position:absolute;left:0;top:0;height:100%;border-radius:999px;transition:width .3s,background .3s}.sp-pw-bar--weak:after{width:33%;background:#c0392b}.sp-pw-bar--ok:after{width:66%;background:#d4a017}.sp-pw-bar--strong:after{width:100%;background:#27ae60}.sp-pw-strength-label{font-size:11px;font-weight:600;color:var(--muted);flex-shrink:0}.sp-class-list{display:flex;flex-direction:column;gap:0}.sp-class-row{display:flex;align-items:center;gap:16px;padding:16px 0;border-bottom:1px solid var(--border)}.sp-class-row:last-child{border-bottom:none}.sp-class-avatar{width:40px;height:40px;border-radius:10px;background:var(--cream);color:var(--ink);font-family:var(--font-display);font-size:16px;font-weight:600;display:flex;align-items:center;justify-content:center;flex-shrink:0;border:1px solid var(--border)}.sp-class-info{flex:1;min-width:0}.sp-class-name{font-size:14px;font-weight:600;color:var(--ink);margin-bottom:2px}.sp-class-joined{font-size:12px;color:var(--muted)}.sp-class-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.sp-leave-btn{background:none;border:none;font-family:var(--font-body);font-size:12px;font-weight:600;color:var(--muted);cursor:pointer;padding:6px 12px;border-radius:4px;transition:color .15s,background .15s}.sp-leave-btn:hover{color:#c0392b;background:#c0392b0f}.sp-leave-confirm{display:flex;align-items:center;gap:8px}.sp-leave-warn{font-size:12px;font-weight:600;color:#c0392b}.sp-empty{display:flex;flex-direction:column;align-items:center;gap:12px;padding:40px 20px;text-align:center;color:var(--muted);font-size:14px}.sp-empty-icon{font-size:36px;opacity:.4}@media(max-width:900px){.sp-stats-row{grid-template-columns:repeat(2,1fr)}.sp-grid{grid-template-columns:1fr}}@media(max-width:600px){.sp-header{flex-direction:column;text-align:center}.sp-header-meta{justify-content:center}.sp-stats-row{grid-template-columns:1fr}.sp-class-row{flex-wrap:wrap}.sp-class-actions{width:100%;justify-content:flex-end}}.tp-main{padding-top:32px}.tp-hero{display:flex;align-items:center;gap:24px;margin-bottom:28px;padding:28px 32px;border:1px solid var(--border);border-radius:16px;background:radial-gradient(circle at top right,rgba(201,168,76,.12),transparent 40%),linear-gradient(135deg,#fffaf3,#f4ece2);box-shadow:0 12px 32px #59381e12}.tp-hero-avatar{width:80px;height:80px;border-radius:50%;background:linear-gradient(135deg,#1e4d8c,#4a7fc4);color:#fff;font-family:var(--font-display);font-size:34px;font-weight:600;display:flex;align-items:center;justify-content:center;flex-shrink:0;box-shadow:0 6px 20px #1e4d8c47}.tp-hero-info{min-width:0}.tp-hero-meta{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-top:6px;font-size:13px;color:var(--muted)}.tp-role-badge{display:inline-flex;align-items:center;padding:2px 10px;border-radius:999px;background:#e4eef9;color:#1e4d8c;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase}.tp-meta-sep{color:var(--border);font-size:16px}.tp-stats-row{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px;margin-bottom:28px}.tp-stat{display:flex;align-items:center;gap:12px;padding:16px 18px;border:1px solid var(--border);border-radius:12px;background:linear-gradient(180deg,#fffffff5,#f8f2e9f2);box-shadow:0 8px 22px #59381e0d}.tp-stat--warm{border-color:#b84c2b2e}.tp-stat--cool{border-color:#1e4d8c2e}.tp-stat--success{border-color:#1665342e}.tp-stat--gold{border-color:#c9a84c40}.tp-stat--default{border-color:var(--border)}.tp-stat-icon{font-size:22px;flex-shrink:0}.tp-stat-value{font-family:var(--font-display);font-size:20px;color:var(--ink);line-height:1;margin-bottom:2px}.tp-stat-label{font-size:11px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.tp-tabs{display:flex;gap:0;border-bottom:2px solid var(--border);margin-bottom:28px}.tp-tab{padding:10px 24px;font-size:13px;font-weight:500;font-family:var(--font-body);background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-2px;color:var(--muted);cursor:pointer;transition:color .15s,border-color .15s}.tp-tab:hover{color:var(--ink)}.tp-tab--active{color:#1e4d8c;border-bottom-color:#1e4d8c;font-weight:600}.tp-section-grid{display:grid;grid-template-columns:1fr 340px;gap:22px;align-items:start}.tp-section-grid--narrow{grid-template-columns:560px}.tp-section-title{font-family:var(--font-display);font-size:22px;color:var(--ink);margin-bottom:4px}.tp-section-desc{font-size:13px;color:var(--muted);line-height:1.6}.tp-card{border:1px solid var(--border);border-radius:14px;background:#fff;padding:24px;box-shadow:0 10px 28px #1e17110d}.tp-card--summary{position:sticky;top:calc(var(--nav-h) + 20px)}.tp-card-head{margin-bottom:20px}.tp-card-kicker{display:block;font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#1e4d8c;margin-bottom:6px}.tp-card-title{font-family:var(--font-display);font-size:22px;color:var(--ink);margin-bottom:6px}.tp-card-desc{font-size:13px;color:var(--muted);line-height:1.6}.tp-summary-list{display:flex;flex-direction:column}.tp-summary-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--border);font-size:13px}.tp-summary-row:last-child{border-bottom:none}.tp-summary-label{color:var(--muted)}.tp-summary-value{color:var(--ink);font-weight:600}.tp-snapshot-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:18px}.tp-snapshot-card{padding:14px 16px;border-radius:12px;border:1px solid rgba(30,77,140,.12);background:linear-gradient(180deg,#eaf1fbf2,#fffffffa)}.tp-snapshot-label{display:block;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#1e4d8c}.tp-snapshot-value{display:block;margin-top:8px;font-family:var(--font-display);font-size:28px;line-height:1;color:var(--ink)}.tp-snapshot-meta{margin:8px 0 0;font-size:12px;line-height:1.5;color:var(--muted)}.tp-spotlight{margin-top:18px;padding:16px 18px;border-radius:12px;border:1px solid rgba(201,168,76,.28);background:linear-gradient(135deg,#fff7e5f2,#fffffff5)}.tp-spotlight-kicker{display:block;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:#a56b00}.tp-spotlight-title{display:block;margin-top:6px;font-size:18px;color:var(--ink)}.tp-spotlight-meta{margin:8px 0 0;font-size:12px;line-height:1.5;color:var(--muted)}.tp-action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:18px}.tp-action-btn{padding:12px 14px;border-radius:10px;border:1px solid var(--border);background:#fcfaf6;color:var(--ink);font-family:var(--font-body);font-size:13px;font-weight:600;cursor:pointer;transition:transform .12s,border-color .12s,background .12s,box-shadow .12s}.tp-action-btn:hover{transform:translateY(-1px);border-color:#1e4d8c47;background:#fff;box-shadow:0 8px 18px #1e4d8c14}.tp-toast{padding:10px 14px;border-radius:8px;font-size:13px;line-height:1.5;margin-bottom:16px}.tp-toast--error{background:#c0392b14;border:1px solid rgba(192,57,43,.25);color:#a93226}.tp-toast--success{background:#27ae6014;border:1px solid rgba(39,174,96,.25);color:#1e8449}.tp-toast--info{background:#1e4d8c14;border:1px solid rgba(30,77,140,.2);color:#1e4d8c}.tp-form{display:flex;flex-direction:column;gap:16px}.tp-field{display:flex;flex-direction:column;gap:6px}.tp-field label{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--ink)}.tp-field input{width:100%;padding:10px 13px;font-size:14px;font-family:var(--font-body);color:var(--ink);background:#fcfaf6;border:1px solid var(--border);border-radius:8px;outline:none;transition:border-color .15s,box-shadow .15s;box-sizing:border-box}.tp-field input:focus{border-color:#1e4d8c;box-shadow:0 0 0 3px #1e4d8c1a;background:#fff}.tp-field-error{font-size:12px;color:#c0392b;margin:0}.tp-form-actions{display:flex;justify-content:flex-end;padding-top:4px}.tp-pw-wrap{position:relative;display:flex;align-items:center}.tp-pw-wrap input{padding-right:60px}.tp-pw-toggle{position:absolute;right:8px;top:50%;transform:translateY(-50%);background:none;border:none;font-size:12px;font-weight:600;font-family:var(--font-body);color:#1e4d8c;cursor:pointer;padding:4px 8px;border-radius:4px;transition:background .12s}.tp-pw-toggle:hover{background:#1e4d8c14}.tp-pw-strength{display:flex;align-items:center;gap:10px;margin-top:2px}.tp-pw-bar{flex:1;height:4px;border-radius:999px;background:var(--border);position:relative;overflow:hidden}.tp-pw-bar:after{content:"";position:absolute;left:0;top:0;height:100%;border-radius:999px;transition:width .3s,background .3s}.tp-pw-bar--weak:after{width:33%;background:#c0392b}.tp-pw-bar--ok:after{width:66%;background:#d4a017}.tp-pw-bar--strong:after{width:100%;background:#27ae60}.tp-pw-label{font-size:11px;font-weight:600;color:var(--muted);flex-shrink:0}.tp-classes-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:20px}.tp-class-toolbar{display:grid;grid-template-columns:minmax(0,1fr) 220px;gap:14px;margin-bottom:14px}.tp-class-search,.tp-class-sort{display:flex;flex-direction:column;gap:6px}.tp-class-search-label{font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.tp-class-search input,.tp-class-sort select{width:100%;padding:10px 13px;font-size:14px;font-family:var(--font-body);color:var(--ink);background:#fcfaf6;border:1px solid var(--border);border-radius:8px;outline:none;transition:border-color .15s,box-shadow .15s,background .15s;box-sizing:border-box}.tp-class-search input:focus,.tp-class-sort select:focus{border-color:#1e4d8c;box-shadow:0 0 0 3px #1e4d8c1a;background:#fff}.tp-class-chip-row{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.tp-class-chip{display:inline-flex;align-items:center;min-height:30px;padding:0 12px;border-radius:999px;background:#f6f1e8;border:1px solid var(--border);color:var(--muted);font-size:12px;font-weight:600}.tp-new-class-form{margin-bottom:20px;padding:18px 20px;border:1px dashed var(--border);border-radius:12px;background:#fcfaf6}.tp-new-class-inner{display:flex;gap:10px;align-items:center}.tp-new-class-input{flex:1;padding:10px 13px;font-size:14px;font-family:var(--font-body);color:var(--ink);background:#fff;border:1px solid var(--border);border-radius:8px;outline:none;transition:border-color .15s,box-shadow .15s}.tp-new-class-input:focus{border-color:#1e4d8c;box-shadow:0 0 0 3px #1e4d8c1a}.tp-new-class-msg{margin:10px 0 0;font-size:13px}.tp-new-class-msg--error{color:#c0392b}.tp-new-class-msg--success{color:#1e8449}.tp-class-list{display:flex;flex-direction:column;gap:12px}.tp-class-row{display:flex;align-items:center;gap:16px;padding:18px 20px;border:1px solid var(--border);border-radius:12px;background:#fff;box-shadow:0 4px 14px #1e17110a;transition:box-shadow .15s}.tp-class-row:hover{box-shadow:0 6px 20px #1e171114}.tp-class-accent{width:4px;height:48px;border-radius:999px;flex-shrink:0}.tp-class-avatar{width:44px;height:44px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-family:var(--font-display);font-size:18px;font-weight:700;border:1px solid var(--border)}.tp-class-info{flex:1;min-width:0}.tp-class-name{font-size:15px;font-weight:600;color:var(--ink);margin-bottom:4px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tp-class-code-row{display:flex;align-items:center;gap:8px}.tp-class-code{font-family:Courier New,monospace;font-size:12px;font-weight:700;letter-spacing:.15em;color:var(--ink);background:var(--cream);border:1px solid var(--border);padding:2px 8px;border-radius:4px}.tp-copy-btn{background:none;border:none;font-family:var(--font-body);font-size:11px;font-weight:600;color:var(--muted);cursor:pointer;padding:2px 8px;border-radius:4px;transition:color .12s,background .12s}.tp-copy-btn:hover{color:#1e4d8c;background:#1e4d8c12}.tp-copy-btn--copied{color:#1e8449;background:#27ae6014}.tp-class-metrics{display:flex;gap:24px;flex-shrink:0}.tp-class-metric{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:60px}.tp-class-metric-value{font-family:var(--font-display);font-size:18px;color:var(--ink);line-height:1}.tp-class-metric-of{font-size:13px;color:var(--muted)}.tp-class-metric-label{font-size:10px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);text-align:center}.tp-class-actions{display:flex;align-items:center;gap:6px;flex-shrink:0}.tp-edit-btn{width:32px;height:32px;border-radius:6px;border:1px solid var(--border);background:none;color:var(--muted);font-size:15px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .12s,color .12s}.tp-edit-btn:hover{background:var(--cream);color:var(--ink)}.tp-delete-btn{width:32px;height:32px;border-radius:6px;border:1px solid transparent;background:none;color:var(--muted);font-size:13px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .12s,color .12s,border-color .12s}.tp-delete-btn:hover{background:#fdecea;color:#c0392b;border-color:#c0392b33}.tp-delete-confirm{display:flex;align-items:center;gap:8px}.tp-delete-warn{font-size:12px;font-weight:600;color:#c0392b}.tp-class-edit-row{display:flex;align-items:center;gap:8px;margin-bottom:4px}.tp-class-edit-input{flex:1;padding:5px 10px;font-size:14px;font-family:var(--font-body);color:var(--ink);background:#fff;border:1px solid #1e4d8c;border-radius:6px;outline:none;box-shadow:0 0 0 2px #1e4d8c1f}.tp-empty{display:flex;flex-direction:column;align-items:center;gap:12px;padding:48px 20px;text-align:center;color:var(--muted);font-size:14px}.tp-empty-icon{font-size:38px;opacity:.4}@media(max-width:1100px){.tp-stats-row{grid-template-columns:repeat(3,1fr)}.tp-section-grid{grid-template-columns:1fr}.tp-card--summary{position:static}.tp-snapshot-grid{grid-template-columns:1fr 1fr}}@media(max-width:800px){.tp-stats-row{grid-template-columns:repeat(2,1fr)}.tp-class-metrics{display:none}.tp-class-row{flex-wrap:wrap}.tp-section-grid--narrow,.tp-class-toolbar{grid-template-columns:1fr}.tp-action-grid{grid-template-columns:1fr 1fr}.tp-snapshot-grid{grid-template-columns:1fr}}@media(max-width:600px){.tp-hero{flex-direction:column;text-align:center}.tp-hero-meta{justify-content:center}.tp-stats-row{grid-template-columns:1fr}.tp-classes-header{flex-direction:column}.tp-action-grid{grid-template-columns:1fr}}.settings-page-layout{display:grid;grid-template-columns:300px minmax(0,1fr);gap:24px;align-items:start}.settings-page-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end}.settings-page-notice{margin:-4px 0 20px;padding:12px 16px;border:1px solid var(--border);border-radius:12px;font-size:14px;line-height:1.4;color:var(--ink);background:#f8f3ec}.settings-page-notice--saving{background:#fbf3e5;border-color:#e5cda5;color:#8a5a2b}.settings-page-notice--saved{background:#edf7f0;border-color:#b8dec2;color:#21633b}.settings-summary-card,.settings-section-card{border:1px solid var(--border);border-radius:14px;background:#fff;box-shadow:0 12px 30px #1e17110d}.settings-summary-card{padding:20px;position:sticky;top:calc(var(--nav-h) + 24px)}.settings-summary-badge{display:inline-flex;align-items:center;padding:4px 10px;border-radius:999px;background:#f5e4d7;color:var(--rust);font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;margin-bottom:12px}.settings-summary-title{font-family:var(--font-display);font-size:28px;color:var(--ink);margin-bottom:8px}.settings-summary-copy{font-size:14px;line-height:1.7;color:var(--muted);margin-bottom:20px}.settings-summary-list{display:flex;flex-direction:column;gap:10px}.settings-summary-item{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:12px 0;border-bottom:1px solid var(--border);font-size:13px}.settings-summary-item span{color:var(--muted)}.settings-summary-item strong{color:var(--ink);text-align:right}.settings-sections{display:flex;flex-direction:column;gap:20px}.settings-section-card{padding:22px}.settings-section-head{display:flex;justify-content:space-between;gap:20px;margin-bottom:20px;align-items:start}.settings-section-kicker{font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--rust);margin-bottom:6px}.settings-section-title{font-family:var(--font-display);font-size:24px;color:var(--ink)}.settings-section-copy{max-width:360px;font-size:14px;color:var(--muted);line-height:1.7}.settings-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.settings-field-card{border:1px solid var(--border);border-radius:12px;padding:16px;background:#fcfaf6}.settings-field-top{display:flex;justify-content:space-between;gap:16px;align-items:start}.settings-label{display:block;font-size:12px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--ink);margin-bottom:8px}.settings-help{font-size:13px;line-height:1.65;color:var(--muted);margin-bottom:14px}.settings-select{width:100%;padding:11px 12px;border-radius:10px;border:1px solid var(--border);background:#fff;color:var(--ink);font-size:14px;font-family:var(--font-body)}.settings-toggle{width:52px;height:30px;border-radius:999px;border:none;background:#d8d0c2;cursor:pointer;padding:3px;display:inline-flex;align-items:center;transition:background .18s ease;flex-shrink:0}.settings-toggle span{width:24px;height:24px;border-radius:50%;background:#fff;box-shadow:0 2px 8px #00000026;transition:transform .18s ease}.settings-toggle--on{background:var(--rust)}.settings-toggle--on span{transform:translate(22px)}@media(max-width:1100px){.settings-page-layout{grid-template-columns:1fr}.settings-summary-card{position:static}}@media(max-width:780px){.settings-page-actions{width:100%}.settings-section-head{flex-direction:column}.settings-grid{grid-template-columns:1fr}.settings-page-actions .btn{width:100%}}body.epoch-density-compact .page-main,body.epoch-density-compact .modal-body{font-size:.96rem}body.epoch-density-compact .cards-grid{gap:14px}body.epoch-density-expanded .cards-grid{gap:24px}body.epoch-density-expanded .panel,body.epoch-density-expanded .empty-state{padding:28px}body.epoch-reduce-motion *,body.epoch-reduce-motion *:before,body.epoch-reduce-motion *:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
