/* Nova era · apresentação compartilhada. As paletas equipadas mantêm --brand. */
@font-face{font-family:Manrope;src:url('../assets/fonts/manrope.ttf') format('truetype');font-weight:200 800;font-display:swap}
@font-face{font-family:'Instrument Serif';src:url('../assets/fonts/instrument-serif-italic.ttf') format('truetype');font-style:italic;font-display:swap}
:root{--canvas:#f5f4fa;--ink:#292538;--muted:#686376;--line:#e8e4ef;--radius:22px;--sidebar:252px;--noeva-sage:#e8f1e9;--noeva-sage-ink:#304b3f;--noeva-shadow:0 12px 40px #2e194407}
:root[data-theme=dark]{--canvas:#171421;--surface:#231e30;--ink:#f0ecf7;--muted:#bbb1ca;--line:#3e344e;--noeva-sage:#24392f;--noeva-sage-ink:#cbe8d3}
body{font-family:Manrope,'Segoe UI',sans-serif;letter-spacing:-.015em;background:var(--canvas);color:var(--ink)}
body :is(button,input,select,textarea){font-family:inherit}
.app-layout .app-sidebar{inset:14px auto 14px 14px;width:calc(var(--sidebar) - 14px);border:1px solid #ffffff10;border-radius:22px;background:linear-gradient(160deg,#2d253e,#1e1a2a 65%);box-shadow:0 12px 35px #23192a16;padding:26px 14px 22px;scrollbar-width:thin;scrollbar-color:#746382 transparent}
html[data-noeda-accent] body.app-layout .app-sidebar{background-color:color-mix(in srgb,var(--noeda-solid) 38%,#292332);background-image:linear-gradient(160deg,color-mix(in srgb,var(--noeda-solid) 38%,#292332),#1e1a2a 75%);border-color:#ffffff15}
:root[data-theme=dark] body.app-layout .app-sidebar{background:linear-gradient(160deg,#2d253e,#1e1a2a 65%);border-color:#ffffff15}
:root[data-theme=dark][data-noeda-accent] body.app-layout .app-sidebar{background-color:color-mix(in srgb,var(--noeda-solid) 38%,#292332);background-image:linear-gradient(160deg,color-mix(in srgb,var(--noeda-solid) 38%,#292332),#1e1a2a 75%)}
.app-layout .app-sidebar .brand{color:#fff;font-size:34px}
.app-sidebar .brand-dot{color:#bba6f1}.app-sidebar .brand-mark{background:#8063d9;box-shadow:0 4px 12px #0003}
.app-sidebar .sidebar-brand{padding:0 13px 30px}.app-sidebar .workspace-tag{color:#b0a4c1;font-size:11px;letter-spacing:.12em}
html body.app-layout .app-sidebar .nav-item{color:#c8bed5;background:transparent;border:1px solid transparent;border-radius:12px;font-size:14px;min-height:44px;padding:10px 13px;gap:12px}
html body.app-layout .app-sidebar .nav-item:hover{color:#fff;background:#ffffff09}
html body.app-layout .app-sidebar .nav-item[aria-current=page]{background:linear-gradient(105deg,color-mix(in srgb,var(--noeda-solid,#7555d5) 75%,#392c50),#5d47854d);color:#fff;border-color:#baa0ef30;box-shadow:0 5px 20px #0001}
.app-sidebar .nav-divider{background:#ffffff12;margin:15px 12px 10px}.app-sidebar .sidebar-foot,.app-sidebar .sidebar-foot small{color:#b0a4c1;font-size:12px}.app-sidebar .sidebar-foot{padding-top:22px}
.app-topbar{height:80px;left:calc(var(--sidebar) + 14px);padding:0 36px;background:color-mix(in srgb,var(--canvas) 85%,transparent);border:0;backdrop-filter:blur(18px)}
.topbar-context,#view-breadcrumb{font-size:13px}.topbar-location{gap:12px}.app-topbar .account-name{font-size:13px;max-width:145px}.app-topbar .account-avatar{border:3px solid var(--surface);box-shadow:0 0 0 1px var(--line)}
.app-main{margin-left:calc(var(--sidebar) + 14px);padding:30px 36px 70px;margin-top:80px}
.app-main>[data-view],#painel-turma>[data-view]{max-width:1450px}
.page-heading{margin-bottom:26px}.page-heading h1{font-size:30px;font-weight:750;letter-spacing:-.045em}.page-heading p{max-width:760px}
.card,.stat-card,.activity-tile,.class-tile,.settings-card{border-color:var(--line);border-radius:var(--radius);box-shadow:var(--noeva-shadow)}
.card{padding:28px}.section-heading h2{font-size:21px;letter-spacing:-.035em}
body :is(button,.botao-link){border-radius:11px;transition:background .18s,box-shadow .18s,transform .18s}
body :is(button,.botao-link):focus-visible{outline:3px solid var(--brand);outline-offset:4px}
body :is(input,textarea,select){border-radius:11px}.button-quiet{color:var(--muted)}
.app-main :is(.activity-tile,.class-tile,.noeda-item){transition:transform .2s,box-shadow .2s,border-color .2s}
.app-main :is(.activity-tile,.class-tile,.noeda-item):hover{transform:translateY(-3px);box-shadow:0 14px 32px #29183b0b;border-color:color-mix(in srgb,var(--brand) 30%,var(--line))}
.welcome-banner{position:relative;isolation:isolate;min-height:300px;padding:35px 40px;background:linear-gradient(115deg,var(--brand-light),color-mix(in srgb,var(--surface) 80%,var(--brand-light)));border:1px solid color-mix(in srgb,var(--brand) 14%,var(--line));border-radius:26px;overflow:hidden;gap:28px}
.welcome-banner>div:first-child{position:relative;z-index:2;max-width:610px;flex:1;min-width:0}
.welcome-banner #welcome-title{font-size:17px;color:var(--muted);font-weight:600;letter-spacing:-.02em;margin-bottom:12px}
.welcome-banner #welcome-date{font-size:12px;color:var(--muted);margin-bottom:9px}
.welcome-banner .noeva-hero-title{font-size:clamp(34px,3.7vw,54px);font-weight:750;line-height:1.08;letter-spacing:-.055em;margin:0 0 18px;max-width:600px;color:var(--ink)}
.noeva-hero-title em{font-family:'Instrument Serif',Georgia,serif;font-weight:400;color:var(--brand);letter-spacing:-.03em}
.welcome-banner #dashboard-scope{font-size:15px;line-height:1.65;color:var(--muted);max-width:520px;margin-bottom:22px}
.welcome-banner .button-dark{background:var(--noeda-solid,#6650c5);color:#fff;padding:12px 18px;font-size:14px;min-height:44px;border:1px solid #ffffff25;box-shadow:0 5px 18px #3f23641c}
.welcome-banner .button-dark:hover{background:var(--brand-dark);transform:translateY(-2px)}
.welcome-banner .banner-art{display:none}
.noeva-scene{position:relative;flex:0 0 280px;height:250px;perspective:800px;pointer-events:none;--scene-x:0deg;--scene-y:0deg}
.noeva-scene-inner{position:absolute;inset:0;transform:rotateX(var(--scene-y)) rotateY(var(--scene-x));transition:transform .45s ease-out}
.noeva-sculpture{position:absolute;inset:-18px 0 auto;text-align:center;font-size:248px;line-height:1;font-weight:800;letter-spacing:-.08em;color:#bba0eb;text-shadow:1px 1px #a58bd4,2px 2px #a58bd4,3px 3px #a58bd4,4px 4px #9678c7,5px 5px #9678c7,6px 6px #9678c7,7px 7px #8869b7,8px 8px #8869b7,9px 9px #8869b7,11px 11px 1px #755798,15px 20px 26px #69468830;transform:rotate(-12deg);animation:noeva-float 7s ease-in-out infinite}
.noeva-orbit{position:absolute;left:-20px;top:120px;width:320px;height:100px;border:1px solid #a78ac94d;border-radius:50%;transform:rotate(-17deg)}
.noeva-orbit:after{content:'';position:absolute;top:14px;right:24px;width:8px;height:8px;border-radius:50%;background:#b597e4;box-shadow:0 0 18px #b597e4}
.noeva-scene-chip{position:absolute;left:-18px;bottom:10px;background:color-mix(in srgb,var(--surface) 90%,transparent);color:var(--ink);padding:13px 16px;border:1px solid #ffffff60;border-radius:14px;box-shadow:0 12px 28px #3c245817;font-size:13px;transform:rotate(-6deg);animation:noeva-float 8s ease-in-out infinite reverse}
.noeva-scene-chip:last-child{left:auto;right:-5px;bottom:65px;transform:rotate(7deg);animation-delay:-3s;font-size:18px;color:var(--brand)}
.noeva-spark{position:absolute;top:18px;left:16px;color:#a78ac9;font-size:29px;animation:noeva-twinkle 5s ease-in-out infinite}
html[data-noeda-accent] .welcome-banner .noeva-hero-title{color:#fff}html[data-noeda-accent] .noeva-hero-title em{color:#fff}
html[data-theme=dark] .welcome-banner{background:linear-gradient(115deg,var(--brand-light),var(--surface))}
html[data-theme=dark] .welcome-banner :is(#welcome-title,#welcome-date,#dashboard-scope){color:var(--muted)}
html[data-theme=dark][data-noeda-accent] .welcome-banner :is(#welcome-title,#welcome-date,#dashboard-scope){color:#fff}
.stats-grid{gap:16px;margin-bottom:26px}.stat-card{padding:23px 26px;background:var(--surface);position:relative;overflow:hidden}.stat-card:after{content:'';position:absolute;right:-20px;bottom:-32px;width:95px;height:95px;border:14px solid color-mix(in srgb,var(--brand) 7%,transparent);border-radius:50%;pointer-events:none}.stat-card strong{font-size:34px;font-weight:750;letter-spacing:-.06em}.stat-card>span,.stat-card small{color:var(--muted)}
.dashboard-columns{gap:22px;grid-template-columns:minmax(0,1.65fr) minmax(280px,1fr)}
.noeva-journey-teaser{background:var(--noeva-sage)!important;color:var(--noeva-sage-ink)!important;position:relative;overflow:hidden;border-color:color-mix(in srgb,var(--noeva-sage-ink) 12%,transparent)}
.noeva-journey-teaser h2,.noeva-journey-teaser>p,.noeva-journey-teaser>.eyebrow{color:var(--noeva-sage-ink)!important}.noeva-journey-teaser h2{font-size:30px;max-width:350px;letter-spacing:-.045em;line-height:1.2}
.noeva-journey-teaser>p{margin:16px 0 20px}.noeva-journey-teaser .quick-link{border-color:color-mix(in srgb,var(--noeva-sage-ink) 16%,transparent);color:var(--noeva-sage-ink);background:transparent}.noeva-journey-teaser .quick-link small{color:var(--noeva-sage-ink)}
.noeva-trail{display:flex;align-items:center;gap:8px;height:45px;margin-bottom:18px;pointer-events:none}.noeva-trail i{width:12px;height:12px;border-radius:50%;background:#85a58e;border:3px solid #fff8}.noeva-trail i:last-child{width:24px;height:24px;background:#526f5d;box-shadow:0 0 0 7px #71927b1a}.noeva-trail span{height:1px;width:50px;background:#85a58e80}
.recent-item{padding:17px 0;border-color:var(--line);gap:14px}.recent-item strong{font-weight:650;font-size:15px}.recent-item small{margin-top:5px}.recent-symbol{width:42px;height:42px;border-radius:13px;background:var(--brand-light);color:var(--brand)}
.noeva-route-active{animation:noeva-enter .35s ease-out}.noeva-explore{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:22px}
.noeva-explore-card{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:26px 30px;min-height:155px;background:var(--surface);border:1px solid var(--line);border-radius:22px;overflow:hidden;position:relative}
.noeva-explore-card h2{font-size:22px;margin:0 0 8px}.noeva-explore-card p{color:var(--muted);max-width:360px;margin:0 0 12px;font-size:14px}.noeva-explore-card .button-quiet{padding-left:0;color:var(--brand)}
.noeva-explore-city{background:linear-gradient(120deg,#2b253e,#3b3352);color:#fff;border-color:#453754}.noeva-explore-city h2,.noeva-explore-city p{color:#f2edf8}.noeva-explore-city .button-quiet{color:#d6c4ff}
.noeva-cubes{position:relative;flex:0 0 100px;height:100px;transform:rotateX(55deg) rotateZ(-35deg);transform-style:preserve-3d;pointer-events:none}
.noeva-cubes i{position:absolute;bottom:0;left:0;width:55px;height:55px;background:#c6b1ec;border:1px solid #ffffff60;box-shadow:7px 7px #8c73b9,14px 14px #695782;animation:noeva-cube 8s ease-in-out infinite}.noeva-cubes i:nth-child(2){left:65px;bottom:25px;width:32px;height:32px;background:#97b2a0;animation-delay:-3s}.noeva-cubes i:nth-child(3){left:30px;bottom:65px;width:28px;height:28px;animation-delay:-5s}
.noeva-orbs{position:relative;flex:0 0 95px;height:95px;pointer-events:none}.noeva-orbs i{position:absolute;width:56px;height:56px;border-radius:50%;background:radial-gradient(circle at 30% 25%,#fff,#bfa9e5 50%,#7857ac);box-shadow:6px 12px 18px #6b418524;animation:noeva-float 8s ease-in-out infinite}.noeva-orbs i:last-child{width:36px;height:36px;right:0;bottom:0;animation-delay:-4s;background:radial-gradient(circle at 30% 25%,#fff,#b3cdb5 50%,#799780)}
.my-journey-intro{padding:30px;border-radius:24px;background:var(--noeva-sage);color:var(--noeva-sage-ink);margin-bottom:24px;display:flex;gap:30px;align-items:center;justify-content:space-between}.my-journey-intro blockquote{font-family:'Instrument Serif',Georgia,serif;font-style:italic;font-size:34px;line-height:1.2;letter-spacing:-.025em;max-width:780px;margin:0 0 12px}.my-journey-intro p{font-size:15px;margin:0;max-width:760px}.my-journey-intro .noeva-trail{flex-shrink:0}
.my-journey-list{display:grid;gap:16px}.my-journey-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:18px;align-items:center;padding:25px 28px;border:1px solid var(--line);border-radius:20px;background:var(--surface);box-shadow:var(--noeva-shadow)}
.my-journey-card h2{font-size:21px;margin:8px 0}.my-journey-card p{font-size:14px;color:var(--muted);margin:0 0 10px}.my-journey-card .eyebrow{margin:0}.my-journey-card .status{display:inline-block;margin-bottom:10px}.my-journey-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.my-journey-actions button{background:var(--noeda-solid,#6650c5);color:#fff}.my-journey-footer{font-size:14px;color:var(--muted);margin:20px 0}
.journey-dialog{border-radius:24px;border-color:var(--line);box-shadow:0 35px 120px #17102440}.journey-promise{font-family:'Instrument Serif',Georgia,serif;font-style:italic;font-size:28px;line-height:1.3;background:var(--noeva-sage);color:var(--noeva-sage-ink);border:0;border-radius:16px}.journey-stats>div{border-radius:16px}.journey-open{border-radius:11px}
.detail-tabs{border-radius:14px;background:var(--surface);padding:6px;border:1px solid var(--line);gap:5px}.detail-tabs button{border-radius:9px}.detail-tabs button[aria-selected=true]{background:var(--brand-light)}
.answer-layout .answer-main{max-width:1150px}.answer-layout :is(.answer-intro,.questao-resposta,.published-feedback){border-radius:22px;box-shadow:var(--noeva-shadow)}
.auth-layout .login-grid{gap:7vw}.auth-layout .apresentacao h1{font-weight:750;letter-spacing:-.065em}.auth-layout .formulario-login{border-radius:26px;box-shadow:0 25px 85px #4b31620b}.auth-layout .apresentacao h1 span{font-family:'Instrument Serif',Georgia,serif;font-style:italic;font-weight:400;color:var(--brand)}
.notification-panel,.chat-panel{border-radius:20px}.chat-launcher{box-shadow:0 8px 28px #47317926}
.noeva-paused .noeva-scene *, .noeva-paused .noeva-cubes *, .noeva-paused .noeva-orbs *, .noeva-motion-paused *{animation-play-state:paused!important}
html body.app-layout .app-sidebar .sidebar-foot,html body.app-layout .app-sidebar .sidebar-foot small{color:#b9aec9}
.my-journey-stats{grid-template-columns:repeat(3,minmax(0,1fr))}.my-journey-next{padding:24px 28px;border:1px solid color-mix(in srgb,var(--brand) 25%,var(--line));border-radius:20px;background:var(--brand-light);display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:24px}.my-journey-next h2{font-size:21px;margin:0 0 10px}.my-journey-next p{margin:0;font-size:15px;max-width:740px}.my-journey-next>a{flex-shrink:0}.my-journey-card small{font-size:13px;color:var(--muted)}
html[data-theme=dark] .my-journey-actions button{background:var(--brand);color:#211b32}
@media(max-width:640px){.my-journey-stats{grid-template-columns:1fr}.my-journey-next{display:block;padding:24px}.my-journey-next>a{margin-top:18px}}
@keyframes noeva-float{0%,100%{translate:0 0}50%{translate:0 -10px}}@keyframes noeva-twinkle{0%,100%{opacity:.5;scale:.9}50%{opacity:1;scale:1.1}}@keyframes noeva-cube{0%,100%{translate:0 0}50%{translate:0 -8px}}@keyframes noeva-enter{from{opacity:.3;translate:0 9px}to{opacity:1;translate:0 0}}
@media(min-width:1100px){.welcome-banner:after{content:'';position:absolute;right:6%;top:-160px;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,#c9ade323,transparent 70%);pointer-events:none}}
@media(max-width:1200px){.app-main{padding:28px 25px 65px}.app-topbar{padding:0 25px}.noeva-scene{flex-basis:210px;height:220px}.noeva-sculpture{font-size:215px}.noeva-orbit{width:250px;left:-15px}.noeva-scene-chip{left:-10px;font-size:12px}.welcome-banner{padding:30px}.dashboard-columns{grid-template-columns:minmax(0,1.4fr) minmax(270px,1fr)}}
@media(max-width:1000px){.topbar-context,.breadcrumb-slash{display:none}.topbar-actions{gap:10px}.account-name{display:none}.noeva-hero-title{max-width:460px}.noeva-scene{flex-basis:165px}.noeva-sculpture{font-size:195px;top:0}.noeva-orbit{width:210px}.noeva-scene-chip{font-size:11px;padding:10px}.dashboard-columns{grid-template-columns:1fr}.noeva-explore{grid-template-columns:1fr 1fr}.noeva-explore-card{padding:24px}.noeva-explore-card :is(.noeva-orbs,.noeva-cubes){display:none}}
@media(max-width:900px){.app-layout .app-sidebar{transform:translateX(calc(-100% - 20px));transition:transform .25s}.app-layout.sidebar-open .app-sidebar{transform:none}.app-topbar{left:0;height:72px;padding:0 22px}.app-main{margin-left:0;margin-top:72px;padding:24px}.menu-toggle,.sidebar-close{display:inline-flex}.app-sidebar .sidebar-close{color:#fff;border-color:#ffffff20}.sidebar-backdrop{z-index:95}.topbar-context{display:inline}.breadcrumb-slash{display:inline}.account-name{display:block}.noeva-scene{flex-basis:250px}.noeva-sculpture{font-size:225px}.noeva-orbit{width:280px}.noeva-scene-chip{font-size:13px}}
@media(max-width:640px){.app-main{padding:20px 16px 90px}.app-topbar{padding:0 16px;gap:8px}.topbar-context,.breadcrumb-slash,.app-topbar .account-name{display:none}.topbar-location{gap:10px}.topbar-actions{gap:8px}.page-heading{align-items:flex-start;gap:15px}.page-heading h1{font-size:27px}.page-heading p{font-size:14px}.welcome-banner{display:flex;flex-direction:column;align-items:stretch;padding:26px 24px 10px;gap:0;border-radius:22px}.welcome-banner .noeva-hero-title{font-size:39px;max-width:420px}.welcome-banner #welcome-title{font-size:15px}.welcome-banner #dashboard-scope{font-size:14px}.welcome-banner .noeva-scene{flex-basis:auto;height:200px;width:260px;align-self:center}.noeva-sculpture{font-size:190px;inset:-10px 0 auto}.noeva-orbit{top:95px;width:270px;height:80px;left:-5px}.noeva-scene-chip{bottom:8px;left:0;font-size:12px}.noeva-scene-chip:last-child{bottom:50px;right:0}.noeva-spark{top:15px;left:20px}.stats-grid{gap:10px;grid-template-columns:repeat(2,minmax(0,1fr))}.stat-card{padding:18px}.stat-card strong{font-size:29px}.stat-card small{font-size:13px}.card{padding:22px}.section-heading{gap:12px}.section-heading h2{font-size:19px}.recent-item{flex-wrap:wrap}.recent-item>div{flex:1;min-width:140px}.recent-item>.button-quiet{margin-left:55px}.noeva-explore{grid-template-columns:1fr;gap:14px}.noeva-explore-card :is(.noeva-orbs,.noeva-cubes){display:block}.noeva-explore-card h2{font-size:21px}.noeva-explore-card{padding:24px;gap:15px}.my-journey-intro{padding:24px;display:block}.my-journey-intro blockquote{font-size:29px}.my-journey-intro .noeva-trail{margin-top:20px;margin-bottom:0}.my-journey-card{grid-template-columns:1fr;padding:22px}.my-journey-actions{justify-content:flex-start}.my-journey-card h2{font-size:20px}.journey-promise{font-size:25px}.auth-layout .login-grid{gap:35px}}
@media(max-width:380px){.welcome-banner .noeva-hero-title{font-size:34px}.topbar-actions #btn-sair{padding:5px}.app-topbar .account-avatar{display:none}.noeva-explore-card :is(.noeva-orbs,.noeva-cubes){display:none}.class-switch-label select{max-width:130px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}html body *{animation:none!important;transition:none!important}.noeva-scene-inner{transform:none}}
