/* Nivora interaction and refinement layer */
body{opacity:0;transform:translateY(4px);transition:opacity .28s ease,transform .28s ease,background-color .25s ease,color .25s ease}body.page-ready{opacity:1;transform:none}body.page-exit{opacity:0;transform:translateY(-5px)}
.progress-value{transition:width .45s cubic-bezier(.2,.8,.2,1)}
.dashboard-subject-row,.attention-row,.subject-card,.text-button,.card-link{transition:color .18s ease,background-color .18s ease,border-color .18s ease,transform .18s ease,padding .18s ease}
.dashboard-page,.subjects-page,.subject-page,.setup-page{position:relative;overflow-x:hidden}
.ambient-background{position:fixed;inset:0;pointer-events:none;z-index:-1;overflow:hidden;opacity:.72}
.ambient-background:before,.ambient-background:after{content:"";position:absolute;width:42vw;height:42vw;border-radius:50%;filter:blur(80px);opacity:.08;background:var(--accent);animation:ambientDrift 18s ease-in-out infinite alternate}.ambient-background:before{top:-20vw;right:-10vw}.ambient-background:after{bottom:-24vw;left:-12vw;animation-delay:-8s}.ambient-background span{position:absolute;width:18px;height:18px;border:1px solid var(--border-strong);border-radius:50%;opacity:.25}.ambient-background span:nth-child(1){top:18%;left:8%;animation:floatOne 11s ease-in-out infinite}.ambient-background span:nth-child(2){top:66%;right:12%;width:10px;height:10px;animation:floatTwo 13s ease-in-out infinite}.ambient-background span:nth-child(3){top:35%;right:30%;width:6px;height:6px;animation:floatOne 15s ease-in-out infinite reverse}
@keyframes ambientDrift{to{transform:translate(8vw,6vh) scale(1.12)}}@keyframes floatOne{50%{transform:translate(18px,-15px)}}@keyframes floatTwo{50%{transform:translate(-14px,20px)}}
.profile-wrap{position:relative}.profile-menu{position:absolute;top:48px;right:0;width:190px;padding:8px;background:var(--surface);border:1px solid var(--border-strong);box-shadow:0 18px 45px rgba(0,0,0,.22);z-index:50;animation:menuIn .14s ease}.profile-menu-name{padding:9px 10px 11px;color:var(--text);font-size:12px;font-weight:800;border-bottom:1px solid var(--border);margin-bottom:5px}.profile-menu button{width:100%;border:0;background:transparent;color:var(--text);text-align:left;padding:10px;border-radius:5px;font-size:12px}.profile-menu button:hover{background:var(--surface-2)}.profile-menu .logout-button{color:var(--danger)}@keyframes menuIn{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}
.material-section{margin-top:28px}.section-description{color:var(--muted);font-size:13px;margin-top:5px}.file-button{position:relative;overflow:hidden}.file-button input{position:absolute;inset:0;opacity:0;cursor:pointer}.material-list{margin-top:20px}.material-row{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:68px;border-top:1px solid var(--border)}.material-info{display:flex;flex-direction:column;gap:2px;min-width:0}.material-info strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.material-info span{font-size:11px;color:var(--muted)}.material-actions{display:flex;align-items:center;gap:12px;flex-shrink:0}.material-open{border:0;background:none}.material-delete{border:0;background:none;color:var(--muted);font-size:12px}.material-delete:hover{color:var(--danger)}.form-error{min-height:18px;color:#e15d5d;font-size:12px}.landing-modal-card select{width:100%;padding:12px;border:1px solid #303030;border-radius:6px;background:#050505;color:#f5f5f5;outline:none}.landing-modal-card select:focus{border-color:#20c76a}.landing-modal-card input:focus{border-color:#20c76a}.empty-topic-state{animation:fadeIn .2s ease}@keyframes fadeIn{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
/* First-time setup */
.setup-container{width:min(1040px,88%);padding-top:70px;padding-bottom:110px}.setup-hero{max-width:720px;margin-bottom:48px}.setup-hero h1{font-size:clamp(34px,5vw,52px);line-height:1.03;letter-spacing:-2px;margin-top:6px}.setup-hero .welcome-text{max-width:680px;line-height:1.7}.setup-card,.setup-topics-card{border:1px solid var(--border);background:color-mix(in srgb,var(--surface) 92%,transparent);padding:34px}.setup-card+.setup-card{margin-top:22px}.setup-form{display:flex;flex-direction:column;gap:18px;margin-top:28px}.setup-form label,.setup-select-label{display:flex;flex-direction:column;gap:8px;color:var(--text);font-size:12px;font-weight:700}.setup-form input,.setup-form textarea,.setup-card select,.topic-builder input,.topic-builder select{width:100%;border:1px solid var(--border-strong);background:var(--background);color:var(--text);padding:12px 13px;border-radius:6px;outline:none}.setup-form textarea{min-height:90px;resize:vertical}.setup-form input:focus,.setup-form textarea:focus,.setup-card select:focus,.topic-builder input:focus,.topic-builder select:focus{border-color:var(--accent)}.setup-subject-list,.setup-material-list,.setup-topic-list{margin-top:24px}.setup-item{display:flex;align-items:center;justify-content:space-between;gap:15px;border-top:1px solid var(--border);min-height:58px;font-size:13px}.setup-item div{display:flex;flex-direction:column;gap:2px}.setup-item span{color:var(--muted);font-size:11px}.setup-item button{border:0;background:none;color:var(--muted);font-size:11px}.setup-item button:hover{color:var(--danger)}.setup-select-label{margin-top:26px}.upload-dropzone{margin-top:16px;min-height:145px;border:1px dashed var(--border-strong);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;color:var(--muted);font-size:12px;cursor:pointer;transition:border-color .18s ease,background-color .18s ease}.upload-dropzone:hover{border-color:var(--accent);background:var(--surface-2)}.upload-dropzone strong{color:var(--text);font-size:13px}.upload-dropzone input{position:absolute;width:1px;height:1px;opacity:0}.setup-topics-card{margin-top:22px}.topic-builder{display:grid;grid-template-columns:.75fr 1.2fr auto;gap:12px;margin-top:24px}.setup-footer{display:flex;justify-content:flex-end;gap:12px;margin-top:22px}.optional{color:var(--muted);font-weight:400}
/* Curriculum organizer */
.curriculum-card{position:relative;overflow:hidden}.curriculum-card:after{content:"";position:absolute;width:220px;height:220px;right:-90px;top:-110px;border-radius:50%;background:radial-gradient(circle,rgba(32,199,106,.09),transparent 68%);pointer-events:none}.curriculum-card .section-description{max-width:700px;line-height:1.65}.curriculum-dropzone{min-height:170px;margin-top:28px}.curriculum-dropzone small{margin-top:5px;color:var(--accent);max-width:90%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.setup-status{min-height:20px;color:var(--muted);font-size:12px;margin-top:12px}.curriculum-review-list{display:grid;gap:22px;margin-top:28px}.curriculum-review-item{border-top:1px solid var(--border);padding:24px 0 4px}.curriculum-review-head{display:flex;gap:12px;align-items:center}.curriculum-review-head input,.curriculum-subject-description,.curriculum-topic-edit input{width:100%;border:1px solid var(--border);background:var(--background);color:var(--text);border-radius:6px;padding:11px 12px;outline:none}.curriculum-review-head input{font-size:17px;font-weight:750}.curriculum-review-head input:focus,.curriculum-subject-description:focus,.curriculum-topic-edit input:focus{border-color:var(--accent)}.curriculum-subject-description{margin-top:10px;font-size:12px}.review-remove{flex:0 0 auto;border:0;background:transparent;color:var(--muted);font-size:11px;cursor:pointer}.review-remove:hover{color:var(--danger)}.curriculum-topic-list{display:grid;gap:8px;margin-top:15px}.curriculum-topic-edit{display:flex;gap:8px}.curriculum-topic-edit button{width:36px;border:1px solid var(--border);background:transparent;color:var(--muted);border-radius:6px;cursor:pointer}.curriculum-topic-edit button:hover{color:var(--danger);border-color:var(--danger)}.add-review-topic{margin-top:10px;border:0;background:transparent;color:var(--accent);padding:4px 0;font-size:12px;font-weight:700;cursor:pointer}.review-actions{display:flex;justify-content:flex-end;gap:12px;margin-top:28px}
/* Curriculum analysing popup */
.analysis-overlay{position:fixed;inset:0;z-index:200;display:flex;align-items:center;justify-content:center;padding:24px;background:rgba(0,0,0,.58);backdrop-filter:blur(7px);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .2s ease,visibility .2s ease}.analysis-overlay.is-visible{opacity:1;visibility:visible;pointer-events:auto}.analysis-modal{width:min(390px,calc(100vw - 40px));padding:38px 32px 34px;border:1px solid var(--border-strong);background:var(--surface);box-shadow:0 28px 90px rgba(0,0,0,.4);text-align:center;border-radius:14px}.analysis-n{width:82px;height:82px;margin:0 auto 22px;display:flex;align-items:center;justify-content:center;font-size:48px;font-weight:900;letter-spacing:-5px;color:var(--text);position:relative}.analysis-n:before{content:"N";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:transparent;-webkit-text-stroke:1.5px var(--border-strong)}.analysis-n:after{content:"N";position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:transparent;-webkit-text-stroke:2px var(--accent);clip-path:inset(0 100% 0 0);animation:traceN 1.7s linear infinite}.analysis-title{font-size:19px;font-weight:800;letter-spacing:-.4px}.analysis-subtitle{margin-top:7px;color:var(--muted);font-size:12px;line-height:1.6}.analysis-dots{display:inline-flex;gap:4px;margin-left:2px}.analysis-dots span{width:4px;height:4px;border-radius:50%;background:var(--accent);animation:analysisDot 1.2s infinite ease-in-out}.analysis-dots span:nth-child(2){animation-delay:.15s}.analysis-dots span:nth-child(3){animation-delay:.3s}@keyframes traceN{0%{clip-path:inset(0 100% 0 0)}45%{clip-path:inset(0 0 0 0)}70%{clip-path:inset(0 0 0 0)}100%{clip-path:inset(0 0 0 100%)}}@keyframes analysisDot{0%,60%,100%{opacity:.25;transform:translateY(0)}30%{opacity:1;transform:translateY(-2px)}}
@media(max-width:800px){.material-row{align-items:flex-start;padding:14px 0}.material-actions{flex-direction:column;align-items:flex-end}.setup-card,.setup-topics-card{padding:25px}.setup-container{width:90%;padding-top:50px}.topic-builder{grid-template-columns:1fr}.setup-footer{justify-content:stretch;flex-direction:column}.setup-footer button{width:100%}.ambient-background{opacity:.45}.curriculum-review-head{align-items:stretch;flex-direction:column}.review-actions{flex-direction:column-reverse}.review-actions button{width:100%}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
