
:root{
  --navy:#063b78;
  --navy2:#052f62;
  --blue:#1678df;
  --yellow:#f7cf19;
  --green:#13a86c;
  --red:#d84d55;
  --text:#153252;
  --muted:#66778c;
  --line:#dfe7f0;
  --bg:#f4f7fb;
  --white:#fff;
  --shadow:0 12px 34px rgba(7,49,96,.10);
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--text);font-family:Arial,Helvetica,sans-serif}
a{text-decoration:none;color:inherit}
.portal-container{width:min(1180px,92%);margin:0 auto}
.portal-top{background:#fff;border-bottom:1px solid var(--line)}
.top-inner{height:86px;display:flex;align-items:center;justify-content:space-between;gap:20px}
.portal-brand img{width:235px;height:74px;object-fit:contain}
.top-user{display:flex;align-items:center;gap:18px;text-align:right}
.top-user strong{display:block}.top-user small{display:block;color:var(--muted);margin-top:3px}
.logout-link{background:#eef4fb;color:var(--navy);padding:10px 14px;border-radius:20px;font-weight:700;font-size:13px}
.portal-nav{background:linear-gradient(90deg,var(--navy2),var(--navy));color:#fff}
.nav-inner{display:flex;gap:4px;overflow-x:auto}
.nav-inner a{padding:14px 15px;font-size:13px;white-space:nowrap}
.nav-inner a:hover{background:rgba(255,255,255,.10)}
.page{min-height:calc(100vh - 205px);padding:34px 0 50px}
.page h1{font-size:30px;margin:0 0 8px}.subtitle{color:var(--muted);margin:0 0 25px}
.card{background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow)}
.card-pad{padding:22px}
.grid{display:grid;gap:18px}
.grid-4{grid-template-columns:repeat(4,1fr)}
.grid-3{grid-template-columns:repeat(3,1fr)}
.grid-2{grid-template-columns:repeat(2,1fr)}
.metric{padding:22px}
.metric span{display:block;color:var(--muted);font-size:12px;margin-bottom:6px}
.metric strong{font-size:30px;color:var(--navy)}
.metric a{display:block;margin-top:12px;color:var(--blue);font-size:12px;font-weight:700}
.section-title{display:flex;justify-content:space-between;gap:20px;align-items:center;margin:30px 0 14px}
.section-title h2{margin:0;font-size:20px}
.student-card{display:flex;justify-content:space-between;align-items:center;gap:22px;padding:20px;margin-bottom:22px}
.student-data strong{font-size:21px}.student-data small{display:block;color:var(--muted);margin-top:6px}
.badge{display:inline-block;padding:5px 9px;border-radius:12px;background:#edf5ff;color:#145eaa;font-size:11px;font-weight:700}
.btn{border:0;border-radius:24px;padding:12px 18px;font-weight:700;cursor:pointer;display:inline-block}
.btn-primary{background:var(--navy);color:#fff}.btn-yellow{background:var(--yellow);color:var(--navy2)}
.alert{padding:14px 16px;border-radius:12px;margin-bottom:18px}.alert.info{background:#e8f3ff;color:#0a539c}.alert.warning{background:#fff4cf;color:#775d00}
.table-wrap{overflow-x:auto;background:#fff;border:1px solid var(--line);border-radius:15px;box-shadow:var(--shadow)}
table{width:100%;border-collapse:collapse;min-width:760px}
th,td{text-align:left;padding:13px 14px;border-bottom:1px solid #edf1f5;font-size:13px;vertical-align:top}
th{background:#f6f9fc;color:#425b76;font-size:11px;text-transform:uppercase;letter-spacing:.4px}
tr:last-child td{border-bottom:0}
.empty{padding:35px;text-align:center;color:var(--muted)}
.list{display:grid;gap:12px}
.list-item{padding:16px;background:#fff;border:1px solid var(--line);border-radius:13px}
.list-item h3{margin:0 0 7px;font-size:15px}.list-item p{margin:0;color:var(--muted);font-size:13px;line-height:1.5}
.meta{display:flex;flex-wrap:wrap;gap:10px;margin-top:10px;color:#62758a;font-size:11px}
.portal-footer{background:#052d5c;color:#c8d7e8}
.footer-inner{min-height:55px;display:flex;justify-content:space-between;align-items:center;font-size:11px}
.login-page{min-height:100vh;display:grid;place-items:center;padding:25px;background:linear-gradient(135deg,#063b78,#0b63ad)}
.login-shell{width:min(930px,100%);display:grid;grid-template-columns:1fr 1fr;background:#fff;border-radius:24px;overflow:hidden;box-shadow:0 25px 70px rgba(0,20,50,.28)}
.login-brand{padding:45px;background:#f7f9fc;display:flex;flex-direction:column;justify-content:center}
.login-brand img{max-width:320px;margin:0 auto 22px}.login-brand h1{font-size:31px;margin:0 0 12px}.login-brand p{color:var(--muted);line-height:1.6}
.login-form{padding:45px;display:flex;flex-direction:column;justify-content:center}
.login-form h2{margin:0 0 6px}.login-form>p{color:var(--muted);margin:0 0 24px}
.field{margin-bottom:16px}.field label{display:block;font-size:12px;font-weight:700;margin-bottom:7px}
.field input{width:100%;padding:13px;border:1px solid #cfd9e5;border-radius:10px;font-size:14px}
.field input:focus{outline:2px solid #a8d0f4;border-color:#5b9ddd}
.login-form .btn{width:100%;padding:14px}
.note{font-size:11px;color:var(--muted);margin-top:18px;line-height:1.5}
.student-choice{display:grid;gap:14px;max-width:700px}
.student-option{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:18px}
.status-ok{color:#138152;font-weight:700}.status-warn{color:#ba7b00;font-weight:700}.status-bad{color:#b8323b;font-weight:700}
@media(max-width:900px){.grid-4{grid-template-columns:repeat(2,1fr)}.grid-3{grid-template-columns:1fr}.login-shell{grid-template-columns:1fr}.login-brand{display:none}}
@media(max-width:620px){.grid-4,.grid-2{grid-template-columns:1fr}.top-inner{height:auto;padding:10px 0}.portal-brand img{width:170px;height:62px}.top-user strong{font-size:12px}.top-user small{display:none}.student-card{align-items:flex-start;flex-direction:column}.footer-inner{padding:15px 0;flex-direction:column;align-items:flex-start;gap:7px}.login-form{padding:28px}}


/* ==========================================
   ETAPA 02 — DETALHE E ENTREGA DE TAREFAS
   ========================================== */
.task-list-card{padding:18px 20px}
.task-card-main{display:flex;align-items:center;justify-content:space-between;gap:24px}
.task-card-main h3{margin:10px 0 7px;font-size:17px}
.task-tags{display:flex;flex-wrap:wrap;gap:7px}
.badge.success{background:#e5f8ef;color:#13764e}
.badge.warning{background:#fff4cf;color:#8a6700}
.badge.danger{background:#ffe7e9;color:#a92f3a}
.task-back{margin-bottom:16px;font-size:13px;font-weight:700;color:var(--blue)}
.task-detail-header{margin-bottom:20px}
.task-detail-header h1{margin:12px 0 10px;font-size:30px}
.task-detail-grid{align-items:start}
.card h2{font-size:19px;margin-top:0}
.card h3{font-size:15px;margin:22px 0 9px}
.rich-text{font-size:14px;line-height:1.7;color:#41566e}
.muted{color:var(--muted);font-size:13px;line-height:1.55}
.section-title.small{margin:28px 0 12px}
.section-title.small h2{font-size:16px}
.material-list{display:grid;gap:9px}
.file-row{display:flex;align-items:center;gap:11px;border:1px solid var(--line);background:#f8fbfe;border-radius:11px;padding:11px 12px}
.file-row>span,.file-row>a>span{font-size:21px}
.file-row strong{display:block;font-size:12px;color:var(--text)}
.file-row small{display:block;font-size:10px;color:var(--muted);margin-top:3px}
.file-row-actions{justify-content:space-between}
.file-row-actions>a{display:flex;align-items:center;gap:11px;min-width:0}
.file-row-actions form{margin:0}
.file-remove{width:30px;height:30px;border:0;border-radius:50%;background:#ffe7e9;color:#a82934;font-size:19px;cursor:pointer}
.task-form .field{margin-bottom:17px}
.task-form label{display:block;font-size:12px;font-weight:700;margin-bottom:7px}
.task-form textarea,.task-form input[type=file]{width:100%;border:1px solid #ccd8e5;border-radius:10px;padding:12px;background:#fff;font:inherit}
.task-form textarea:focus{outline:2px solid #a9d0f3;border-color:#5e9ed7}
.task-form .field small{display:block;color:var(--muted);font-size:10px;margin-top:6px}
.submission-summary{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px;font-size:12px;color:var(--muted)}
.score-box{display:flex;align-items:center;justify-content:space-between;padding:15px;background:#f1f7ff;border-radius:12px;margin:12px 0}
.score-box span{font-size:12px;color:var(--muted)}.score-box strong{font-size:26px;color:var(--navy)}
.teacher-feedback{background:#edf8f2;border-left:4px solid var(--green);padding:14px;border-radius:8px;margin:15px 0}
.teacher-feedback strong{font-size:12px}.teacher-feedback p{font-size:13px;line-height:1.55;margin:7px 0 0}
@media(max-width:760px){
  .task-card-main{align-items:flex-start;flex-direction:column}
  .task-card-main .btn{width:100%}
  .task-detail-grid{grid-template-columns:1fr}
}


/* ==========================================
   ETAPA 03 — DADOS CADASTRAIS E SEGURANÇA
   ========================================== */
.top-actions{display:flex;align-items:center;gap:8px}
.top-action-link{background:#f3f7fc;color:var(--navy);padding:9px 11px;border-radius:18px;font-size:11px;font-weight:700}
.password-alert{display:flex;align-items:center;justify-content:space-between;gap:20px}
.password-alert strong{display:block;margin-bottom:4px}
.password-alert span{font-size:12px}
.password-alert .btn{white-space:nowrap}
.account-tools{margin-bottom:10px}
.account-card{padding:18px;display:grid;grid-template-columns:48px 1fr auto;align-items:center;gap:14px;transition:.2s}
.account-card:hover{transform:translateY(-2px);border-color:#bdd5ee}
.account-icon{width:48px;height:48px;border-radius:14px;background:#edf5ff;display:grid;place-items:center;font-size:23px}
.account-card strong{display:block;margin-bottom:5px}
.account-card span{display:block;color:var(--muted);font-size:12px;line-height:1.45}
.account-card b{font-size:22px;color:var(--blue)}
.profile-summary{display:grid;grid-template-columns:2fr 1fr 1fr;gap:20px;padding:19px 22px;margin-bottom:20px}
.profile-summary div{border-right:1px solid var(--line)}
.profile-summary div:last-child{border-right:0}
.profile-summary small,.security-info small{display:block;font-size:10px;text-transform:uppercase;letter-spacing:.5px;color:var(--muted);margin-bottom:6px}
.profile-summary strong,.security-info strong{display:block}
.profile-form{margin-bottom:18px}
.form-section{padding-bottom:26px;margin-bottom:25px;border-bottom:1px solid var(--line)}
.form-section:last-of-type{border-bottom:0}
.form-section h2{font-size:18px;margin:0 0 17px}
.form-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:16px 18px}
.address-grid{grid-template-columns:1fr 1fr 1fr}
.street-field{grid-column:span 2}
.city-field{grid-column:span 2}
.uf-field{max-width:150px}
.profile-form .field,.security-form .field{margin:0}
.profile-form label,.security-form label{display:block;font-size:12px;font-weight:700;margin-bottom:7px}
.profile-form input,.profile-form select,.security-form input{
    width:100%;border:1px solid #cdd8e5;border-radius:10px;padding:12px;
    background:#fff;font-size:14px;color:var(--text)
}
.profile-form input:focus,.profile-form select:focus,.security-form input:focus{
    outline:2px solid #acd2f5;border-color:#5b9cdc
}
.form-actions{display:flex;gap:10px;align-items:center}
.btn-light{background:#edf2f7;color:var(--text)}
.data-note{padding:17px 20px;border-left:4px solid var(--blue)}
.data-note strong{font-size:13px}
.data-note p{font-size:12px;line-height:1.55;color:var(--muted);margin:6px 0 0}
.security-grid{align-items:start}
.security-info{display:grid;gap:0}
.security-info>div{padding:13px 0;border-bottom:1px solid var(--line)}
.security-info>div:last-child{border-bottom:0}
.security-form{display:grid;gap:18px}
.password-field{display:grid;grid-template-columns:1fr auto}
.password-field input{border-radius:10px 0 0 10px}
.toggle-password{border:1px solid #cdd8e5;border-left:0;background:#f4f7fb;color:var(--navy);border-radius:0 10px 10px 0;padding:0 12px;font-size:11px;font-weight:700;cursor:pointer}
.password-rules{display:grid;grid-template-columns:1fr 1fr;gap:5px 12px;margin-top:9px}
.password-rules span{font-size:10px;color:#7a8795}
.password-rules span.ok{color:#128054;font-weight:700}
#passwordMatch{display:block;margin-top:6px;font-size:10px}
.match-ok{color:#128054!important;font-weight:700}
.match-error{color:#bd3540!important;font-weight:700}
.security-note{margin-top:18px}

@media(max-width:850px){
  .top-actions .top-action-link{display:none}
  .profile-summary{grid-template-columns:1fr}
  .profile-summary div{border-right:0;border-bottom:1px solid var(--line);padding-bottom:12px}
  .profile-summary div:last-child{border-bottom:0;padding-bottom:0}
  .form-grid,.address-grid{grid-template-columns:1fr}
  .street-field,.city-field{grid-column:span 1}
  .uf-field{max-width:none}
  .password-alert{align-items:flex-start;flex-direction:column}
}
@media(max-width:620px){
  .account-card{grid-template-columns:42px 1fr}
  .account-card>b{display:none}
  .password-rules{grid-template-columns:1fr}
}


/* ==========================================
   ETAPA 04 — PORTAL DO RESPONSÁVEL / FINANCEIRO
   ========================================== */
.finance-dashboard-card{
  padding:20px;display:grid;grid-template-columns:58px 1fr auto;gap:16px;
  align-items:center;margin-bottom:10px
}
.finance-dashboard-icon{
  width:58px;height:58px;border-radius:16px;background:#e5f8ef;color:#117448;
  display:grid;place-items:center;font-weight:800
}
.finance-dashboard-card span{display:block;color:var(--muted);font-size:11px}
.finance-dashboard-card strong{display:block;font-size:26px;color:var(--navy);margin:3px 0}
.finance-dashboard-card small{display:block;color:var(--muted);font-size:11px}
.finance-dashboard-card>b{color:var(--blue);font-size:12px}
.finance-title{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}
.finance-title h1{margin-bottom:6px}
.finance-metrics{margin:22px 0 28px}
.finance-danger{color:#bf3340!important}
.finance-filter-title{align-items:flex-end}
.finance-filters{display:flex;gap:6px;flex-wrap:wrap}
.finance-filters a{font-size:11px;font-weight:700;padding:8px 11px;border-radius:18px;background:#edf2f7;color:#52677e}
.finance-filters a.active{background:var(--navy);color:#fff}
.finance-status{display:inline-block;padding:5px 9px;border-radius:12px;font-size:10px;font-weight:800;white-space:nowrap}
.finance-status.success{background:#e5f8ef;color:#13764e}
.finance-status.warning{background:#fff3c7;color:#8b6500}
.finance-status.danger{background:#ffe7e9;color:#ad303b}
.finance-status.info{background:#e8f3ff;color:#0b5ba8}
.finance-status.neutral{background:#edf0f3;color:#667584}
.table-action{font-size:11px;font-weight:800;color:var(--blue);white-space:nowrap}
.finance-note{margin-top:18px}
.finance-invoice-head{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:20px}
.finance-invoice-head h1{margin:10px 0 6px}
.finance-invoice-head p{margin:0;color:var(--muted);font-size:12px}
.invoice-summary{margin-bottom:20px}
.invoice-grid{align-items:start;margin-bottom:15px}
.finance-dl{margin:0}
.finance-dl>div{display:flex;justify-content:space-between;gap:20px;padding:10px 0;border-bottom:1px solid var(--line)}
.finance-dl>div:last-child{border-bottom:0}
.finance-dl dt{font-size:11px;color:var(--muted)}
.finance-dl dd{margin:0;text-align:right;font-size:12px;font-weight:700}
.invoice-notes{margin-top:16px;padding:13px;background:#f7f9fc;border-radius:10px}
.invoice-notes strong{font-size:11px}
.invoice-notes p{font-size:12px;color:var(--muted);margin:6px 0 0;line-height:1.5}
.invoice-items{display:grid;gap:4px}
.invoice-item{display:flex;justify-content:space-between;gap:15px;padding:12px 0;border-bottom:1px solid var(--line)}
.invoice-item:last-child{border-bottom:0}
.invoice-item strong{display:block;font-size:12px}.invoice-item small{display:block;color:var(--muted);font-size:10px;margin-top:3px}
.invoice-item>span{font-size:12px;font-weight:700;white-space:nowrap}
.payment-request-grid{margin-bottom:25px}
.payment-request-head{display:flex;justify-content:space-between;gap:15px}
.payment-request-head h3{margin:8px 0 0}
.payment-request-card>p>strong{font-size:24px;color:var(--navy)}
.copy-label{display:block;font-size:10px;font-weight:800;color:var(--muted);margin:14px 0 6px}
.copy-box{display:grid;gap:7px}
.copy-box textarea{width:100%;min-height:78px;resize:vertical;border:1px solid #d2dce7;border-radius:9px;padding:9px;font-size:10px}
.copy-box.compact{grid-template-columns:1fr auto}
.copy-box.compact input{min-width:0;border:1px solid #d2dce7;border-radius:9px;padding:10px;font-size:11px}
.copy-box .btn{padding:9px 13px;font-size:10px}
.payment-link{margin-top:14px}
.payment-expiry{display:block;color:var(--muted);margin-top:10px;font-size:10px}

@media(max-width:800px){
  .finance-dashboard-card{grid-template-columns:52px 1fr}
  .finance-dashboard-card>b{grid-column:2}
  .finance-invoice-head{align-items:flex-start;flex-direction:column}
  .invoice-grid{grid-template-columns:1fr}
  .copy-box.compact{grid-template-columns:1fr}
}
@media print{
  .portal-nav,.portal-footer,.top-actions,.logout-link,.no-print,.task-back{display:none!important}
  body{background:#fff}
  .portal-top{box-shadow:none}
  .card,.table-wrap{box-shadow:none}
  .page{padding-top:15px}
}


/* ==========================================
   ETAPA 05 — DOCUMENTOS E COMUNICAÇÃO
   ========================================== */
.portal-page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:20px}
.portal-page-head h1{margin-bottom:6px}
.portal-services{margin-bottom:10px}
.service-card{padding:18px;display:grid;grid-template-columns:48px 1fr auto;align-items:center;gap:14px;transition:.2s}
.service-card:hover{transform:translateY(-2px);border-color:#bdd5ee}
.service-icon{width:48px;height:48px;border-radius:14px;background:#edf5ff;display:grid;place-items:center;font-size:22px}
.service-card strong{display:block;margin-bottom:5px}.service-card span{display:block;color:var(--muted);font-size:11px;line-height:1.4}
.service-card small{display:block;color:var(--blue);font-size:10px;font-weight:800;margin-top:7px}.service-card>b{color:var(--blue);font-size:21px}
.document-request-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:17px}
.document-request-card{padding:20px}
.document-request-top{display:flex;justify-content:space-between;gap:18px;align-items:flex-start}
.document-request-card h3{font-size:17px;margin:11px 0 8px}
.document-request-card>p{font-size:12px;color:var(--muted);line-height:1.55}
.document-due{text-align:right;white-space:nowrap}.document-due small{display:block;color:var(--muted);font-size:9px;text-transform:uppercase}.document-due strong{font-size:12px}
.submitted-file{display:flex;justify-content:space-between;gap:15px;align-items:center;background:#f7f9fc;border:1px solid var(--line);border-radius:10px;padding:11px 12px;margin-top:14px}
.submitted-file strong{display:block;font-size:11px}.submitted-file small{display:block;color:var(--muted);font-size:9px;margin-top:4px}
.review-note{margin-top:13px;padding:12px;background:#fff6d9;border-left:4px solid #e0aa14;border-radius:7px}.review-note strong{font-size:10px}.review-note p{font-size:11px;line-height:1.5;margin:5px 0 0}
.document-actions{margin-top:15px}.approved-text{font-size:11px;color:#13764e;font-weight:800}
.document-upload-grid{align-items:start}.document-upload-title{font-size:26px!important;margin:14px 0 12px!important}.document-deadline{margin-top:18px;padding:13px;background:#f4f8fd;border-radius:10px}.document-deadline small{display:block;color:var(--muted);font-size:9px}.document-deadline strong{display:block;margin-top:3px}
.message-list,.ticket-list{display:grid;gap:10px}
.message-item{display:grid;grid-template-columns:6px 1fr auto;gap:15px;align-items:center;padding:0 18px 0 0;overflow:hidden}
.message-marker{height:100%;min-height:115px;background:#dfe8f1}.message-item.unread .message-marker{background:var(--blue)}
.message-main{padding:15px 0}.message-top{display:flex;justify-content:space-between;gap:15px}.message-top strong{font-size:14px}.message-top span{font-size:9px;color:var(--muted);white-space:nowrap}
.message-main>small{display:block;color:var(--muted);font-size:10px;margin-top:4px}.message-main>p{font-size:11px;color:#576b80;margin:8px 0;line-height:1.45}.message-item>b{color:var(--blue);font-size:19px}
.message-detail h1{font-size:27px;margin:12px 0 7px}.message-detail-head{display:flex;justify-content:space-between;gap:20px}.message-detail-head p{font-size:11px;color:var(--muted)}.message-detail-head time{font-size:10px;color:var(--muted);white-space:nowrap}
.message-body{margin-top:22px;padding-top:22px;border-top:1px solid var(--line);font-size:13px;line-height:1.75;white-space:normal}
.support-grid{align-items:start}.support-form{display:grid;gap:15px}.support-form .field{margin:0}.support-form label{display:block;font-size:11px;font-weight:700;margin-bottom:6px}
.support-form input,.support-form select,.support-form textarea{width:100%;border:1px solid #ccd8e4;border-radius:9px;padding:11px;font:inherit;font-size:12px;background:#fff}
.support-form textarea{resize:vertical}.support-info-list{display:grid;gap:15px}.support-info-list>div{display:grid;grid-template-columns:35px 1fr;gap:11px;align-items:center}.support-info-list span{width:35px;height:35px;border-radius:50%;background:#edf5ff;display:grid;place-items:center;color:var(--blue);font-weight:800}.support-info-list p{font-size:12px;color:var(--muted);line-height:1.45;margin:0}
.ticket-item{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:16px 18px}.ticket-item h3{margin:10px 0 5px;font-size:14px}.ticket-item small{color:var(--muted);font-size:10px}.ticket-item>b{color:var(--blue);font-size:19px}
.ticket-detail-head{display:flex;justify-content:space-between;gap:20px}.ticket-detail-head h1{font-size:27px;margin:12px 0 7px}.ticket-detail-head p,.ticket-detail-head time{font-size:10px;color:var(--muted)}
.ticket-message,.ticket-resolution{margin-top:22px;padding:16px;border-radius:10px}.ticket-message{background:#f7f9fc}.ticket-resolution{background:#edf8f2;border-left:4px solid #19a56f}.ticket-message strong,.ticket-resolution strong{font-size:11px}.ticket-message p,.ticket-resolution p{font-size:12px;line-height:1.65;margin:7px 0 0}.ticket-resolution small{display:block;color:var(--muted);font-size:9px;margin-top:9px}

@media(max-width:850px){
  .document-request-grid{grid-template-columns:1fr}
  .portal-services{grid-template-columns:1fr}
}
@media(max-width:650px){
  .portal-page-head,.document-request-top,.message-detail-head,.ticket-detail-head{flex-direction:column}
  .document-due{text-align:left}
  .message-top{flex-direction:column;gap:3px}
  .service-card{grid-template-columns:42px 1fr}.service-card>b{display:none}
  .support-grid,.document-upload-grid{grid-template-columns:1fr}
}

/* ETAPA 06 — Agenda Acadêmica e Horários */
.academic-dashboard-tools{margin-bottom:16px}.dashboard-next-assessments{padding:18px 20px;margin-bottom:12px}.dashboard-assessment-title{display:flex;justify-content:space-between;gap:15px;align-items:center;margin-bottom:12px}.dashboard-assessment-title strong{font-size:14px}.dashboard-assessment-title a{font-size:10px;font-weight:800;color:var(--blue)}.dashboard-assessment-list{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.dashboard-assessment-list>div{display:grid;grid-template-columns:48px 1fr;gap:10px;align-items:center;background:#f7f9fc;border-radius:10px;padding:10px}.assessment-day{width:48px;height:38px;border-radius:8px;background:#e8f3ff;color:#095da7;display:grid;place-items:center;font-size:11px;font-weight:800}.dashboard-assessment-list p{margin:0}.dashboard-assessment-list p strong{display:block;font-size:11px}.dashboard-assessment-list p small{display:block;color:var(--muted);font-size:9px;margin-top:3px}
.schedule-days{display:grid;grid-template-columns:repeat(5,1fr);gap:12px;align-items:start}.schedule-day{overflow:hidden}.schedule-day.today{border:2px solid #1a79d8}.schedule-day-head{display:flex;justify-content:space-between;align-items:center;background:#f3f7fb;padding:13px 14px;border-bottom:1px solid var(--line)}.schedule-day.today .schedule-day-head{background:#e8f3ff}.schedule-day-head div>span{display:block;font-size:9px;font-weight:800;color:var(--blue)}.schedule-day-head div>strong{display:block;font-size:12px;margin-top:3px}.schedule-day-head>b{font-size:9px;background:var(--blue);color:#fff;padding:5px 8px;border-radius:12px}.schedule-lessons{display:grid}.schedule-lesson{display:grid;grid-template-columns:58px 1fr;gap:10px;padding:12px 10px;border-bottom:1px solid #edf1f5}.schedule-lesson:last-child{border-bottom:0}.schedule-time{border-right:2px solid #dce7f2;padding-right:9px}.schedule-time strong{display:block;font-size:12px;color:var(--navy)}.schedule-time span{display:block;color:var(--muted);font-size:9px;margin-top:3px}.schedule-subject strong{display:block;font-size:11px}.schedule-subject span{display:block;font-size:9px;color:var(--muted);line-height:1.4;margin-top:3px}.schedule-subject small{display:block;font-size:8px;color:#748699;margin-top:4px}.schedule-empty{padding:24px 10px;text-align:center;font-size:10px;color:var(--muted)}.schedule-note{margin-top:20px}
.assessment-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}.assessment-card{display:grid;grid-template-columns:70px 1fr;overflow:hidden}.assessment-date{background:#073d79;color:#fff;display:flex;flex-direction:column;justify-content:center;align-items:center;padding:16px 8px}.assessment-date strong{font-size:28px}.assessment-date span{font-size:9px;font-weight:800;margin-top:2px}.assessment-main{padding:17px}.assessment-main h3{font-size:15px;margin:10px 0 7px}.assessment-main>p{font-size:11px;color:var(--muted);line-height:1.5;margin:0 0 8px}
.agenda-filters{display:flex;gap:7px;flex-wrap:wrap;margin:20px 0}.agenda-filters a{font-size:10px;font-weight:800;padding:8px 12px;background:#edf2f7;color:#5f7184;border-radius:18px}.agenda-filters a.active{background:var(--navy);color:#fff}.agenda-timeline{display:grid}.agenda-item{display:grid;grid-template-columns:62px 24px 1fr;gap:0;min-height:120px}.agenda-date{text-align:center;padding-top:17px}.agenda-date strong{display:block;font-size:24px;color:var(--navy)}.agenda-date span{display:block;font-size:9px;font-weight:800;color:var(--muted)}.agenda-line{position:relative}.agenda-line:before{content:"";position:absolute;left:11px;top:0;bottom:0;width:2px;background:#dde6ef}.agenda-line i{position:absolute;top:28px;left:6px;width:12px;height:12px;border-radius:50%;background:#8da7bd;border:3px solid #fff;box-shadow:0 0 0 2px #dde6ef}.agenda-content{padding:17px 19px;margin-bottom:13px}.agenda-content-head{display:flex;justify-content:space-between;gap:15px}.agenda-content-head h3{font-size:15px;margin:5px 0 3px}.agenda-content-head small{color:var(--muted);font-size:10px}.agenda-content>p{font-size:11px;color:var(--muted);line-height:1.5;margin:10px 0}.agenda-type{font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.4px}.agenda-task .agenda-line i{background:#f2b51d}.agenda-task .agenda-type{color:#a46f00}.agenda-assessment .agenda-line i{background:#e04e5c}.agenda-assessment .agenda-type{color:#bd3440}.agenda-event .agenda-line i{background:#18a873}.agenda-event .agenda-type{color:#117b54}.agenda-calendar .agenda-line i{background:#1477d5}.agenda-calendar .agenda-type{color:#0b5aa4}.agenda-item.past{opacity:.72}
@media(max-width:1050px){.schedule-days{grid-template-columns:repeat(2,1fr)}}@media(max-width:800px){.dashboard-assessment-list{grid-template-columns:1fr}.assessment-grid{grid-template-columns:1fr}}@media(max-width:600px){.schedule-days{grid-template-columns:1fr}.agenda-item{grid-template-columns:50px 20px 1fr}.agenda-date strong{font-size:20px}.agenda-content-head{flex-direction:column}}


/* ==========================================================
   CORREÇÃO — QUADRO DE HORÁRIOS EM GRADE (MODELO DO SGE)
   ========================================================== */

.schedule-page-head{margin-bottom:18px}

.school-schedule-wrap{
  width:100%;
  overflow-x:auto;
  background:#fff;
  border:1px solid #dbe4ee;
  border-radius:14px;
  box-shadow:var(--shadow);
}

.school-schedule-table{
  width:100%;
  min-width:1050px;
  border-collapse:collapse;
  table-layout:fixed;
  background:#f8fbff;
}

.school-schedule-table th,
.school-schedule-table td{
  border-right:1px solid #d8e1eb;
  border-bottom:1px solid #d8e1eb;
}

.school-schedule-table thead th{
  background:#2458df;
  color:#fff;
  height:44px;
  padding:8px 10px;
  text-align:center;
  font-size:11px;
  font-weight:800;
}

.school-schedule-table thead th.is-today{
  background:#1645c8;
}

.school-schedule-table thead th:last-child,
.school-schedule-table tbody td:last-child{
  border-right:0;
}

.school-schedule-table tbody tr:last-child th,
.school-schedule-table tbody tr:last-child td{
  border-bottom:0;
}

.schedule-time-col{
  width:125px;
}

.schedule-period-cell{
  width:125px;
  background:#f4f7fb;
  padding:13px 8px;
  text-align:center;
  vertical-align:middle;
}

.schedule-period-cell strong{
  display:block;
  font-size:13px;
  color:#07182b;
  white-space:nowrap;
}

.schedule-period-cell span{
  display:block;
  margin-top:6px;
  font-size:9px;
  font-weight:800;
  color:#07182b;
}

.school-schedule-table tbody td{
  padding:5px;
  height:96px;
  vertical-align:top;
  background:#fbfdff;
}

.school-schedule-table tbody td.is-today-cell{
  background:#f4f9ff;
}

.schedule-cell-summary{
  min-height:34px;
  display:flex;
  align-items:center;
  gap:4px;
  padding:7px 9px;
  margin-bottom:6px;
  border:1px solid #cfdbe9;
  border-radius:7px;
  background:#fff;
  overflow:hidden;
  white-space:nowrap;
}

.schedule-cell-summary span{
  font-size:9px;
  color:#132b45;
  text-transform:uppercase;
  overflow:hidden;
  text-overflow:ellipsis;
}

.schedule-cell-summary small{
  font-size:9px;
  color:#132b45;
  text-transform:uppercase;
  overflow:hidden;
  text-overflow:ellipsis;
}

.schedule-class-block{
  min-height:52px;
  display:grid;
  grid-template-columns:18px 1fr;
  gap:7px;
  align-items:center;
  padding:8px 9px;
  border-radius:7px;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.05);
}

.schedule-grip{
  font-size:14px;
  letter-spacing:-4px;
  opacity:.65;
  transform:rotate(0deg);
}

.schedule-class-block strong{
  display:block;
  font-size:10px;
  font-weight:900;
  text-align:center;
  text-transform:uppercase;
  line-height:1.15;
}

.schedule-class-block small{
  display:block;
  margin-top:6px;
  font-size:8px;
  text-align:center;
  text-transform:uppercase;
  line-height:1.15;
}

.schedule-class-block em{
  display:none;
  margin-top:4px;
  font-size:8px;
  text-align:center;
  font-style:normal;
  opacity:.78;
}

.schedule-vacant{
  min-height:34px;
  display:flex;
  align-items:center;
  padding:8px 9px;
  border:1px solid #cfdbe9;
  border-radius:7px;
  background:#fff;
  font-size:9px;
  color:#40556b;
}

.schedule-break-row .schedule-period-cell{
  background:#f2f0ee;
}

.schedule-break-row td{
  height:54px!important;
  padding:0!important;
  background:#ece8e4!important;
}

.schedule-break{
  min-height:54px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  color:#111;
}

.schedule-break-icon{
  font-size:19px;
}

.schedule-break strong{
  font-size:11px;
  color:#111;
}

.schedule-note{
  margin-top:20px;
}

/* Neutraliza o layout antigo da ETAPA 06 nesta tela */
.school-schedule-wrap .schedule-days,
.school-schedule-wrap .schedule-day,
.school-schedule-wrap .schedule-lesson{
  display:initial;
}

@media(max-width:1100px){
  .school-schedule-table{min-width:1020px}
}

@media(max-width:700px){
  .school-schedule-wrap{
    border-radius:10px;
  }
  .school-schedule-table{
    min-width:980px;
  }
  .schedule-time-col,
  .schedule-period-cell{
    width:112px;
  }
}


/* ==========================================
   ETAPA 07 — CARTEIRINHA DIGITAL / VIDA ESCOLAR
   ========================================== */
.student-life-tools{margin-bottom:10px}
.student-card-shortcut small{display:block;color:var(--blue);font-size:10px;font-weight:800;margin-top:6px}

.student-id-stage{display:grid;grid-template-columns:minmax(0,720px) minmax(260px,1fr);gap:22px;align-items:start}
.student-id-card{
  background:linear-gradient(135deg,#073d79 0%,#0d5da6 62%,#f6cf20 62%,#f6cf20 100%);
  color:#fff;border-radius:22px;overflow:hidden;box-shadow:0 20px 48px rgba(4,48,96,.22);
  min-height:400px;position:relative
}
.student-id-top{display:flex;align-items:center;gap:15px;padding:22px 26px;background:rgba(255,255,255,.96);color:#0c3d72}
.student-id-top img{width:125px;height:60px;object-fit:contain}.student-id-top strong{display:block;font-size:18px}.student-id-top span{display:block;font-size:10px;letter-spacing:.6px;text-transform:uppercase;margin-top:3px}
.student-id-body{display:grid;grid-template-columns:145px 1fr;gap:22px;padding:26px}
.student-id-photo{width:145px;height:175px;border-radius:15px;background:rgba(255,255,255,.18);border:3px solid rgba(255,255,255,.86);overflow:hidden;position:relative;display:grid;place-items:center}
.student-id-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.student-id-initials{font-size:42px;font-weight:900;color:#fff}
.student-id-data>small{font-size:9px;text-transform:uppercase;opacity:.82}.student-id-data h2{font-size:25px;line-height:1.08;margin:5px 0 22px}
.student-id-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.student-id-grid span{display:block;font-size:8px;text-transform:uppercase;opacity:.75}.student-id-grid strong{display:block;font-size:12px;margin-top:3px}
.student-id-bottom{display:flex;justify-content:space-between;gap:20px;align-items:flex-end;padding:18px 26px;background:rgba(4,35,70,.35)}
.student-id-bottom span{display:block;font-size:8px;text-transform:uppercase;opacity:.75}.student-id-bottom strong{font-size:13px}.student-id-school{font-size:10px;font-weight:700}
.student-id-info h2{margin-bottom:7px}.student-id-info>p{font-size:11px;color:var(--muted);line-height:1.5}.student-id-info label{display:block;font-size:9px;font-weight:800;color:var(--muted);text-transform:uppercase;margin:16px 0 5px}
.verification-code,.verification-url{padding:10px;border:1px solid var(--line);background:#f7f9fc;border-radius:8px;font-family:monospace;font-size:9px;line-height:1.45;overflow-wrap:anywhere}
.student-id-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:18px}

.life-metrics{margin:20px 0 6px}.life-doc-list{display:grid;gap:9px}
.life-doc-item{display:grid;grid-template-columns:44px 1fr auto 18px;align-items:center;gap:13px;padding:13px 16px}
.life-doc-icon{width:44px;height:44px;border-radius:12px;background:#edf5ff;display:grid;place-items:center;font-size:21px}
.life-doc-item>div:nth-child(2)>strong{display:block;font-size:12px}.life-doc-item>div:nth-child(2)>span{display:block;color:var(--muted);font-size:9px;margin-top:4px}.life-doc-item>b{color:var(--blue);font-size:18px}

.academic-document{padding:32px;max-width:920px;margin:0 auto}
.academic-doc-head{display:flex;justify-content:space-between;gap:20px;align-items:center;border-bottom:2px solid #0a4a88;padding-bottom:18px}
.academic-doc-head img{width:180px;height:78px;object-fit:contain}.academic-doc-head>div{text-align:right}.academic-doc-head strong{display:block;font-size:17px}.academic-doc-head span{display:block;color:var(--muted);font-size:9px;margin-top:3px}
.academic-doc-title{text-align:center;padding:28px 0 20px}.academic-doc-title h1{font-size:25px;text-transform:uppercase;margin:10px 0 5px}.academic-doc-title p{font-size:10px;color:var(--muted);margin:0}
.academic-doc-meta{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;border:1px solid var(--line);border-radius:10px;overflow:hidden}.academic-doc-meta>div{padding:12px;border-right:1px solid var(--line)}.academic-doc-meta>div:last-child{border-right:0}.academic-doc-meta small{display:block;color:var(--muted);font-size:8px;text-transform:uppercase}.academic-doc-meta strong{display:block;font-size:11px;margin-top:4px}
.academic-doc-body{font-size:12px;line-height:1.75;padding:25px 8px;white-space:normal}.academic-doc-payload{margin-top:20px;border:1px solid var(--line);border-radius:10px;overflow:hidden}.academic-doc-payload>div{display:grid;grid-template-columns:210px 1fr;padding:10px 13px;border-bottom:1px solid var(--line)}.academic-doc-payload>div:last-child{border-bottom:0}.academic-doc-payload b{font-size:10px}.academic-doc-payload span{font-size:11px;white-space:pre-wrap}
.academic-doc-note{margin-top:20px;padding:13px;background:#fff5d8;border-radius:9px}.academic-doc-note strong{font-size:10px}.academic-doc-note p{font-size:11px;margin:5px 0 0;line-height:1.5}
.academic-doc-validation{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:23px;padding:14px;background:#f5f8fc;border-radius:10px}.academic-doc-validation small{display:block;color:var(--muted);font-size:8px;text-transform:uppercase}.academic-doc-validation strong,.academic-doc-validation span{display:block;font-family:monospace;font-size:9px;overflow-wrap:anywhere;margin-top:4px}
.academic-doc-actions{text-align:center;margin-top:25px}

@media(max-width:950px){
  .student-id-stage{grid-template-columns:1fr}
}
@media(max-width:700px){
  .student-id-body{grid-template-columns:1fr}
  .student-id-photo{width:120px;height:145px}
  .student-id-data h2{font-size:21px}
  .life-doc-item{grid-template-columns:40px 1fr auto}.life-doc-item>b{display:none}
  .academic-doc-meta{grid-template-columns:1fr 1fr}.academic-doc-meta>div{border-bottom:1px solid var(--line)}
  .academic-doc-payload>div{grid-template-columns:1fr;gap:4px}
  .academic-doc-validation{grid-template-columns:1fr}
}
@media(max-width:500px){
  .student-id-grid{grid-template-columns:1fr}
  .student-id-bottom{align-items:flex-start;flex-direction:column}
}
@media print{
  .student-id-info,.portal-nav,.portal-footer,.top-actions,.logout-link,.no-print,.portal-page-head{display:none!important}
  .student-id-stage{display:block}
  .student-id-card{width:85.6mm;min-height:54mm;height:54mm;border-radius:4mm;box-shadow:none;page-break-inside:avoid}
  .student-id-top{height:15mm;padding:2mm 5mm}.student-id-top img{width:30mm;height:12mm}.student-id-top strong{font-size:10pt}.student-id-top span{font-size:5pt}
  .student-id-body{grid-template-columns:25mm 1fr;gap:4mm;padding:3mm 5mm;height:30mm}.student-id-photo{width:23mm;height:27mm;border-radius:2mm}.student-id-initials{font-size:18pt}.student-id-data h2{font-size:11pt;margin:1mm 0 3mm}.student-id-grid{gap:1.5mm}.student-id-grid span{font-size:4pt}.student-id-grid strong{font-size:6pt}
  .student-id-bottom{height:9mm;padding:1.5mm 5mm}.student-id-bottom span{font-size:4pt}.student-id-bottom strong,.student-id-school{font-size:6pt}
  .academic-document{box-shadow:none;border:0;max-width:none}
}


/* ==========================================
   ETAPA 08 — SECRETARIA DIGITAL
   ========================================== */
.life-head-actions{display:flex;gap:8px;flex-wrap:wrap}

.secretary-dashboard{
  display:grid;grid-template-columns:58px 1fr auto;gap:16px;align-items:center;
  padding:20px;margin-bottom:18px;border-left:4px solid var(--blue)
}
.secretary-dashboard-icon{
  width:58px;height:58px;border-radius:16px;background:#e8f3ff;
  display:grid;place-items:center;font-size:27px
}
.secretary-dashboard strong{display:block;font-size:15px}
.secretary-dashboard span{display:block;color:var(--muted);font-size:11px;line-height:1.45;margin-top:4px}
.secretary-dashboard small{display:block;color:var(--blue);font-size:10px;font-weight:800;margin-top:7px}
.secretary-dashboard-actions{display:flex;align-items:center;gap:12px}

.secretary-metrics{margin:20px 0}
.secretary-explainer{display:grid;grid-template-columns:58px 1fr;gap:15px;align-items:center;padding:18px 20px}
.secretary-explainer-icon{width:58px;height:58px;border-radius:17px;background:#edf7ff;display:grid;place-items:center;font-size:27px}
.secretary-explainer strong{font-size:14px}.secretary-explainer p{font-size:11px;color:var(--muted);line-height:1.5;margin:4px 0 0}

.secretary-list{display:grid;gap:12px}
.secretary-request{display:grid;grid-template-columns:55px 1fr;gap:16px;padding:18px 20px}
.secretary-request-icon{width:55px;height:55px;border-radius:15px;background:#edf5ff;display:grid;place-items:center;font-size:24px}
.secretary-request-top{display:flex;justify-content:space-between;gap:15px}
.secretary-request-top h3{font-size:16px;margin:9px 0 0}.secretary-request-top time{font-size:9px;color:var(--muted);white-space:nowrap}
.secretary-request-main>p{font-size:11px;color:var(--muted);line-height:1.5;margin:11px 0}

.secretary-progress{display:flex;align-items:flex-start;max-width:520px;margin:15px 0 16px}
.secretary-progress>span{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:#e8edf2;color:#8090a0;font-size:10px;font-weight:800;position:relative}
.secretary-progress>span.done{background:#126fc7;color:#fff}
.secretary-progress>span small{position:absolute;top:35px;left:50%;transform:translateX(-50%);width:90px;text-align:center;font-size:8px;color:#65788a;font-weight:700}
.secretary-progress>i{width:110px;height:3px;background:#e1e8ef;margin-top:13px}.secretary-progress>i.done{background:#126fc7}

.secretary-document-ready{display:grid;grid-template-columns:35px 1fr auto;gap:11px;align-items:center;background:#eaf8f0;border:1px solid #c8ead7;border-radius:10px;padding:11px 12px;margin:32px 0 12px}
.secretary-document-ready>span{width:35px;height:35px;border-radius:50%;background:#18a66f;color:#fff;display:grid;place-items:center;font-weight:900}
.secretary-document-ready strong{display:block;font-size:11px;color:#116e4c}.secretary-document-ready small{display:block;font-size:9px;color:#607c6f;margin-top:3px}

.secretary-new-grid{align-items:start}
.secretary-form{display:grid;gap:18px}
.secretary-type-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.secretary-type-option{cursor:pointer}.secretary-type-option>input{position:absolute;opacity:0;pointer-events:none}
.secretary-type-card{display:block;height:100%;padding:14px;border:1px solid #d4dfe9;border-radius:11px;background:#fff;transition:.15s}
.secretary-type-card>b{display:block;font-size:23px;margin-bottom:8px}.secretary-type-card>strong{display:block;font-size:11px}.secretary-type-card>small{display:block;font-size:9px;color:var(--muted);line-height:1.4;margin-top:4px}
.secretary-type-option>input:checked+.secretary-type-card{border:2px solid var(--blue);background:#eef7ff;box-shadow:0 0 0 2px rgba(20,119,213,.08)}
.secretary-form .field{margin:0}.secretary-form label{display:block;font-size:11px;font-weight:700;margin-bottom:6px}
.secretary-form textarea,.secretary-form input{width:100%;border:1px solid #ccd8e4;border-radius:9px;padding:11px;font:inherit;font-size:12px}
.secretary-confirm{display:grid;grid-template-columns:18px 1fr;gap:8px;align-items:start;background:#f7f9fc;border-radius:9px;padding:11px}
.secretary-confirm input{width:auto;margin-top:2px}.secretary-confirm label{font-size:10px!important;color:#5c6f82;line-height:1.45;margin:0!important}

.secretary-how{position:sticky;top:20px}.secretary-how-step{display:grid;grid-template-columns:36px 1fr;gap:11px;align-items:start;margin:16px 0}
.secretary-how-step>span{width:36px;height:36px;border-radius:50%;background:#e8f3ff;color:var(--blue);display:grid;place-items:center;font-size:11px;font-weight:900}
.secretary-how-step strong{font-size:11px}.secretary-how-step p{font-size:10px;color:var(--muted);line-height:1.45;margin:3px 0 0}.secretary-note{margin-top:22px}

.secretary-detail-head{display:grid;grid-template-columns:60px 1fr;gap:16px;align-items:center;margin-bottom:16px}
.secretary-detail-icon{width:60px;height:60px;border-radius:16px;background:#edf5ff;display:grid;place-items:center;font-size:28px}
.secretary-detail-head h1{font-size:24px;margin:10px 0 4px}.secretary-detail-head p{font-size:10px;color:var(--muted);margin:0}
.secretary-tracking{display:grid;grid-template-columns:1fr 80px 1fr 80px 1fr;align-items:center;padding:18px 25px;margin-bottom:18px}
.secretary-tracking>div{text-align:center;color:#8a98a6}.secretary-tracking>div.done{color:#126fc7}.secretary-tracking b{width:34px;height:34px;border-radius:50%;background:#e6ecf2;display:grid;place-items:center;margin:0 auto 6px;font-size:11px}.secretary-tracking .done b{background:#126fc7;color:#fff}
.secretary-tracking strong{display:block;font-size:10px}.secretary-tracking small{display:block;font-size:8px;margin-top:3px;color:var(--muted)}
.secretary-tracking>i{height:3px;background:#e2e9f0}.secretary-tracking>i.done{background:#126fc7}
.secretary-detail-grid{align-items:start}.secretary-request-message{white-space:normal;font-size:11px;line-height:1.65;color:#4d6175;background:#f7f9fc;border-radius:9px;padding:13px;margin-bottom:16px}
.secretary-resolution{margin-top:17px}
.secretary-ready-large{text-align:center;padding:12px}.secretary-ready-large>span{width:54px;height:54px;border-radius:50%;background:#18a66f;color:#fff;display:grid;place-items:center;font-size:25px;font-weight:900;margin:0 auto}.secretary-ready-large h3{font-size:17px;margin:12px 0 5px}.secretary-ready-large>p{font-size:10px;color:var(--muted);line-height:1.5}
.secretary-issued-info{display:grid;grid-template-columns:1fr 1fr;gap:6px;text-align:left;background:#f4f8f6;border-radius:9px;padding:12px;margin:17px 0}.secretary-issued-info small{font-size:8px;color:var(--muted)}.secretary-issued-info strong{font-size:10px}
.secretary-waiting{text-align:center;padding:25px 10px}.secretary-waiting>div{font-size:35px}.secretary-waiting h3{font-size:15px;margin:8px 0}.secretary-waiting p{font-size:10px;color:var(--muted);line-height:1.5}
.secretary-cancel-form{margin-top:22px;text-align:center}.secretary-cancel-btn{background:#fff0f1;color:#a8323c;border:1px solid #f1cbd0}

@media(max-width:850px){
  .secretary-dashboard{grid-template-columns:50px 1fr}.secretary-dashboard-actions{grid-column:2}
  .secretary-type-grid{grid-template-columns:1fr}
  .secretary-new-grid,.secretary-detail-grid{grid-template-columns:1fr}
  .secretary-how{position:static}
}
@media(max-width:600px){
  .secretary-request{grid-template-columns:42px 1fr}.secretary-request-icon{width:42px;height:42px}
  .secretary-request-top{flex-direction:column}
  .secretary-progress>i{width:45px}
  .secretary-document-ready{grid-template-columns:35px 1fr}.secretary-document-ready .btn{grid-column:2}
  .secretary-tracking{grid-template-columns:1fr;gap:9px}.secretary-tracking>i{width:3px;height:22px;margin:auto}
}


/* ==========================================
   ETAPA 09 — MENSAGENS E COMUNICAÇÃO
   ========================================== */
.nav-communication-link{display:inline-flex!important;align-items:center;gap:5px}
.nav-unread-badge{
  min-width:18px;height:18px;padding:0 5px;border-radius:10px;
  display:inline-grid;place-items:center;background:#f0a400;color:#fff;
  font-size:8px;font-weight:900;line-height:1
}
.communication-page-head{align-items:center}
.communication-head-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.communication-head-actions form{margin:0}

.communication-summary{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;margin:0 0 16px
}
.communication-summary-card{
  display:block;padding:16px;text-decoration:none;color:inherit;
  border:1px solid var(--line);transition:.15s
}
.communication-summary-card:hover,.communication-summary-card.active{
  border-color:#1477d5;background:#f0f7ff;box-shadow:0 5px 18px rgba(16,91,160,.08)
}
.communication-summary-card>span{display:block;color:var(--muted);font-size:9px;font-weight:800}
.communication-summary-card>strong{display:block;margin:5px 0 2px;color:var(--blue);font-size:25px}
.communication-summary-card>small{font-size:9px;color:#617487}

.communication-student-switcher{
  display:grid;grid-template-columns:1fr minmax(220px,330px);
  gap:18px;align-items:center;padding:15px 18px;margin-bottom:14px
}
.communication-student-switcher strong{display:block;font-size:11px}
.communication-student-switcher small{display:block;margin-top:3px;color:var(--muted);font-size:9px}
.communication-student-switcher select{
  width:100%;border:1px solid #ccd9e5;border-radius:8px;
  padding:9px 10px;background:#fff;font:inherit;font-size:10px
}

.communication-filter{
  display:grid;grid-template-columns:minmax(220px,1fr) 180px 160px auto;
  gap:10px;align-items:end;padding:14px;margin-bottom:16px
}
.communication-filter-compact{grid-template-columns:minmax(260px,1fr) 190px auto}
.communication-filter-field label{
  display:block;margin-bottom:5px;color:#526a7d;font-size:9px;font-weight:800
}
.communication-filter input,.communication-filter select{
  width:100%;min-height:38px;border:1px solid #ccd8e4;border-radius:8px;
  padding:8px 10px;background:#fff;font:inherit;font-size:10px
}
.communication-filter-actions{display:flex;gap:7px}
.communication-list{display:grid;gap:10px}
.communication-item{
  display:grid;grid-template-columns:46px 1fr 18px;gap:13px;align-items:center;
  padding:16px 17px;text-decoration:none;color:inherit;border:1px solid var(--line);
  transition:.15s
}
.communication-item:hover{transform:translateY(-1px);border-color:#b9cfe3;box-shadow:0 7px 20px rgba(24,70,110,.07)}
.communication-item.unread{border-left:4px solid #1477d5;background:#fbfdff}
.communication-type-icon{
  width:46px;height:46px;border-radius:13px;display:grid;place-items:center;font-size:21px
}
.communication-type-icon.message{background:#eaf4ff}
.communication-type-icon.announcement{background:#fff6dd}
.communication-item-main{min-width:0}
.communication-item-top{display:flex;justify-content:space-between;gap:15px;align-items:flex-start}
.communication-item-title{min-width:0}
.communication-kind{
  display:block;margin-bottom:3px;color:#6e8191;font-size:8px;
  font-weight:900;text-transform:uppercase;letter-spacing:.35px
}
.communication-item-title strong{display:block;font-size:13px;line-height:1.25}
.communication-item-top time{color:var(--muted);font-size:8px;white-space:nowrap}
.communication-item-main>small{display:block;margin-top:5px;color:#64788b;font-size:9px}
.communication-item-main>p{margin:8px 0 9px;color:#536a7d;font-size:10px;line-height:1.48}
.communication-item>b{color:#88a0b5;font-size:17px}
.communication-list-footer{margin-top:14px;text-align:right}

.communication-detail .message-detail-head{align-items:flex-start}
.communication-detail-actions{
  display:flex;gap:8px;flex-wrap:wrap;margin-top:25px;padding-top:15px;
  border-top:1px solid var(--line)
}
.communication-detail-actions form{margin:0}
.communication-archive-btn{
  background:#fff0f1;color:#a53640;border:1px solid #ecc6cb
}
.communication-validity{
  margin-top:20px;padding:10px 12px;border-radius:8px;
  background:#f6f8fb;color:#607386;font-size:9px
}
.communication-help-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:10px}
.communication-help-actions .btn{display:inline-flex}

.dashboard-announcement{
  display:block;text-decoration:none;color:inherit;transition:.15s
}
.dashboard-announcement:hover{border-color:#b8cee2;background:#fbfdff}
.dashboard-announcement.unread{border-left:4px solid #1477d5}
.dashboard-announcement-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
.dashboard-announcement-top h3{margin:0}

@media(max-width:900px){
  .communication-summary{grid-template-columns:1fr 1fr}
  .communication-filter,.communication-filter-compact{
    grid-template-columns:1fr 1fr
  }
  .communication-search{grid-column:1/-1}
  .communication-filter-actions{grid-column:1/-1}
}
@media(max-width:650px){
  .communication-page-head{align-items:flex-start;flex-direction:column}
  .communication-summary{grid-template-columns:1fr}
  .communication-student-switcher{grid-template-columns:1fr}
  .communication-filter,.communication-filter-compact{grid-template-columns:1fr}
  .communication-search,.communication-filter-actions{grid-column:auto}
  .communication-filter-actions{display:grid;grid-template-columns:1fr 1fr}
  .communication-item{grid-template-columns:40px 1fr;padding:14px}
  .communication-type-icon{width:40px;height:40px;font-size:18px}
  .communication-item>b{display:none}
  .communication-item-top{flex-direction:column;gap:4px}
  .communication-detail-actions{display:grid}
  .communication-help-actions{display:grid}
}


/* ==========================================
   AJUSTE VISUAL — MENU LATERAL COM SUBMENUS
   ========================================== */
body{overflow-x:hidden}
.portal-top{position:relative;z-index:30}
.portal-workspace{
  width:100%;
  display:grid;
  grid-template-columns:255px minmax(0,1fr);
  align-items:stretch;
  min-height:calc(100vh - 86px);
}
.portal-sidebar{
  background:linear-gradient(180deg,#073d79 0%,#052e5e 100%);
  color:#fff;
  border-right:1px solid rgba(255,255,255,.08);
}
.sidebar-inner{
  position:sticky;
  top:0;
  padding:22px 14px 26px;
}
.sidebar-title{
  padding:0 10px 17px;
  margin-bottom:12px;
  border-bottom:1px solid rgba(255,255,255,.14)
}
.sidebar-title span{
  display:block;
  color:#a9c7e5;
  font-size:10px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.75px
}
.sidebar-title strong{
  display:block;
  margin-top:4px;
  color:#fff;
  font-size:15px
}
.sidebar-nav{display:grid;gap:7px}
.sidebar-link,
.sidebar-group summary{
  min-height:43px;
  display:flex;
  align-items:center;
  gap:10px;
  padding:10px 11px;
  border-radius:9px;
  color:#ecf5ff;
  font-size:12px;
  font-weight:800;
  cursor:pointer;
  user-select:none;
  transition:.15s ease
}
.sidebar-link:hover,
.sidebar-group summary:hover,
.sidebar-link.active{
  background:rgba(255,255,255,.12);
  color:#fff
}
.sidebar-link.active{
  box-shadow:inset 3px 0 0 var(--yellow)
}
.sidebar-icon,
.sidebar-group summary>span:first-child{
  width:22px;
  flex:0 0 22px;
  text-align:center;
  color:#ffd94a;
  font-size:14px
}
.sidebar-group{border-radius:10px}
.sidebar-group summary{list-style:none}
.sidebar-group summary::-webkit-details-marker{display:none}
.sidebar-group summary::after{
  content:'›';
  margin-left:auto;
  color:#a9c7e5;
  font-size:18px;
  line-height:1;
  transition:transform .15s ease
}
.sidebar-group[open] summary::after{transform:rotate(90deg)}
.sidebar-submenu{
  margin:2px 0 6px 32px;
  padding:2px 0 3px 10px;
  border-left:1px solid rgba(255,255,255,.15);
  display:grid;
  gap:2px
}
.sidebar-submenu a{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  min-height:34px;
  padding:8px 10px;
  border-radius:7px;
  color:#cfe0f2;
  font-size:11px;
  font-weight:700;
  transition:.15s ease
}
.sidebar-submenu a:hover,
.sidebar-submenu a.active{
  background:rgba(255,255,255,.10);
  color:#fff
}
.sidebar-submenu a.active{
  color:#fff;
  box-shadow:inset 2px 0 0 var(--yellow)
}
.sidebar-unread-badge,
.sidebar-sub-badge{
  display:inline-grid;
  place-items:center;
  min-width:19px;
  height:19px;
  padding:0 5px;
  border-radius:999px;
  background:var(--yellow);
  color:var(--navy2);
  font-size:9px;
  font-weight:900;
  line-height:1
}
.sidebar-unread-badge{margin-left:auto;margin-right:4px}
.portal-main-area{
  min-width:0;
  display:flex;
  flex-direction:column;
  background:var(--bg)
}
.portal-main-area .page{
  width:min(1180px,94%);
  flex:1
}
.portal-main-area .portal-footer{margin-top:auto}
.portal-main-area .footer-inner{width:min(1180px,94%)}

/* Desativa o antigo menu horizontal caso algum cache/trecho legado permaneça */
.portal-nav{display:none!important}

@media(max-width:1020px){
  .portal-workspace{grid-template-columns:225px minmax(0,1fr)}
  .sidebar-inner{padding:18px 10px 24px}
  .sidebar-link,.sidebar-group summary{padding:9px 9px;font-size:11px}
  .sidebar-submenu{margin-left:27px}
}

@media(max-width:760px){
  .portal-workspace{display:block;min-height:0}
  .portal-sidebar{border-right:0;border-bottom:1px solid rgba(255,255,255,.10)}
  .sidebar-inner{position:static;padding:10px 12px 12px}
  .sidebar-title{display:none}
  .sidebar-nav{gap:5px}
  .sidebar-link,.sidebar-group summary{min-height:40px}
  .sidebar-submenu{margin-left:26px}
  .portal-main-area .page{width:92%}
  .portal-main-area .footer-inner{width:92%}
}
