
:root{
  --ink:#141a2a;
  --navy:#111a33;
  --navy-2:#182441;
  --navy-3:#223150;
  --orange:#f47b45;
  --orange-2:#ff9b68;
  --blue:#5da9ff;
  --violet:#9b7bff;
  --green:#47c98d;
  --yellow:#f0b44f;
  --red:#e4636f;
  --canvas:#f4f6fa;
  --surface:#ffffff;
  --surface-2:#f8f9fc;
  --line:#e8ebf2;
  --muted:#778096;
  --muted-2:#a0a7b7;
  --shadow:0 16px 44px rgba(25,33,58,.08);
  --shadow-soft:0 8px 24px rgba(25,33,58,.06);
  --radius-xl:24px;
  --radius-lg:18px;
  --radius-md:14px;
  --sidebar:268px;
  --sidebar-collapsed:84px;
}
*{box-sizing:border-box}
html{font-family:"Gotham","Montserrat","Avenir Next",Arial,sans-serif;background:var(--canvas);color:var(--ink);scroll-behavior:smooth}
body{margin:0;min-height:100vh;background:var(--canvas);font-feature-settings:"ss01" on,"cv11" on}
button,input,select,textarea{font:inherit}
a{color:inherit}
svg{stroke-width:1.8}
.app-shell{min-height:100vh;display:grid;grid-template-columns:var(--sidebar) minmax(0,1fr)}
.sidebar{position:sticky;top:0;height:100vh;background:linear-gradient(180deg,var(--navy),#0d152b);color:white;padding:26px 18px 20px;display:flex;flex-direction:column;z-index:40;box-shadow:18px 0 45px rgba(17,26,51,.08)}
.brand{display:flex;align-items:center;gap:13px;padding:2px 8px 30px}
.brand-symbol,.auth-brand-symbol{width:44px;height:44px;border-radius:15px;background:linear-gradient(135deg,var(--orange),var(--orange-2));display:grid;place-items:center;font-weight:800;font-size:20px;box-shadow:0 12px 28px rgba(244,123,69,.32)}
.brand-copy{min-width:0;flex:1}.brand-copy strong,.brand-copy span{display:block}.brand-copy strong{font-size:20px;letter-spacing:-.04em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.brand-copy span{font-size:11px;color:#96a2ba;margin-top:3px}
.nav-label{font-size:10px;letter-spacing:.16em;color:#68748d;font-weight:800;padding:0 14px 10px}.nav-label-spaced{margin-top:26px}
.side-nav{display:flex;flex-direction:column;gap:6px}
.nav-item{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:14px;color:#aeb8cb;text-decoration:none;font-size:13px;font-weight:700;transition:.22s ease;position:relative}
.nav-item svg{width:18px;height:18px}.nav-item:hover{background:rgba(255,255,255,.07);color:white;transform:translateX(2px)}
.nav-item.active{background:linear-gradient(90deg,rgba(244,123,69,.2),rgba(244,123,69,.08));color:white;box-shadow:inset 3px 0 0 var(--orange)}
.sidebar-card{margin-top:auto;margin-bottom:14px;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.05);border-radius:18px;padding:14px;display:flex;gap:10px;align-items:center}
.sidebar-card-icon{width:36px;height:36px;border-radius:12px;background:rgba(244,123,69,.16);color:var(--orange);display:grid;place-items:center}
.sidebar-card-icon svg{width:18px}.sidebar-card strong,.sidebar-card span{display:block}.sidebar-card strong{font-size:12px}.sidebar-card span{font-size:10px;color:#8f9ab0;margin-top:3px}
.sidebar-footer{border-top:1px solid rgba(255,255,255,.08);padding-top:10px}.danger-nav:hover{background:rgba(228,99,111,.12);color:#ffb9c1}
.workspace{min-width:0}
.topbar{height:84px;background:rgba(255,255,255,.88);backdrop-filter:blur(18px);border-bottom:1px solid rgba(232,235,242,.9);display:flex;align-items:center;justify-content:space-between;padding:0 34px;position:sticky;top:0;z-index:30}
.topbar-left,.topbar-actions{display:flex;align-items:center;gap:14px}.eyebrow,.section-kicker{font-size:10px;letter-spacing:.16em;font-weight:800;color:var(--orange);display:block}.topbar-heading{display:block;font-size:15px;margin-top:3px;letter-spacing:-.02em}
.status-pill{display:flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid var(--line);background:white;border-radius:999px;font-size:11px;font-weight:700;color:#596174}.status-dot{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 4px rgba(71,201,141,.14)}
.profile-chip{display:flex;align-items:center;gap:10px;border:1px solid var(--line);background:#fff;padding:7px 10px 7px 8px;border-radius:16px;box-shadow:var(--shadow-soft)}
.avatar{width:38px;height:38px;border-radius:12px;background:linear-gradient(135deg,#fff0e8,#ffe4d7);color:#c85a25;display:grid;place-items:center;font-weight:800}.profile-text strong,.profile-text span{display:block}.profile-text strong{font-size:12px}.profile-text span{font-size:10px;color:var(--muted);margin-top:2px}.profile-chevron{width:15px;color:#9aa1b0}
.main-content{padding:34px;max-width:1540px;width:100%;margin:0 auto}
.page-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:24px}.page-hero h1{font-size:34px;letter-spacing:-.055em;margin:7px 0 7px}.page-hero p{margin:0;color:var(--muted);font-size:14px}.hero-actions{display:flex;gap:10px;flex-wrap:wrap}
.button-link,button{border:0;border-radius:13px;padding:11px 16px;font-weight:700;font-size:12px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:8px;transition:.2s ease}.button-link svg,button svg{width:17px}.button-link,.primary{background:linear-gradient(135deg,var(--orange),var(--orange-2));color:white;box-shadow:0 10px 22px rgba(244,123,69,.22)}.button-link.secondary{background:white;color:#3e4659;border:1px solid var(--line);box-shadow:none}.button-link:hover,button:hover{transform:translateY(-1px)}
.metric-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:22px}.metric-card{background:white;border:1px solid var(--line);border-radius:20px;padding:19px;box-shadow:var(--shadow-soft);display:flex;align-items:center;gap:15px;min-height:116px;position:relative;overflow:hidden}.metric-card:after{content:"";position:absolute;right:-24px;top:-24px;width:88px;height:88px;border-radius:50%;opacity:.12;background:currentColor}.metric-icon{width:48px;height:48px;border-radius:15px;display:grid;place-items:center}.metric-icon svg{width:21px}.metric-card span,.metric-card small,.metric-card strong{display:block}.metric-card span{font-size:11px;color:var(--muted);font-weight:700}.metric-card strong{font-size:28px;letter-spacing:-.05em;margin:5px 0 3px}.metric-card small{font-size:10px;color:var(--muted-2)}.metric-blue{color:#347ecf}.metric-blue .metric-icon{background:#eaf4ff}.metric-violet{color:#775ad4}.metric-violet .metric-icon{background:#f0ebff}.metric-orange{color:#d86631}.metric-orange .metric-icon{background:#fff0e8}.metric-green{color:#248e61}.metric-green .metric-icon{background:#e9f8f1}
.panel{background:white;border:1px solid var(--line);border-radius:var(--radius-xl);padding:24px;box-shadow:var(--shadow);margin-bottom:20px}.panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:20px;margin-bottom:20px}.panel-header.compact{margin-bottom:14px}.panel-header h2{font-size:21px;letter-spacing:-.04em;margin:5px 0}.panel-header p{color:var(--muted);font-size:12px;margin:0}.panel-badge{display:flex;align-items:center;gap:7px;background:#f5f8fb;border:1px solid var(--line);border-radius:999px;padding:8px 11px;font-size:10px;font-weight:700;color:#667085}.panel-badge svg{width:14px}
.team-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.team-card{border:1px solid var(--line);border-radius:20px;padding:18px;background:linear-gradient(180deg,#fff,#fbfcfe);text-decoration:none;transition:.22s ease;box-shadow:0 6px 18px rgba(25,33,58,.04)}.team-card:hover{transform:translateY(-4px);box-shadow:0 20px 38px rgba(25,33,58,.10);border-color:#dfe3ec}.team-card-top,.team-card-meta,.team-card-footer{display:flex;align-items:center;justify-content:space-between}.team-avatar{width:42px;height:42px;border-radius:14px;background:#edf2fa;color:#314364;display:grid;place-items:center;font-size:12px;font-weight:800}.team-card-body h3{font-size:17px;margin:16px 0 5px;letter-spacing:-.03em}.team-card-body p{font-size:11px;color:var(--muted);margin:0;min-height:31px}.team-card-meta{font-size:10px;color:var(--muted);margin:18px 0 9px}.team-card-meta span{display:flex;align-items:center;gap:5px}.team-card-meta svg{width:13px}.team-card-meta strong{font-size:12px;color:var(--ink)}.team-card-footer{border-top:1px solid var(--line);margin-top:15px;padding-top:13px;font-size:10px;font-weight:800;color:#545d71}.team-card-footer svg{width:15px}.progress{height:8px;background:#edf0f5;border-radius:999px;overflow:hidden}.progress i{display:block;height:100%;background:linear-gradient(90deg,var(--orange),#ffb174);border-radius:inherit}
.risk-badge,.access-badge,.submission-badge{display:inline-flex;padding:5px 9px;border-radius:999px;font-size:9px;font-weight:800}.risk-baixo,.access-confirmed{background:#e8f8f0;color:#217950}.risk-médio,.risk-medio,.access-pending{background:#fff3d8;color:#8b650d}.risk-alto{background:#fde9eb;color:#a13b45}
.content-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:18px}.project-progress{display:flex;align-items:center;justify-content:space-between}.project-progress h2{font-size:22px;margin:7px 0}.project-progress p{font-size:12px;color:var(--muted);margin:0}.progress-ring{--value:0;width:102px;height:102px;border-radius:50%;background:conic-gradient(var(--orange) calc(var(--value)*1%),#edf0f5 0);display:grid;place-items:center;position:relative}.progress-ring:after{content:"";position:absolute;width:78px;height:78px;border-radius:50%;background:#fff}.progress-ring span{position:relative;z-index:1;font-size:18px;font-weight:800}
.task-list,.message-list{display:flex;flex-direction:column}.task-item{display:grid;grid-template-columns:38px minmax(0,1fr) 34px;gap:11px;align-items:center;padding:13px 0;border-bottom:1px solid var(--line)}.task-item:last-child{border-bottom:0}.task-status{width:36px;height:36px;border-radius:12px;display:grid;place-items:center}.task-status.warning{background:#fff2df;color:#c47a1f}.task-status svg{width:17px}.task-copy strong,.task-copy span{display:block}.task-copy strong{font-size:12px}.task-copy span{font-size:10px;color:var(--muted);margin-top:4px}.task-action{width:32px;height:32px;border-radius:10px;background:#f4f6fa;display:grid;place-items:center;color:#5b6475}.task-action svg{width:15px}
.text-link{display:flex;align-items:center;gap:5px;color:#cf632e;text-decoration:none;font-size:10px;font-weight:800}.text-link svg{width:13px}.message-item{display:flex;gap:10px;padding:11px 0;border-bottom:1px solid var(--line)}.message-item:last-child{border-bottom:0}.message-avatar,.member-avatar{width:36px;height:36px;border-radius:12px;background:#eef2f8;color:#344664;display:grid;place-items:center;font-weight:800;font-size:10px;flex:0 0 auto}.message-item.teacher .message-avatar{background:#fff0e8;color:#c75c28}.message-item strong{font-size:11px}.message-item p{font-size:10px;color:var(--muted);margin:4px 0 0}.member-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.member-card{border:1px solid var(--line);border-radius:16px;padding:13px;display:flex;align-items:center;gap:11px}.member-card strong,.member-card span,.member-card small{display:block}.member-card strong{font-size:11px}.member-card span{font-size:9px;color:#cf632e;font-weight:700;margin:3px 0}.member-card small{font-size:9px;color:var(--muted)}
.page-title{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:22px}.page-title h2,.main-content>h2{font-size:29px;letter-spacing:-.05em;margin:0 0 6px}.page-title p{font-size:12px;color:var(--muted);margin:0}.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius-xl);padding:22px;box-shadow:var(--shadow);margin-bottom:18px}.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:18px}.kpis .card{margin:0;box-shadow:var(--shadow-soft)}.kpis span{font-size:10px;color:var(--muted);font-weight:700}.kpis strong{display:block;font-size:27px;margin-top:8px}
.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}label{display:block;font-size:10px;letter-spacing:.02em;font-weight:800;color:#515a6e;margin:13px 0 7px}input,select,textarea{width:100%;border:1px solid #dfe4ec;background:#fbfcfe;border-radius:13px;padding:12px 13px;color:var(--ink);outline:none;transition:.2s}input:focus,select:focus,textarea:focus{border-color:var(--orange);box-shadow:0 0 0 4px rgba(244,123,69,.11);background:white}textarea{min-height:96px;resize:vertical}
.table-wrap{width:100%;overflow:auto;border:1px solid var(--line);border-radius:16px}table{width:100%;border-collapse:collapse;min-width:720px;background:white;font-size:11px}th{background:#f8f9fc;color:#7c8496;font-size:9px;text-transform:uppercase;letter-spacing:.08em}th,td{padding:13px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:middle}tbody tr:hover{background:#fffaf7}.team-link{font-weight:800;color:#ca5e29;text-decoration:none}
.flash{display:flex;align-items:center;gap:10px;border:1px solid var(--line);background:white;border-radius:16px;padding:12px 14px;margin-bottom:16px;box-shadow:var(--shadow-soft);font-size:11px}.flash-icon{width:30px;height:30px;border-radius:10px;background:#edf4ff;color:#3d78b8;display:grid;place-items:center}.flash-icon svg{width:15px}.flash.success{border-color:#ccebdc}.flash.success .flash-icon{background:#e8f8f0;color:#248e61}.flash.danger{border-color:#f3cfd3}.flash.danger .flash-icon{background:#fdebed;color:#b4404b}
.empty-state{text-align:center;padding:46px 22px}.empty-icon{width:56px;height:56px;border-radius:18px;background:#f0f3f8;color:#6b7890;display:grid;place-items:center;margin:0 auto 14px}.empty-icon svg{width:24px}.empty-state h3{margin:0 0 6px}.empty-state p{margin:0;color:var(--muted);font-size:12px}.empty-inline{display:flex;align-items:center;gap:9px;padding:18px;color:var(--muted);font-size:11px}.empty-inline svg{width:17px}
.auth-shell{min-height:100vh;display:grid;place-items:center;padding:28px;background:#eef1f6;position:relative;overflow:hidden}.auth-glow{position:absolute;border-radius:50%;filter:blur(90px);opacity:.45}.auth-glow-one{width:430px;height:430px;background:#ffd3bd;left:-140px;top:-130px}.auth-glow-two{width:380px;height:380px;background:#cad8ff;right:-120px;bottom:-120px}
.auth-layout{width:min(1080px,100%);min-height:630px;background:white;border:1px solid rgba(255,255,255,.7);border-radius:30px;box-shadow:0 34px 90px rgba(31,43,73,.16);display:grid;grid-template-columns:1.15fr .85fr;overflow:hidden;position:relative;z-index:2}.auth-showcase{background:linear-gradient(145deg,#111a33,#1d2b4c);color:white;padding:42px;display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}.auth-showcase:before,.auth-showcase:after{content:"";position:absolute;border-radius:50%;background:rgba(255,255,255,.05)}.auth-showcase:before{width:320px;height:320px;right:-120px;top:-100px}.auth-showcase:after{width:240px;height:240px;left:-90px;bottom:-100px}.auth-brand{display:flex;align-items:center;gap:12px;position:relative;z-index:1}.auth-brand strong,.auth-brand span{display:block}.auth-brand strong{font-size:20px}.auth-brand span{font-size:10px;color:#a4afc4;margin-top:2px}.auth-showcase-copy{position:relative;z-index:1}.auth-kicker{font-size:10px;letter-spacing:.16em;color:#ffac84;font-weight:800}.auth-showcase h1{font-size:43px;letter-spacing:-.06em;line-height:1.08;margin:16px 0}.auth-showcase p{font-size:13px;line-height:1.8;color:#b9c2d3;max-width:470px}.auth-feature-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;position:relative;z-index:1}.auth-feature-row div{border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.05);border-radius:15px;padding:12px;display:flex;gap:8px;align-items:center;font-size:9px;color:#c5cede}.auth-feature-row svg{width:15px;color:#ff9a69}
.login-card{padding:54px 48px;display:flex;flex-direction:column;justify-content:center}.login-heading h2{font-size:29px;letter-spacing:-.05em;margin:8px 0}.login-heading p{font-size:12px;color:var(--muted);margin:0 0 24px}.modern-form label{margin-top:14px}.input-shell{position:relative}.input-shell svg{position:absolute;left:13px;top:50%;transform:translateY(-50%);width:16px;color:#8790a2}.input-shell input{padding-left:40px;height:48px}.auth-submit{width:100%;margin-top:24px;height:48px}.auth-note{display:flex;align-items:center;gap:7px;font-size:9px;color:var(--muted);margin-top:18px;justify-content:center}.auth-note svg{width:14px}
.icon-button{width:40px;height:40px;padding:0;border-radius:12px;background:#f2f4f8;color:#4b5569;box-shadow:none}.mobile-menu{display:none}.sidebar-overlay{display:none}.muted,small{color:var(--muted)}
@media(max-width:1180px){.metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.team-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.member-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.content-grid{grid-template-columns:1fr}.form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:900px){.app-shell{display:block}.sidebar{position:fixed;left:calc(var(--sidebar)*-1 - 20px);width:var(--sidebar);transition:.25s ease}.sidebar.open{left:0}.sidebar-overlay.show{display:block;position:fixed;inset:0;background:rgba(11,17,33,.55);z-index:35}.mobile-menu{display:grid}.topbar{padding:0 18px}.status-pill{display:none}.main-content{padding:22px}.page-hero,.page-title{align-items:flex-start;flex-direction:column}.hero-actions{width:100%}.hero-actions .button-link{flex:1}.auth-layout{grid-template-columns:1fr;max-width:520px}.auth-showcase{display:none}.login-card{padding:42px 34px}.profile-text{display:none}}
@media(max-width:620px){.metric-grid,.team-grid,.member-grid,.form-grid,.kpis{grid-template-columns:1fr}.main-content{padding:16px}.topbar{height:72px}.topbar-heading{font-size:12px}.eyebrow{font-size:8px}.profile-chip{padding:5px}.profile-chevron{display:none}.page-hero h1{font-size:29px}.panel,.card{padding:18px;border-radius:20px}.project-progress{align-items:flex-start;gap:18px}.progress-ring{width:86px;height:86px}.progress-ring:after{width:64px;height:64px}.progress-ring span{font-size:15px}.auth-shell{padding:14px}.auth-layout{border-radius:22px;min-height:auto}.login-card{padding:32px 22px}.table-wrap{border:0}table{min-width:660px}.hero-actions{flex-direction:column}.hero-actions .button-link{width:100%}}


/* ===== SGPI V24 — FIGMA SYSTEM ===== */
.metric-text{font-size:20px!important;margin-top:9px!important}
.hero-team{display:flex;align-items:center;gap:16px}
.hero-team-avatar{width:62px;height:62px;border-radius:20px;background:linear-gradient(135deg,#1d2b4c,#33456b);color:white;display:grid;place-items:center;font-size:18px;font-weight:800;box-shadow:0 14px 28px rgba(17,26,51,.18)}
.form-actions{display:flex;justify-content:flex-end;margin-top:16px}
.collapsible-panel{animation:fadeSlide .28s ease both}
@keyframes fadeSlide{from{opacity:0;transform:translateY(-6px)}to{opacity:1;transform:none}}
.count-chip{min-width:34px;height:28px;padding:0 10px;border-radius:999px;display:grid;place-items:center;font-size:11px;font-weight:800}
.success-chip{background:#e8f8f0;color:#248e61}.warning-chip{background:#fff3dd;color:#b6751d}
.task-status.success{background:#e8f8f0;color:#248e61}
.progress-feature{display:flex;align-items:center;justify-content:space-between;padding:26px 30px}
.progress-feature h2{margin:6px 0;font-size:24px;letter-spacing:-.04em}.progress-feature p{margin:0;color:var(--muted);font-size:12px}
.score-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.score-card{border:1px solid var(--line);background:linear-gradient(180deg,#fff,#fafbfe);border-radius:18px;padding:18px}
.score-card span,.score-card strong{display:block}.score-card span{font-size:10px;color:var(--muted);font-weight:700}.score-card strong{font-size:25px;margin:8px 0 13px}
.mini-progress{height:7px;background:#edf0f5;border-radius:999px;overflow:hidden}.mini-progress i{display:block;height:100%;background:linear-gradient(90deg,#617cf5,#9b7bff);border-radius:inherit}
.compact-metrics{grid-template-columns:repeat(2,minmax(0,280px))}
.student-list{display:flex;flex-direction:column}
.student-row{display:grid;grid-template-columns:44px minmax(180px,1.4fr) repeat(3,minmax(120px,.8fr)) 42px;gap:14px;align-items:center;padding:14px 4px;border-bottom:1px solid var(--line)}
.student-row:last-child{border-bottom:0}.student-main strong,.student-main span,.student-cell small,.student-cell strong{display:block}.student-main strong{font-size:12px}.student-main span{font-size:10px;color:var(--muted);margin-top:4px}.student-cell small{font-size:8px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.student-cell strong{font-size:10px;margin-top:4px}
.access-badge{gap:5px;align-items:center}.access-badge svg{width:12px;height:12px}
.icon-action{width:36px;height:36px;padding:0;border-radius:11px;background:#f2f4f8;color:#536074;box-shadow:none}.icon-action svg{width:16px}.danger-action{background:#fdecee;color:#b7424d}
.import-grid,.submission-page-grid{grid-template-columns:1.08fr .92fr}
.upload-panel{text-align:center;padding:36px}.upload-icon,.onboarding-icon{width:62px;height:62px;border-radius:20px;background:#fff0e8;color:#d86834;display:grid;place-items:center;margin:0 auto 15px}.upload-icon svg,.onboarding-icon svg{width:26px}
.upload-panel h2,.guide-panel h2,.onboarding-card h1{font-size:26px;letter-spacing:-.05em;margin:8px 0}.upload-panel>p,.onboarding-card>p{font-size:12px;line-height:1.7;color:var(--muted)}
.drop-zone{border:1.5px dashed #ced5e1;background:#fafbfe;border-radius:18px;padding:26px;display:flex;flex-direction:column;align-items:center;gap:6px;cursor:pointer;transition:.2s;margin:20px 0}.drop-zone:hover{border-color:var(--orange);background:#fffaf7}.drop-zone svg{width:27px;color:#66728a}.drop-zone strong{font-size:12px}.drop-zone span{font-size:10px;color:var(--muted)}.drop-zone input{display:none}.compact-drop{padding:20px;margin:14px 0}
.full-button{width:100%}
.guide-step{display:flex;gap:12px;padding:13px 0;border-bottom:1px solid var(--line)}.guide-step:last-child{border-bottom:0}.guide-step>span{width:30px;height:30px;border-radius:10px;background:#eef2f8;color:#3c4d6a;display:grid;place-items:center;font-size:10px;font-weight:800;flex:0 0 auto}.guide-step strong,.guide-step p{display:block}.guide-step strong{font-size:11px}.guide-step p{margin:4px 0 0;font-size:10px;color:var(--muted)}
.info-box{display:flex;align-items:flex-start;gap:10px;background:#f3f7ff;border:1px solid #e0e9f9;border-radius:15px;padding:13px;margin-top:16px;color:#49617e}.info-box svg{width:17px;flex:0 0 auto}.info-box p{margin:0;font-size:10px;line-height:1.6}
.team-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:13px}.summary-card{border:1px solid var(--line);border-radius:18px;padding:15px;text-decoration:none;background:#fff;transition:.2s}.summary-card:hover{transform:translateY(-3px);box-shadow:var(--shadow-soft)}.summary-card-head{display:flex;justify-content:space-between;align-items:center}.summary-card-head span{font-size:12px;font-weight:800}.summary-card h3{font-size:13px;margin:12px 0 3px}.summary-card p{font-size:9px;color:var(--muted);height:26px;margin:0 0 12px}.summary-stats{display:flex;justify-content:space-between;margin-top:11px;font-size:8px;color:var(--muted)}.summary-stats b{color:var(--ink)}
.activity-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.activity-card{border:1px solid var(--line);border-radius:18px;padding:16px;background:linear-gradient(180deg,#fff,#fbfcfe);display:flex;flex-direction:column}.activity-card-head{display:flex;justify-content:space-between;gap:8px}.type-chip,.sprint-chip{display:inline-flex;align-items:center;padding:5px 8px;border-radius:999px;background:#eef2f7;color:#667085;font-size:8px;font-weight:800}.required-chip{background:#fff0e8;color:#c85c29}.activity-card h3{font-size:14px;margin:14px 0 5px}.activity-card>p{font-size:10px;color:var(--muted);line-height:1.55;min-height:31px}.activity-meta{display:flex;flex-wrap:wrap;gap:10px;margin:11px 0;font-size:8px;color:#6f788b}.activity-meta span{display:flex;align-items:center;gap:4px}.activity-meta svg{width:12px}.status-form{display:grid;grid-template-columns:1fr 36px;gap:8px;margin-top:auto}.status-form select{padding:9px 10px;font-size:9px}
.submission-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.submission-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:18px;box-shadow:var(--shadow-soft);display:flex;flex-direction:column}.submission-card-head{display:flex;justify-content:space-between;gap:8px;align-items:flex-start}.submission-card h3{font-size:15px;margin:15px 0 6px}.submission-card>p{font-size:10px;color:var(--muted);line-height:1.55;min-height:46px}.submission-badge{background:#edf1f7;color:#596477}.delivery-info{border-top:1px solid var(--line);padding-top:11px;margin-top:auto}.delivery-info>div{display:flex;gap:6px;align-items:center;font-size:9px;color:var(--muted);margin:6px 0}.delivery-info svg{width:13px}.feedback-box{background:#f4f7fd;border-radius:12px;padding:9px!important;align-items:flex-start!important}.feedback-box p{margin:0;line-height:1.5}.no-delivery{display:flex;align-items:center;gap:7px;color:#8c95a6;font-size:9px;margin:auto 0 14px}.no-delivery svg{width:14px}
.review-feed{display:flex;flex-direction:column;gap:16px}.review-card{background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow-soft);overflow:hidden}.review-card-header{display:flex;justify-content:space-between;align-items:center;padding:16px 18px;border-bottom:1px solid var(--line)}.review-team{display:flex;align-items:center;gap:10px}.review-team a,.review-team span{display:block}.review-team a{font-size:12px;font-weight:800;text-decoration:none}.review-team span{font-size:9px;color:var(--muted);margin-top:3px}.review-content{display:grid;grid-template-columns:1.1fr .9fr;gap:24px;padding:20px}.review-description h3{font-size:17px;margin:12px 0 6px}.review-description p{font-size:11px;color:var(--muted);line-height:1.6}.material-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.mini-button{display:inline-flex;align-items:center;gap:6px;padding:8px 10px;border:1px solid var(--line);border-radius:11px;text-decoration:none;font-size:9px;font-weight:700;background:#fafbfe}.mini-button svg{width:13px}.review-form textarea{min-height:76px}.review-form button{width:100%;margin-top:10px}
.instruction-text{font-size:13px;line-height:1.8;color:#505a6d}.current-file{display:flex;align-items:center;gap:8px;background:#ecf8f2;color:#287855;border-radius:13px;padding:11px;font-size:9px;margin-bottom:10px}.current-file svg{width:15px}
.chat-shell{background:#fff;border:1px solid var(--line);border-radius:24px;box-shadow:var(--shadow);overflow:hidden}.chat-header{display:flex;align-items:center;gap:11px;padding:16px 20px;border-bottom:1px solid var(--line)}.chat-header>div:nth-child(2){flex:1}.chat-header strong,.chat-header span{display:block}.chat-header strong{font-size:12px}.chat-header>div:nth-child(2)>span{font-size:9px;color:var(--muted);margin-top:3px}.chat-messages-modern{height:min(58vh,560px);overflow-y:auto;padding:22px;background:linear-gradient(180deg,#f8fafe,#f4f6fa)}.bubble-row{display:flex;gap:9px;align-items:flex-end;margin-bottom:15px;max-width:72%}.teacher-row{margin-left:auto;flex-direction:row-reverse}.bubble{background:white;border:1px solid var(--line);border-radius:16px 16px 16px 4px;padding:11px 13px;box-shadow:0 5px 14px rgba(25,33,58,.05)}.teacher-row .bubble{background:#172440;color:white;border-color:#172440;border-radius:16px 16px 4px 16px}.bubble-meta{display:flex;gap:12px;justify-content:space-between}.bubble-meta strong{font-size:9px}.bubble-meta span{font-size:8px;color:var(--muted)}.teacher-row .bubble-meta span{color:#9facbf}.bubble p{font-size:10px;line-height:1.55;margin:6px 0 0}.composer{display:grid;grid-template-columns:1fr 46px;gap:10px;padding:14px;border-top:1px solid var(--line)}.composer textarea{min-height:46px;max-height:110px}.composer button{width:46px;height:46px;padding:0;border-radius:14px}
.chat-header .status-pill{display:inline-flex;align-items:center;gap:8px;margin-left:auto;white-space:nowrap}.chat-header .status-dot{display:inline-block;flex:0 0 7px}
.backup-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin-bottom:20px}.backup-card{background:#fff;border:1px solid var(--line);border-radius:24px;padding:24px;text-decoration:none;box-shadow:var(--shadow-soft);transition:.22s;display:flex;flex-direction:column;min-height:255px}.backup-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.backup-card.primary-backup{background:linear-gradient(145deg,#172440,#26385c);color:white;border:0}.backup-card-icon{width:52px;height:52px;border-radius:17px;background:#eef3fa;color:#49617f;display:grid;place-items:center}.primary-backup .backup-card-icon{background:rgba(255,255,255,.1);color:#ff9a69}.backup-card span{font-size:9px;letter-spacing:.12em;font-weight:800;color:var(--orange);margin-top:24px}.backup-card h2{font-size:24px;margin:7px 0}.backup-card p{font-size:11px;line-height:1.65;color:var(--muted)}.primary-backup p{color:#b5c0d2}.backup-action{margin-top:auto;display:flex;align-items:center;justify-content:space-between;font-size:10px;font-weight:800;padding-top:18px;border-top:1px solid var(--line)}.primary-backup .backup-action{border-color:rgba(255,255,255,.12)}.backup-action svg{width:16px}.guide-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.guide-grid .guide-step{border:0}
.onboarding-wrap{min-height:calc(100vh - 170px);display:grid;place-items:center}.onboarding-card{width:min(500px,100%);background:white;border:1px solid var(--line);border-radius:26px;padding:34px;box-shadow:var(--shadow);text-align:center}.onboarding-card form{text-align:left;margin-top:22px}
.error-page{text-align:center;min-height:65vh;display:flex;flex-direction:column;align-items:center;justify-content:center}.error-code{font-size:92px;font-weight:800;letter-spacing:-.08em;color:#e7eaf0;line-height:1}.error-icon{width:60px;height:60px;border-radius:20px;background:#fdecee;color:#b7424d;display:grid;place-items:center;margin:-8px 0 14px}.error-page h1{font-size:27px;margin:0}.error-page p{font-size:12px;color:var(--muted);max-width:480px;line-height:1.7}
@media(max-width:1180px){.team-summary-grid{grid-template-columns:repeat(2,1fr)}.activity-board,.submission-grid{grid-template-columns:repeat(2,1fr)}.student-row{grid-template-columns:44px minmax(180px,1.4fr) repeat(2,minmax(110px,.7fr)) 42px}.student-row .student-cell:nth-of-type(3){display:none}}
@media(max-width:900px){.review-content{grid-template-columns:1fr}.backup-grid{grid-template-columns:1fr}.guide-grid{grid-template-columns:1fr}.score-grid{grid-template-columns:1fr}.student-row{grid-template-columns:44px 1fr auto 42px}.student-row .student-cell{display:none}.compact-metrics{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.team-summary-grid,.activity-board,.submission-grid,.compact-metrics{grid-template-columns:1fr}.progress-feature{align-items:flex-start;gap:18px}.hero-team{align-items:flex-start}.hero-team-avatar{width:52px;height:52px}.review-card-header{align-items:flex-start}.review-team{align-items:flex-start}.review-content{padding:16px}.bubble-row{max-width:92%}.chat-messages-modern{padding:14px}.chat-header .status-pill{display:none}.backup-card{min-height:230px}.onboarding-card{padding:26px 20px}}

.pulse-panel{animation:pulsePanel .8s ease}@keyframes pulsePanel{0%,100%{box-shadow:var(--shadow)}50%{box-shadow:0 0 0 6px rgba(244,123,69,.12),var(--shadow)}}

/* ===== SGPI V26 — MULTITURMAS ===== */
.class-context-chip{display:flex;align-items:center;gap:9px;text-decoration:none;border:1px solid var(--line);background:#fff;padding:7px 10px;border-radius:15px;box-shadow:var(--shadow-soft);transition:.2s}
.class-context-chip:hover{transform:translateY(-1px);border-color:#d9dee8}
.class-context-chip>svg:first-child{width:18px;color:var(--orange)}
.class-context-chip>svg:last-child{width:14px;color:var(--muted)}
.class-context-chip small,.class-context-chip strong{display:block}
.class-context-chip small{font-size:7px;letter-spacing:.1em;color:var(--muted)}
.class-context-chip strong{font-size:10px;margin-top:2px;max-width:150px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.class-selection-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}
.class-select-card{background:#fff;border:1px solid var(--line);border-radius:24px;padding:24px;box-shadow:var(--shadow-soft);transition:.22s}
.class-select-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.class-select-card h2{font-size:20px;letter-spacing:-.04em;margin:10px 0 5px}
.class-select-card p{font-size:10px;color:var(--muted);min-height:24px}
.class-card-icon{width:50px;height:50px;border-radius:16px;background:#fff0e8;color:#ce612d;display:grid;place-items:center;margin-bottom:18px}
.class-card-icon.small{width:40px;height:40px;border-radius:13px;margin:0}
.class-card-icon svg{width:21px}
.class-management-grid{grid-template-columns:.8fr 1.2fr}
.class-admin-list{display:flex;flex-direction:column}
.class-admin-row{display:grid;grid-template-columns:42px minmax(0,1fr) 70px 70px 38px;gap:12px;align-items:center;padding:13px 0;border-bottom:1px solid var(--line)}
.class-admin-row:last-child{border-bottom:0}.inactive-row{opacity:.55}
.class-admin-main strong,.class-admin-main span,.class-stat small,.class-stat strong{display:block}
.class-admin-main strong{font-size:11px}.class-admin-main span{font-size:9px;color:var(--muted);margin-top:4px}
.class-stat{text-align:center}.class-stat small{font-size:7px;text-transform:uppercase;color:var(--muted)}.class-stat strong{font-size:15px;margin-top:3px}
.inline-enrollment-form{display:grid;grid-template-columns:1fr 1fr auto;gap:12px;align-items:end}
.assignment-list{display:flex;flex-direction:column}
.assignment-row{display:grid;grid-template-columns:42px minmax(150px,.9fr) minmax(330px,1.7fr) minmax(130px,.7fr) auto;gap:12px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line)}
.assignment-row:last-child{border-bottom:0}
.assignment-form{display:grid;grid-template-columns:1fr 1fr 38px;gap:8px;align-items:end}
.assignment-form label{margin-top:0}.assignment-form select,.assignment-form input{padding:9px 10px;font-size:9px}
.save-action{background:#eaf6f0;color:#27825b}.access-column{display:flex;justify-content:flex-start}.student-actions{display:flex;gap:6px}
@media(max-width:1180px){.class-selection-grid{grid-template-columns:repeat(2,1fr)}.assignment-row{grid-template-columns:42px 1fr auto}.assignment-form{grid-column:2/4;width:100%}.access-column{grid-column:2}.student-actions{grid-column:3;grid-row:1}}
@media(max-width:900px){.class-management-grid{grid-template-columns:1fr}.inline-enrollment-form{grid-template-columns:1fr 1fr}.inline-enrollment-form button{grid-column:1/3}.class-context-chip{display:none}}
@media(max-width:620px){.class-selection-grid{grid-template-columns:1fr}.inline-enrollment-form{grid-template-columns:1fr}.inline-enrollment-form button{grid-column:auto}.assignment-row{grid-template-columns:40px 1fr}.assignment-form{grid-column:1/3;grid-template-columns:1fr}.assignment-form .icon-action{width:100%}.access-column{grid-column:1/3}.student-actions{grid-column:1/3;grid-row:auto}.class-admin-row{grid-template-columns:40px 1fr 35px}.class-stat{display:none}}

.release-confirmation{display:flex;flex-direction:column;gap:6px;padding:12px 14px;margin:12px 0 18px;border:1px solid #bfe7d4;border-radius:14px;background:#eefaf4}
.release-confirmation span{display:flex;align-items:center;gap:6px;font-size:8px;font-weight:800;letter-spacing:.12em;color:#247450}
.release-confirmation span svg{width:14px}
.release-confirmation strong{font-size:10px;color:#183c2d}
.version-ribbon{position:fixed;right:14px;bottom:14px;z-index:1000;background:#111a33;color:#fff;border-radius:999px;padding:8px 12px;font-size:8px;font-weight:800;letter-spacing:.08em;box-shadow:0 10px 30px rgba(17,26,51,.25)}

.content-feed{display:flex;flex-direction:column;gap:18px}.content-card{background:#122238;border:1px solid #28405d;border-radius:22px;padding:22px;box-shadow:var(--shadow)}.content-card-head{display:flex;justify-content:space-between;gap:16px;align-items:flex-start}.content-card-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.content-delete-form{margin:0}.content-delete-form .mini-button{cursor:pointer}.content-card h2{margin:10px 0 6px;font-size:21px}.content-card-head p,.content-description{color:var(--muted);font-size:12px;margin:0}.content-meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.content-meta span{display:inline-flex;align-items:center;padding:3px 8px;border:1px solid #304d6e;border-radius:999px;background:#1b304a;color:#c9dbea;font-size:10px;font-weight:700;letter-spacing:.01em}.content-description{line-height:1.7;margin:16px 0}.content-preview{margin-top:16px;border:1px solid #28405d;border-radius:16px;overflow:hidden;background:#0c1a2c}.content-preview img,.content-preview video{display:block;width:100%;max-height:580px;object-fit:contain;background:#07111f}.content-preview iframe{display:block;width:100%;height:min(70vh,680px);border:0;background:#fff}.file-preview{padding:24px;display:flex;align-items:center;gap:13px;color:#dce7f2}.file-preview svg{width:30px;height:30px;color:#79b7e5}.file-preview strong,.file-preview span{display:block}.file-preview strong{font-size:12px}.file-preview span{font-size:10px;color:var(--muted);margin-top:4px}.external-content-link{display:inline-flex;align-items:center;gap:7px;margin-top:15px;color:#8ec4ea;text-decoration:none;font-size:11px;font-weight:800}.external-content-link svg{width:15px}@media(max-width:620px){.content-card{padding:17px}.content-card-head{flex-direction:column}.content-card-actions{justify-content:flex-start}.content-preview iframe{height:430px}}
.reset-account-list,.teacher-manager-list{display:flex;flex-direction:column;gap:10px}.reset-account-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}.reset-account-row:last-child{border:0}.reset-account-row strong,.reset-account-row span{display:block}.reset-account-row strong{font-size:11px}.reset-account-row span{font-size:9px;color:var(--muted);margin-top:3px}.teacher-manager{border:1px solid var(--line);border-radius:16px;background:#14263d;overflow:hidden}.teacher-manager summary{list-style:none;display:flex;align-items:center;gap:10px;padding:14px;cursor:pointer}.teacher-manager summary::-webkit-details-marker{display:none}.teacher-manager summary>div:nth-child(2){flex:1}.teacher-manager summary strong,.teacher-manager summary span{display:block}.teacher-manager summary strong{font-size:12px}.teacher-manager summary span{font-size:9px;color:var(--muted);margin-top:3px}.teacher-manager summary>svg{width:16px;color:var(--muted);transition:.2s}.teacher-manager[open] summary>svg{transform:rotate(180deg)}.teacher-manager-body{border-top:1px solid var(--line);padding:15px}.teacher-class-chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:15px}.teacher-class-chip{display:flex;align-items:center;gap:5px;background:#1b3551;border:1px solid #304d6e;border-radius:999px;padding:4px 5px 4px 10px;font-size:9px;color:#dce8f5}.teacher-class-chip .icon-action{width:23px;height:23px;border-radius:50%;background:#294967;color:#dce8f5}.teacher-actions-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px}.teacher-actions-grid label{margin-top:0}.inline-action{display:flex;gap:8px}.inline-action select{flex:1}.inline-action button{white-space:nowrap}.new-class-fields{display:grid;grid-template-columns:1fr 110px;gap:8px;margin-bottom:8px}@media(max-width:700px){.teacher-actions-grid{grid-template-columns:1fr}.reset-account-row{align-items:flex-start;flex-direction:column}.new-class-fields{grid-template-columns:1fr}}

/* ===== SGPI V27 — TEMA AZUL-MARINHO =====
   Paleta sóbria, baixo brilho e contraste confortável para uso prolongado. */
:root{
  --ink:#17253a;
  --navy:#0b1f3a;
  --navy-2:#102b4f;
  --navy-3:#163962;
  --blue:#377fc4;
  --orange:#2e73b8;
  --orange-2:#4d92d0;
  --canvas:#eaf0f6;
  --surface:#f8fafc;
  --surface-2:#f1f5f9;
  --line:#d9e2ec;
  --muted:#65748a;
  --muted-2:#8a98aa;
  --shadow:0 14px 38px rgba(15,38,67,.08);
  --shadow-soft:0 7px 20px rgba(15,38,67,.055);
}
html,body{background:var(--canvas)}
body{line-height:1.5;background:linear-gradient(135deg,#eef3f8 0%,#e7eef5 100%)}
.sidebar{background:linear-gradient(180deg,#0b1f3a 0%,#08182d 100%);box-shadow:14px 0 36px rgba(8,24,45,.09)}
.brand-symbol,.auth-brand-symbol{background:linear-gradient(135deg,#2e73b8,#63a3d8);box-shadow:0 10px 24px rgba(46,115,184,.28)}
.brand-copy span{color:#a9bad0}.nav-label{color:#7e94b0}.nav-item{color:#c0ccda}.nav-item.active{background:linear-gradient(90deg,rgba(77,146,208,.26),rgba(77,146,208,.07));box-shadow:inset 3px 0 0 #67a6da}.sidebar-card{background:rgba(255,255,255,.055)}.sidebar-card-icon{background:rgba(99,163,216,.16);color:#83b9e4}
.topbar{background:rgba(248,250,252,.92);border-color:rgba(217,226,236,.94)}
.eyebrow,.section-kicker{color:#2e73b8}.avatar{background:linear-gradient(135deg,#e5f0fa,#cfe3f5);color:#1e5c99}
.button-link,.primary{background:linear-gradient(135deg,#2469ac,#4c91cf);box-shadow:0 9px 20px rgba(36,105,172,.22)}
.button-link:hover,.primary:hover{filter:brightness(1.03);box-shadow:0 12px 25px rgba(36,105,172,.28)}
.panel,.card,.metric-card,.submission-card,.review-card,.chat-shell,.onboarding-card{background:#f8fafc;box-shadow:var(--shadow)}.panel-badge{background:#eef3f8;color:#586a80}
.metric-blue{color:#2d6fae}.metric-blue .metric-icon{background:#e1edf7}.metric-violet{color:#586f9a}.metric-violet .metric-icon{background:#e7edf4}.metric-orange{color:#23639f}.metric-orange .metric-icon{background:#e1edf7}
.team-card,.score-card,.activity-card{background:linear-gradient(180deg,#fafcfe,#f2f6fa)}.team-card:hover{border-color:#cfdae7;box-shadow:0 16px 32px rgba(15,38,67,.09)}.team-avatar{background:#e2ebf4;color:#294d76}.progress i{background:linear-gradient(90deg,#2e73b8,#69a7da)}
.text-link,.team-link{color:#286dac}.message-item.teacher .message-avatar{background:#e5f0fa;color:#2766a1}.member-card span{color:#286dac}
input,select,textarea{background:#f2f6fa;border-color:#d8e2ec}input:focus,select:focus,textarea:focus{border-color:#3a82c3;box-shadow:0 0 0 4px rgba(58,130,195,.13);background:#fafdff}
tbody tr:hover{background:#f4f8fc}.task-status.warning{background:#fff5e6;color:#a56a15}.task-action{background:#edf2f7;color:#50647b}
.auth-shell{background:#edf3f8}.auth-glow-one{background:#c7ddf0}.auth-glow-two{background:#c9d8ea}.auth-showcase{background:linear-gradient(145deg,#0b1f3a,#16446f)}.auth-kicker{color:#8ec4ea}.auth-feature-row svg{color:#78b5e0}
.hero-team-avatar{background:linear-gradient(135deg,#12375f,#286faa);box-shadow:0 12px 24px rgba(11,31,58,.18)}.mini-progress i{background:linear-gradient(90deg,#3d7fbd,#729fca)}
.chat-messages-modern{background:linear-gradient(180deg,#f8fafc,#f1f5f9)}.teacher-row .bubble{background:#123b64;border-color:#123b64}.backup-card.primary-backup{background:linear-gradient(145deg,#0b1f3a,#164b78)}.primary-backup .backup-card-icon{color:#9dcbed}.backup-card span{color:#2c72b1}.class-context-chip>svg:first-child{color:#2e73b8}.class-card-icon{background:#e7f1fa;color:#286ca9}.required-chip{background:#e7f1fa;color:#286ca9}
.version-ribbon{background:#0b1f3a;box-shadow:0 10px 26px rgba(11,31,58,.24)}

/* Acessibilidade e conforto visual. */
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid rgba(58,130,195,.38);outline-offset:3px}
::selection{background:#cfe4f5;color:#0b1f3a}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important;transition-duration:.01ms!important}}

/* Modo azul-marinho: elimina superfícies brancas e reduz o brilho da tela. */
:root{
  --ink:#e7edf5;
  --canvas:#091525;
  --surface:#122238;
  --surface-2:#182a42;
  --line:#28405d;
  --muted:#a8b8cb;
  --muted-2:#8093aa;
  --shadow:0 16px 38px rgba(0,0,0,.22);
  --shadow-soft:0 8px 22px rgba(0,0,0,.16);
}
html,body{background:#091525}body{background:radial-gradient(circle at 85% -10%,#193c64 0%,transparent 34%),linear-gradient(135deg,#091525 0%,#0d1c30 100%)}
.topbar{background:rgba(13,29,48,.88);border-color:#28405d}.status-pill,.profile-chip,.class-context-chip{background:#14253b;border-color:#2b4664;color:#d9e5f2}.profile-chip{box-shadow:none}.avatar{background:linear-gradient(135deg,#214b73,#28649a);color:#f2f7fc}
.panel,.card,.metric-card,.submission-card,.review-card,.chat-shell,.onboarding-card,.backup-card,.class-select-card{background:#122238;border-color:#28405d;box-shadow:var(--shadow)}
.team-card,.score-card,.activity-card,.summary-card{background:linear-gradient(180deg,#14263d,#102037);border-color:#28405d}.table-wrap{border-color:#28405d}table{background:#122238}th{background:#182a42;color:#aebed0}th,td,.task-item,.message-item,.review-card-header,.chat-header,.composer,.delivery-info{border-color:#28405d}tbody tr:hover{background:#182d47}
.panel-badge,.type-chip,.sprint-chip,.submission-badge,.mini-button{background:#1b304a;border-color:#304d6e;color:#c0cede}.button-link.secondary{background:#182b43;color:#e7edf5;border-color:#365575}.icon-button{background:#1b304a;color:#d8e5f2}.task-action{background:#1b304a;color:#c8d8e8}
.checkbox-line{display:flex;align-items:center;gap:8px;margin-top:14px;color:var(--muted);font-size:11px;font-weight:700}.checkbox-line input{width:auto}.activity-publication-form{margin-top:9px}.attachments-list span{display:flex;flex-direction:column;gap:4px}.attachments-list a{color:#8ec4ea;text-decoration:none;font-size:10px}
.attachments-list .attachment-action{flex-direction:row;align-items:center;justify-content:space-between;gap:10px}.attachments-list .attachment-action .mini-button{flex:0 0 auto;cursor:pointer}
.submission-attachment-block{display:flex;flex-direction:column;gap:0}.submission-attachment-block .activity-attachment{border-radius:12px 12px 0 0;padding:8px}.attachment-download{display:inline-flex;align-items:center;justify-content:center;color:#8ec4ea}.attachment-download svg{width:15px}.submission-preview{border:1px solid #34516e;border-top:0;border-radius:0 0 12px 12px;overflow:hidden;background:#0c1a2c}.submission-preview img,.submission-preview video{display:block;width:100%;max-height:220px;object-fit:contain;background:#07111f}.submission-preview iframe{display:block;width:100%;height:250px;border:0;background:#fff}.audio-preview{display:flex;align-items:center;gap:10px;padding:10px;color:#8ec4ea}.audio-preview svg{width:20px}.audio-preview audio{width:100%}@media(max-width:620px){.submission-preview iframe{height:200px}.audio-preview{padding:9px}}
.delivery-monitor{margin-bottom:18px}.delivery-monitor-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}.delivery-monitor-card{display:block;text-decoration:none;border:1px solid var(--line);border-radius:16px;padding:14px;background:#172b44;color:inherit;transition:transform .18s ease,border-color .18s ease}.delivery-monitor-card:hover{transform:translateY(-2px);border-color:#5797cf}.delivery-monitor-card.has-pending{border-color:#805443;background:#2a2531}.delivery-monitor-card.all-sent{border-color:#2d735a}.delivery-monitor-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:11px}.delivery-monitor-head span{font-size:9px;font-weight:800;color:#ffd1b3}.delivery-monitor-card.all-sent .delivery-monitor-head span{color:#9ee2c3}.delivery-monitor-card strong{display:block;font-size:12px}.delivery-monitor-card p,.delivery-monitor-card small{display:block;margin:5px 0 0;color:var(--muted);font-size:9px;line-height:1.45}.delivery-monitor-card small{color:#c1d3e4}
.received-deliveries{margin-top:18px}.received-team-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:12px}.received-team-card{border:1px solid #304d6e;border-radius:16px;background:#172b44;overflow:hidden}.received-team-card summary{display:flex;align-items:center;gap:10px;padding:14px;cursor:pointer;list-style:none}.received-team-card summary::-webkit-details-marker{display:none}.received-team-card summary strong,.received-team-card summary span{display:block}.received-team-card summary strong{font-size:12px}.received-team-card summary span{font-size:9px;color:var(--muted);margin-top:3px}.received-team-card summary>svg{width:17px;margin-left:auto;color:#9ec8ec;transition:transform .2s}.received-team-card[open] summary>svg{transform:rotate(180deg)}.received-team-body{border-top:1px solid #304d6e;padding:10px}.received-submission-row{padding:12px 3px;border-bottom:1px solid rgba(48,77,110,.7)}.received-submission-row:last-child{border-bottom:0}.received-submission-info h3{font-size:12px;margin:7px 0 3px}.received-submission-info p{font-size:9px;color:var(--muted);margin:4px 0;line-height:1.5}.compact-review{margin-top:12px}.compact-review label{font-size:9px}.compact-review textarea{min-height:56px}.compact-review button{width:100%;margin-top:8px}
.received-team-link{display:flex;align-items:center;gap:11px;padding:14px;border:1px solid #304d6e;border-radius:16px;background:#172b44;text-decoration:none;color:inherit;transition:transform .18s ease,border-color .18s ease}.received-team-link:hover{transform:translateY(-2px);border-color:#5797cf}.received-team-link strong,.received-team-link span,.received-team-link small{display:block}.received-team-link strong{font-size:12px}.received-team-link span,.received-team-link small{font-size:9px;color:var(--muted);margin-top:3px}.received-team-link small{color:#c1d3e4}.received-team-link>svg{width:17px;margin-left:auto;color:#9ec8ec}.team-files-panel{display:flex;flex-direction:column;gap:14px}.team-file-card{border:1px solid #304d6e;border-radius:18px;background:#122238;padding:16px}.team-file-heading{display:flex;justify-content:space-between;gap:14px;align-items:flex-start}.team-file-heading h2{font-size:17px;margin:8px 0 4px}.team-file-heading p,.team-file-notes{font-size:10px;color:var(--muted);line-height:1.55;margin:0}.team-file-notes{margin:10px 0}.activity-attachment-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px;margin:11px 0}.activity-attachment{display:flex;align-items:center;gap:8px;padding:8px;border:1px solid #304d6e;border-radius:12px;background:#1b304a;text-decoration:none;color:#dce7f2}.activity-attachment>svg{width:14px;color:#8ec4ea}.activity-attachment>svg:last-child{margin-left:auto}.activity-attachment span{min-width:0}.activity-attachment strong,.activity-attachment small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.activity-attachment strong{font-size:9px}.activity-attachment small{font-size:8px;color:var(--muted);margin-top:2px}.team-review-form{display:grid;grid-template-columns:160px 1fr auto;gap:10px;align-items:end;margin-top:12px}.team-review-form label{font-size:9px}.team-review-form textarea{min-height:58px}.team-review-form button{height:40px;white-space:nowrap}@media(max-width:720px){.team-review-form{grid-template-columns:1fr}.team-review-form button{width:100%}}
.team-avatar,.message-avatar,.member-avatar{background:#1d3551;color:#d7e6f4}.metric-blue .metric-icon,.metric-orange .metric-icon{background:#1a3957}.metric-violet .metric-icon{background:#283a59}.metric-green .metric-icon{background:#173d39}
input,select,textarea{background:#0e1d31;color:#e7edf5;border-color:#34516e}input:focus,select:focus,textarea:focus{background:#11243b;color:#fff}.chat-messages-modern{background:linear-gradient(180deg,#0e1d31,#0b192b)}.bubble{background:#192d45;border-color:#2d4b69;color:#e9f0f7}.teacher-row .bubble{background:#1f619a;border-color:#1f619a}.current-file{background:#173c39;color:#a8dfc4}.info-box{background:#162b46;border-color:#27496c;color:#bfd3e8}
.auth-shell{background:#091525}.auth-layout{background:#122238;border-color:#28405d}.login-heading p,.login-card .muted{color:#a8b8cb}.empty-icon{background:#1b304a;color:#b6c8dc}.error-code{color:#29415e}.flash{background:#14263c;border-color:#34516e;color:#e2ebf4}.flash-icon{background:#1b3957;color:#8ec4ea}

/* Cabeçalho superior removido no desktop: o menu lateral já contém a navegação. */
@media (min-width:901px){.topbar{display:none}}

/* Campos do login: mantém o tom escuro inclusive quando o navegador preenche o e-mail. */
.login-card input:-webkit-autofill,.login-card input:-webkit-autofill:hover,.login-card input:-webkit-autofill:focus{
  -webkit-text-fill-color:#e7edf5;
  -webkit-box-shadow:0 0 0 1000px #0e1d31 inset;
  box-shadow:0 0 0 1000px #0e1d31 inset;
  caret-color:#e7edf5;
  transition:background-color 9999s ease-out 0s;
}
.capslock-warning{display:flex;align-items:center;gap:7px;margin:8px 0 -3px;color:#f2c97d;font-size:10px;font-weight:700}.capslock-warning[hidden]{display:none}.capslock-warning svg{width:14px;height:14px}
.input-shell:has(.password-toggle) input{padding-right:46px}.password-toggle{position:absolute;right:7px;top:50%;transform:translateY(-50%);width:34px;height:34px;padding:0;border-radius:10px;background:transparent;color:#aebed0;box-shadow:none;display:grid;place-items:center}.password-toggle:hover,.password-toggle:focus-visible{background:#1b3551;color:#e7edf5;transform:translateY(-50%)}.password-toggle svg{position:static;left:auto;top:auto;transform:none;width:17px;height:17px}
.manager-search{display:grid;grid-template-columns:18px 1fr auto;align-items:center;gap:9px;margin:0 0 12px;padding:7px 8px 7px 12px;border:1px solid #34516e;border-radius:13px;background:#0e1d31;color:#8ec4ea}.manager-search>svg{width:16px}.manager-search input{border:0;background:transparent;padding:7px 0;box-shadow:none}.manager-search input:focus{box-shadow:none;background:transparent}.teacher-manager summary .count-chip{width:88px;min-width:88px;height:30px;padding:0;display:flex;align-items:center;justify-content:center;text-align:center}@media(max-width:700px){.manager-search{grid-template-columns:18px 1fr}.manager-search button{grid-column:1/3}}
html,body,.app-shell,.workspace{margin:0!important;background:#091525!important}.topbar{display:none!important}.app-shell{min-height:100dvh}.copy-temp-password{margin-left:auto;padding:7px 10px;border-radius:10px;background:#1b3957;color:#d9edff;box-shadow:none;font-size:10px}.pending-chip{display:inline-flex!important;margin-left:6px!important;padding:3px 6px;border-radius:999px;background:#4d3517;color:#f2c97d;font-size:8px!important;vertical-align:middle}.manager-search{grid-template-columns:18px 1fr 115px auto}.manager-search select{padding:7px 8px;font-size:10px;border:0;background:#162b43}.audit-list{display:flex;flex-direction:column}.teacher-manager summary .count-chip{justify-content:center!important;text-align:center!important}@media(max-width:700px){.manager-search{grid-template-columns:18px 1fr}.manager-search select,.manager-search button{grid-column:1/3}}
.floating-menu{position:fixed;top:14px;left:14px;z-index:45;background:#173553;color:#e7f1fa;border:1px solid #345b7f}@media(min-width:901px){.floating-menu{display:none!important}}
.create-class-form .full-button{margin-top:18px}
.test-view-switcher{display:flex;gap:7px;padding:0 10px}.test-view-button,.test-view-actions a{width:34px;height:34px;border:1px solid #34516e;border-radius:10px;display:grid;place-items:center;color:#b9cbe0;background:#142943;text-decoration:none}.test-view-button svg,.test-view-actions svg{width:16px}.test-view-button.selected,.test-view-actions a.active{background:#286ca9;color:#fff;border-color:#4b93d0}.test-view-actions{display:flex;gap:7px}.test-view-actions a{width:38px;height:38px}

/* A aplicação deve encostar no topo, sem uma faixa vazia acima do menu. */
html,body{width:100%!important;min-height:100%!important;margin:0!important;padding:0!important;border:0!important;overflow-x:hidden;background:#091525!important}
body>.app-shell{position:relative;top:0!important;margin:0!important;min-height:100dvh}
@media(max-width:900px){.sidebar{top:0!important;margin-top:0!important;height:100dvh!important}.workspace{padding-top:0!important;margin-top:0!important}}
.forgot-password-link{display:flex;align-items:center;justify-content:center;gap:7px;width:max-content;max-width:100%;margin:18px auto 0;color:#8ec4ea;text-decoration:none;font-size:11px;font-weight:800}.forgot-password-link:hover{color:#d6ecff}.forgot-password-link svg{width:15px}.auth-single-layout{width:min(510px,calc(100% - 32px));min-height:auto;display:block}.recovery-card{padding:46px}.reset-code{letter-spacing:.16em;text-transform:uppercase}@media(max-width:620px){.auth-single-layout{width:calc(100% - 28px)}.recovery-card{padding:32px 22px}}
.danger-button{background:#48212a!important;border-color:#7b3543!important;color:#ffd8df!important}.danger-button:disabled{opacity:.45;cursor:not-allowed}
.team-activity-list{display:flex;flex-direction:column;gap:12px}.team-activity-group{border:1px solid var(--line);border-radius:18px;background:#102037;overflow:hidden}.team-activity-group summary{display:flex;align-items:center;gap:11px;padding:14px 16px;cursor:pointer;list-style:none}.team-activity-group summary::-webkit-details-marker{display:none}.team-activity-group summary>div:nth-child(2){flex:1}.team-activity-group summary strong,.team-activity-group summary span{display:block}.team-activity-group summary strong{font-size:13px}.team-activity-group summary span{font-size:9px;color:var(--muted);margin-top:3px}.team-activity-group summary>svg{width:16px;color:var(--muted);transition:.2s}.team-activity-group[open] summary>svg{transform:rotate(180deg)}.team-activity-group .activity-board{padding:0 16px 16px}.submission-team-group{border:1px solid var(--line);border-radius:22px;background:#102037;padding:18px}.submission-team-heading{display:flex;align-items:center;gap:11px;margin-bottom:15px}.submission-team-heading h2,.submission-team-heading p{margin:0}.submission-team-heading h2{font-size:16px}.submission-team-heading p{font-size:10px;color:var(--muted);margin-top:3px}.submission-team-group .review-card{margin-top:12px}.submission-team-group .empty-inline{padding:14px;background:#122238;border-radius:13px;color:var(--muted);font-size:11px}
.class-admin-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.class-admin-actions form{display:flex;gap:6px;align-items:center}.class-admin-actions input{width:150px;padding:7px 9px;font-size:10px}@media(max-width:760px){.class-admin-row{align-items:flex-start;flex-wrap:wrap}.class-admin-actions{width:100%;margin-top:8px}.class-admin-actions input{width:min(100%,190px)}}

/* Na visão gerencial a lista de turmas não usa o ícone e as métricas da lista
   docente. Sem esta grade própria, o nome ficava comprimido e cortado. */
.class-admin-row:not(:has(.class-card-icon)){grid-template-columns:minmax(0,1fr) auto}
.class-admin-row:not(:has(.class-card-icon)) .class-admin-main{min-width:0}
.class-admin-row:not(:has(.class-card-icon)) .class-admin-main strong,.class-admin-row:not(:has(.class-card-icon)) .class-admin-main span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.manager-grid{scroll-margin-top:24px}
@media(max-width:760px){.class-admin-row:not(:has(.class-card-icon)){grid-template-columns:1fr}.class-admin-row:not(:has(.class-card-icon)) .class-admin-actions{width:100%}}

/* Central de notificações: discreta na lateral, com leitura imediata das novidades. */
.notification-center{position:relative;padding:0 8px 19px}.notification-bell{position:relative;width:42px;height:42px;padding:0;border:1px solid #34516e;border-radius:13px;background:#173553;color:#dcebf8;box-shadow:none}.notification-bell:hover{background:#214564}.notification-bell svg{width:18px}.notification-count{position:absolute;top:-6px;right:-7px;min-width:18px;height:18px;padding:0 5px;border:2px solid #0b1f3a;border-radius:999px;background:#e76750;color:#fff;font-size:9px;line-height:14px;font-weight:800}.notification-panel{position:absolute;top:52px;left:8px;width:min(370px,calc(100vw - 34px));max-height:min(560px,calc(100vh - 110px));overflow:auto;z-index:80;border:1px solid #34516e;border-radius:18px;background:#102037;box-shadow:0 22px 48px rgba(0,0,0,.38)}.notification-panel-head{display:flex;align-items:flex-start;justify-content:space-between;padding:15px 15px 12px;border-bottom:1px solid #294761}.notification-panel-head .section-kicker{font-size:8px}.notification-panel-head strong{display:block;margin-top:3px;font-size:15px}.notification-close{width:30px;height:30px;padding:0;border-radius:9px;background:#1b3551;color:#cfe2f3;box-shadow:none}.notification-close svg{width:16px}.notification-list{display:flex;flex-direction:column}.notification-item{display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;padding:12px 14px;border-bottom:1px solid #294761;color:inherit;text-decoration:none}.notification-item:last-child{border-bottom:0}.notification-item:hover{background:#162c46}.notification-item.unread{background:#183652}.notification-icon{width:34px;height:34px;border-radius:11px;background:#214b72;color:#8ec4ea;display:grid;place-items:center}.notification-icon svg{width:16px}.notification-item strong,.notification-item small,.notification-item em{display:block}.notification-item strong{font-size:11px}.notification-item small{margin-top:3px;color:#b5c7d8;font-size:9px;line-height:1.45}.notification-item em{margin-top:4px;color:#7891aa;font-size:8px;font-style:normal}.notification-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:7px;padding:30px 18px;color:#a9bdd0}.notification-empty svg{width:25px;color:#78b7e6}.notification-empty strong{font-size:11px;color:#e4edf5}.notification-empty span{font-size:9px}

/* O menu pode rolar apenas na vertical quando necessário. Definir os dois eixos
   evita que navegadores transformem o overflow-y em uma barra horizontal ao
   passar o mouse sobre os itens. */
.side-nav{min-width:0;min-height:0;overflow-x:hidden;overflow-y:auto;scrollbar-width:thin}
.side-nav .nav-item,.side-nav .nav-label{max-width:100%}
.chat-messages-modern,.notification-panel{overflow-x:hidden}
@media(max-width:900px){.sidebar{overflow:hidden}.side-nav{flex:1}.notification-panel{left:8px;right:auto}.sidebar-card{flex:0 0 auto}}

/* Espaçamento consistente: ações principais nunca ficam encostadas no último campo. */
.onboarding-card form>.full-button,.panel>form>.full-button,.create-class-form>.full-button{margin-top:24px!important}
.panel>form>.form-actions,.onboarding-card form>.form-actions{margin-top:24px!important}
.auth-submit{margin-top:28px}

/* Estrutura presa ao topo: a navegação acompanha a rolagem e não deixa faixa externa. */
html,body{height:100%!important}
.auth-shell{padding-top:0!important}
@media(min-width:901px){
  .sidebar{position:fixed!important;inset:0 auto 0 0!important;width:var(--sidebar);height:100dvh!important;margin:0!important;transition:width .22s ease,padding .22s ease}
  .workspace{grid-column:2;min-height:100dvh}
  .sidebar-collapse{position:absolute;right:-14px;top:50%;z-index:6;width:28px;height:28px;padding:0;border:1px solid rgba(109,160,202,.46);border-radius:50%;background:#112842;color:#9fc4e2;box-shadow:0 4px 12px rgba(0,0,0,.15);display:grid;place-items:center;cursor:pointer;transform:translateY(-50%);transition:background .2s ease,color .2s ease,transform .2s ease}
  .sidebar-collapse:hover{background:#1b4265;color:#eef8ff;transform:translateY(-50%) scale(1.08)}
  .sidebar-collapse svg{width:15px}
  .app-shell.sidebar-collapsed{grid-template-columns:var(--sidebar-collapsed) minmax(0,1fr)}
  .app-shell.sidebar-collapsed .sidebar{width:var(--sidebar-collapsed);padding:18px 10px;align-items:center}
  .app-shell.sidebar-collapsed .brand{padding:0 0 28px;justify-content:center}
  .app-shell.sidebar-collapsed .brand-copy,.app-shell.sidebar-collapsed .nav-label,.app-shell.sidebar-collapsed .nav-item span,.app-shell.sidebar-collapsed .sidebar-card>div:not(.sidebar-card-icon){display:none}
  .app-shell.sidebar-collapsed .notification-center{padding:0 0 16px}
  .app-shell.sidebar-collapsed .notification-panel{left:64px}
  .app-shell.sidebar-collapsed .side-nav,.app-shell.sidebar-collapsed .sidebar-footer{width:100%}
  .app-shell.sidebar-collapsed .nav-item{justify-content:center;padding:12px}
  .app-shell.sidebar-collapsed .nav-item:hover{transform:none}
  .app-shell.sidebar-collapsed .sidebar-card{width:100%;justify-content:center;padding:12px;margin-bottom:12px}
  .app-shell.sidebar-collapsed .test-view-switcher{flex-direction:column;align-items:center;padding:0}
}
@media(max-width:900px){.sidebar-collapse{display:none!important}}
