/* CMJ Integra — identidade institucional, sem fontes ou bibliotecas remotas. */
:root{color-scheme:light;--navy:#142746;--navy-deep:#10203b;--navy-muted:#94a8c6;--primary:#2354ca;--primary-hover:#1943ac;--ink:#1c2c44;--muted:#586b83;--line:#e5eaf1;--canvas:#f5f7fb;--white:#fff;--teal:#197e73;--amber:#a86513;--red:#b84148;--shadow:0 3px 14px #122b4c05;--radius:15px;--font:Inter,"Segoe UI",Arial,sans-serif}

*{box-sizing:border-box}
body{margin:0;background:var(--canvas);font-family:var(--font);color:var(--ink);font-size:1rem;line-height:1.55;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit}
button,a,input,select,textarea{-webkit-tap-highlight-color:transparent}
button{cursor:pointer}
button:disabled{cursor:not-allowed;opacity:.5}
button{color:inherit}
a{color:var(--primary);text-decoration:none}
h1,h2,h3,h4,p{margin:0}
h1,h2,h3{letter-spacing:-.035em;line-height:1.3}
h1{font-size:1.9375rem;font-weight:700}
h2{font-size:1.25rem;font-weight:650}
h3{font-size:1.125rem;font-weight:650}
small{font-size:0.9375rem}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #7da3ff;outline-offset:3px}
input:focus,select:focus,textarea:focus{border-color:#7798e9;box-shadow:0 0 0 3px #2354ca0d}
::selection{background:#d5e2ff}
svg.icon{display:inline-block;vertical-align:middle;flex:0 0 auto;width:20px;height:20px}
.icon.rotate{transform:rotate(180deg)}
[hidden]{display:none!important}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.skip-link{position:fixed;top:8px;left:8px;background:#fff;padding:10px 16px;z-index:1000;transform:translateY(-150%);border-radius:6px}
.skip-link:focus{transform:translateY(0)}
.muted{color:var(--muted)}
.mono{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:0.9375rem}
.capitalize{text-transform:capitalize}
.align-right{text-align:right!important}
.full-width{width:100%}
.eyebrow{font-size:0.875rem;letter-spacing:.15em;color:var(--muted);font-weight:750;display:block;margin-bottom:7px}
.text-link,.text-button{padding:0;background:none;border:0;color:var(--primary);font-size:1rem;font-weight:600}
.text-link:hover,.text-button:hover{text-decoration:underline}
.btn{min-height:40px;padding:9px 15px;display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:8px;border:1px solid transparent;white-space:nowrap;font-size:0.9375rem;font-weight:650;line-height:1.35;transition:background .15s,box-shadow .15s,transform .15s}
.btn:hover:not(:disabled){transform:translateY(-1px)}
.btn .icon{width:17px;height:17px}
.btn-primary{background:var(--primary);color:#fff;box-shadow:0 3px 5px #1748bd12}
.btn-primary:hover:not(:disabled){background:var(--primary-hover)}
.btn-secondary{background:#fff;border-color:var(--line);color:#42536c}
.btn-secondary:hover:not(:disabled){background:#f6f8fc;border-color:#cbd6e5}
.btn-white{background:white;color:#1e417b}
.btn-danger{background:var(--red);color:#fff}
.btn-small{font-size:0.9375rem;min-height:33px;padding:6px 11px}
.icon-button{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;padding:7px;border:0;border-radius:8px;background:transparent;color:#6c7b90;flex:0 0 auto}
.icon-button:hover:not(:disabled){background:#edf2f9;color:var(--ink)}
.avatar{border:0;width:39px;height:39px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;background:#eaf0ff;color:#3058a3;font-weight:700;font-size:1rem;flex:0 0 auto}
.small-avatar{width:34px;height:34px;border-radius:10px;font-size:0.9375rem}
.large-avatar,.big-avatar{width:64px;height:64px;border-radius:18px;font-size:1.5625rem}
.badge{display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:4px 9px;border-radius:6px;font-size:0.875rem;font-weight:650;white-space:nowrap;background:#eef1f5;color:#65748a;vertical-align:middle}
.badge-dot{width:5px;height:5px;border-radius:50%;background:currentColor;flex:0 0 auto}
.badge.success{color:#208172;background:#eaf6f1}
.badge.warning{color:#a46418;background:#fff4df}
.badge.danger{color:#b7484c;background:#fcecee}
.badge.blue{color:#325dc0;background:#edf2ff}
.badge.neutral{color:#6c7b90;background:#f0f3f7}
.loader{display:inline-block;width:27px;height:27px;border:3px solid #d9e3f7;border-top-color:var(--primary);border-radius:50%;animation:spin .7s linear infinite}
.loader.small{width:16px;height:16px;border-width:2px;border-color:#ffffff70;border-top-color:#fff}
.boot,.page-loading{min-height:70vh;display:flex;align-items:center;justify-content:center;gap:14px;color:var(--muted)}
.boot{flex-direction:column}
.page-loading{min-height:420px}
.inline-error{color:var(--red);font-size:0.9375rem;padding:10px 0}

/* Navegação e estrutura */
.app-shell{min-height:100vh}
.sidebar{position:fixed;inset:0 auto 0 0;width:284px;background:var(--navy);color:#fff;display:flex;flex-direction:column;z-index:30;border-right:1px solid #243755}
.brand{display:flex;align-items:center;gap:11px;margin:28px 20px 18px;color:white}
.logo-wrap{background:white;border-radius:50%;padding:3px;width:47px;height:47px;display:flex;align-items:center;justify-content:center;flex:0 0 auto}
.logo-wrap img{width:42px;height:42px;border-radius:50%}
.brand strong{display:block;font-size:1.5rem;line-height:1.2;letter-spacing:-.035em;font-weight:650}
.brand small{display:block;color:#a2b5d1;font-size:0.8125rem;letter-spacing:.075em;margin-top:5px;font-weight:650;white-space:nowrap}
.workspace-label{margin:0 20px 15px;padding:10px 11px;border:1px solid #ffffff12;border-radius:8px;display:flex;gap:9px;align-items:center;color:#b7c7df;font-size:0.9375rem}
.workspace-label .icon{width:15px;height:15px;color:#9eb4d9}
.workspace-dot{margin-left:auto;width:5px;height:5px;border-radius:50%;background:#79b7a4}
.sidebar nav{padding:0 12px 12px;flex:1;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#ffffff20 transparent}
.nav-section{margin:18px 14px 7px;font-size:0.8125rem;font-weight:650;letter-spacing:.14em;color:#8fa4c3}
.nav-section:first-child{margin-top:5px}
.nav-link{width:100%;display:flex;align-items:center;gap:11px;text-align:left;border:1px solid transparent;background:transparent;color:#c2cee1;min-height:39px;padding:9px 13px;border-radius:8px;font-size:0.9375rem;font-weight:500;margin:2px 0}
.nav-link .icon{width:17px;height:17px;color:#92a9ca}
.nav-link:hover{background:#ffffff06;color:white}
.nav-link.active{background:#2b4774;border-color:#45659a52;color:#fff;box-shadow:inset 3px 0 #8faef0}
.nav-link.active .icon{color:#d5e2ff}
.sidebar-bottom{padding:13px 17px 16px;border-top:1px solid #ffffff10}
.sidebar-protection{display:flex;gap:8px;align-items:center;color:#abbcd6;font-size:0.8125rem;padding:0 5px 15px}
.sidebar-protection .icon{width:17px;height:17px;color:#a4b6d2}
.sidebar-protection small{display:block;color:#7e96b8;font-size:0.8125rem;margin-top:1px}
.sidebar-profile{width:100%;display:flex;align-items:center;gap:9px;background:#ffffff05;border:1px solid #ffffff0d;border-radius:9px;color:#fff;padding:9px;text-align:left}
.sidebar-profile .avatar{background:#425c82;color:#eef3ff;width:32px;height:32px;border-radius:8px;font-size:0.9375rem}
.sidebar-profile>span:nth-child(2){min-width:0;flex:1}
.sidebar-profile strong{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:0.875rem;font-weight:600}
.sidebar-profile small{display:block;font-size:0.8125rem;color:#a8bad3}
.sidebar-profile>.icon{width:13px;height:13px;color:#9aafd0}
.main-shell{margin-left:284px;min-width:0}
.topbar{height:73px;background:#fff;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;padding:0 32px;gap:20px;position:sticky;top:0;z-index:20}
.topbar-left,.topbar-actions{display:flex;align-items:center;gap:18px;min-width:0}
.breadcrumb{font-size:0.9375rem;color:#7e8a9d;white-space:nowrap}
.breadcrumb>span{padding:0 12px;color:#c2ccd9}
.breadcrumb strong{color:#526278;font-weight:550}
.search-trigger{display:flex;align-items:center;gap:9px;border:0;background:none;padding:5px 0;color:#8b96a7;font-size:0.875rem}
.search-trigger .icon{width:16px;height:16px}
.search-trigger kbd{margin-left:19px;border:1px solid #e4e9f0;background:#f8fafc;border-radius:4px;font-size:0.8125rem;font-family:inherit;padding:2px 5px;color:#8e9db0}
.topbar-divider{width:1px;height:24px;background:var(--line)}
.topbar-avatar{width:32px;height:32px;border-radius:50%;font-size:0.9375rem}
.topbar .icon-button{width:30px;height:32px}
.notification-trigger{position:relative}
.notification-trigger:after{display:none;content:'';position:absolute;right:7px;top:7px;width:4px;height:4px;background:#d09851;border-radius:50%;border:1px solid #fff}
.mobile-menu,.sidebar-overlay{display:none}
.demo-banner{padding:8px 32px;display:flex;justify-content:space-between;align-items:center;gap:12px;background:#fff7e7;color:#8c672f;font-size:0.875rem;border-bottom:1px solid #f3e6ca}
.demo-banner>div{display:flex;align-items:center;gap:7px}
.demo-banner .icon{width:14px;height:14px}
.demo-banner button{border:0;background:transparent;color:#895b18;font-weight:650;font-size:0.875rem;display:flex;align-items:center;gap:7px;white-space:nowrap}
.session-bar{display:flex;align-items:center;gap:7px;padding:7px 32px;background:#edf3fa;color:#5c7291;font-size:0.875rem;border-bottom:1px solid #e2eaf5}
.session-bar .icon{width:13px;height:13px}
.session-bar>span{margin-left:auto;display:flex;align-items:center;gap:5px}
#main-content{min-height:calc(100vh - 74px)}
.main-shell #main-content{padding:29px 32px 0}
.page-heading{display:flex;justify-content:space-between;gap:20px;align-items:center;margin-bottom:24px}
.page-heading p{margin-top:8px;color:var(--muted);font-size:0.9375rem;line-height:1.6;max-width:740px}
.page-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.date-chip{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--line);padding:9px 12px;border-radius:8px;color:#63748b;font-size:0.875rem;white-space:nowrap}
.date-chip .icon{width:15px;height:15px}
.app-footer{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:35px;padding:18px 0 20px;border-top:1px solid var(--line);font-size:0.8125rem;color:#8b97a9}
.app-footer>span:last-child{font-size:0.8125rem;letter-spacing:.03em}
.footer-dot{padding:0 7px;color:#c1cad6}

/* Painéis e visão geral */
.overview-hero{position:relative;overflow:hidden;display:flex;align-items:center;justify-content:space-between;gap:25px;border-radius:16px;background:linear-gradient(108deg,#183a6c,#234d87);padding:30px 33px;color:white;margin-bottom:22px;min-height:234px}
.overview-hero:after{content:'';position:absolute;width:510px;height:510px;border:1px solid #ffffff08;border-radius:50%;right:-30px;top:-145px;box-shadow:0 0 0 48px #ffffff03,0 0 0 96px #ffffff02;pointer-events:none}
.hero-copy,.hero-period{position:relative;z-index:1}
.hero-kicker{font-size:0.8125rem;letter-spacing:.19em;color:#a9c4e8;font-weight:650}
.hero-copy h2{font-size:1.9375rem;font-weight:550;letter-spacing:-.035em;white-space:pre-line;line-height:1.27;margin:12px 0 10px}
.hero-copy p{color:#b7cbe6;font-size:0.9375rem;max-width:460px;margin-bottom:19px}
.hero-copy .btn{min-height:35px;font-size:0.875rem;padding:9px 13px;gap:13px;border-radius:7px}
.hero-copy .btn .icon{width:14px;height:14px}
.hero-period{display:flex;align-items:center;flex-direction:column;text-align:center;min-width:186px;padding:6px 12px 1px}
.period-chip{font-size:0.8125rem;letter-spacing:.1em;color:#d6e3f6;border:1px solid #ffffff24;padding:5px 11px;border-radius:5px}
.hero-calendar{width:52px;height:52px;border-radius:15px;background:#ffffff0d;display:grid;place-items:center;margin:14px 0 9px}
.hero-calendar .icon{width:27px;height:27px;color:#cfddf3}
.hero-period strong{font-size:1.25rem;font-weight:600;letter-spacing:-.015em}
.hero-period p{font-size:0.8125rem;color:#b1c5e1;margin-top:2px}
.hero-status{display:inline-flex;align-items:center;gap:5px;font-size:0.8125rem;margin-top:10px;color:#b2daca}
.hero-status i{width:4px;height:4px;border-radius:50%;background:#9accb9}
.stats-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:23px}
.stat-card{background:white;border:1px solid var(--line);border-radius:12px;padding:17px 19px 16px;box-shadow:var(--shadow);min-width:0}
.stat-card>div{display:flex;align-items:center;justify-content:space-between;gap:8px}
.stat-card>div>span:first-child{font-size:0.875rem;font-weight:550;color:#61718a}
.stat-icon{width:32px;height:32px;display:grid;place-items:center;border-radius:9px;background:#edf2ff;color:#4267b4}
.stat-icon .icon{width:17px;height:17px}
.stat-icon.stat-1{background:#f1edfc;color:#8872b6}
.stat-icon.stat-2{background:#eaf6f2;color:#448c7a}
.stat-icon.stat-3{background:#fff4e9;color:#b18a4a}
.stat-card>strong{font-size:2rem;line-height:1.5;display:block;font-weight:650;letter-spacing:-.04em;margin-top:5px;overflow-wrap:anywhere}
.stat-card>small{color:#8a96a8;font-size:0.8125rem}
.dashboard-columns{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(250px,1fr);gap:22px;margin-bottom:24px}
.panel{background:#fff;border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);min-width:0;overflow:hidden}
.panel-header{padding:20px 23px 17px;display:flex;justify-content:space-between;gap:12px;align-items:center;border-bottom:1px solid #edf0f5}
.panel-header h2{font-size:1rem;letter-spacing:-.02em}
.panel-header p{font-size:0.875rem;color:var(--muted);margin-top:5px}
.panel-header .text-button,.panel-header .text-link{font-size:0.875rem;font-weight:550}
.panel-header .icon{width:16px;height:16px}
.panel-header .badge{font-size:0.8125rem}
.section-title{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:22px 0 13px}
.section-title h2{font-size:1.125rem}
.section-title p{font-size:0.9375rem;color:var(--muted)}
.section-title .text-link,.section-title .text-button{font-size:0.9375rem}
.attention-list{padding:1px 23px}
.attention-list>button,.attention-list>a,.attention-list>div{display:flex;align-items:center;gap:13px;width:100%;padding:18px 0;border:0;border-bottom:1px solid #edf0f5;background:transparent;text-align:left}
.attention-list>*:last-child{border-bottom:0}
.attention-icon{width:36px;height:36px;border-radius:10px;background:#f0f4fc;color:#6682b6;display:grid;place-items:center;flex:0 0 auto}
.attention-icon.amber{background:#fff6e9;color:#bc914e}
.attention-icon.blue{background:#edf3ff;color:#567dc4}
.attention-icon.mint{background:#eaf7f2;color:#529986}
.attention-list strong{font-size:0.9375rem;font-weight:600;display:block}
.attention-list p,.attention-list small{font-size:0.8125rem;color:#8390a4;display:block;margin-top:3px}
.attention-list button>.icon{margin-left:auto;color:#a7b4c6;width:15px;height:15px}
.attention-list .badge{margin-left:auto}
.quick-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:14px 22px 20px;border-top:1px solid #f1f3f7}
.quick-actions button{background:#f8faff;border:1px solid #e7edf8;border-radius:8px;display:flex;align-items:center;justify-content:center;gap:8px;padding:10px 8px;font-size:0.875rem;font-weight:550;color:#4a6896}
.quick-actions .icon{width:14px;height:14px}
.agenda-list{padding:0 21px}
.agenda-item{display:flex;gap:12px;align-items:center;padding:16px 0;border-bottom:1px solid #edf0f5}
.agenda-item:last-child{border-bottom:0}
.date-square{width:43px;height:44px;border-radius:8px;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#f0f4fb;color:#496898;flex:0 0 auto}
.date-square strong{font-size:1.25rem;font-weight:600;line-height:1.15}
.date-square small{font-size:0.8125rem;text-transform:uppercase;letter-spacing:.06em}
.agenda-item h3,.agenda-item strong{font-size:0.9375rem;font-weight:600;letter-spacing:0}
.agenda-item p,.agenda-item>div>small{font-size:0.8125rem;color:#8b97a9;margin-top:3px}
.agenda-item .badge{margin-left:auto;font-size:0.8125rem;padding:4px 6px}
.class-preview-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.class-preview{padding:16px;text-align:left;border:1px solid var(--line);background:#fff;border-radius:12px;display:flex;gap:12px;align-items:center}
.class-preview .class-symbol{width:36px;height:36px;border-radius:10px}
.class-preview .icon{width:18px;height:18px}
.class-preview strong{display:block;font-size:0.9375rem;letter-spacing:-.02em}
.class-preview p,.class-preview small{display:block;font-size:0.8125rem;color:var(--muted);margin-top:3px}
.class-preview>.icon{margin-left:auto;width:14px;height:14px;color:#9dacbf}
.class-symbol{width:47px;height:47px;background:#eef3ff;border-radius:13px;display:grid;place-items:center;color:#5c78b0}
.class-symbol.mint{background:#ebf6f1;color:#59927f}
.class-symbol.coral{background:#fcf0ed;color:#ba8275}
.class-symbol.amber{background:#fff6e7;color:#b19361}
.notice-stack{display:grid;gap:12px}
.notice-row{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid var(--line);border-radius:10px;padding:15px 19px}
.notice-row>div{flex:1}
.notice-row h3,.notice-row strong{font-size:0.9375rem}
.notice-row p{font-size:0.875rem;color:var(--muted);margin-top:3px}
.notice-row>small{font-size:0.8125rem;color:#7d8fa7}
.dashboard-footnote{font-size:0.875rem;color:#8592a6;padding:14px 0 0;display:flex;align-items:center;gap:7px}
.dashboard-footnote .icon{width:13px;height:13px}

/* Formulários e tabelas */
.field{display:flex;flex-direction:column;gap:7px;font-size:0.9375rem;font-weight:600;color:#4f6077;min-width:0}
.field>span{line-height:1.4}
.field small,.field-note{font-size:0.875rem;font-weight:400;color:#8591a3;line-height:1.6}
.field input,.field select,.field textarea,input.input-search{width:100%;background:#fff;border:1px solid #dfe5ee;border-radius:7px;color:#344761;padding:10px 11px;min-height:41px;outline:none;font-size:0.9375rem;font-weight:400;transition:border-color .15s,box-shadow .15s}
.field textarea{resize:vertical;min-height:100px;line-height:1.6}
.field input[readonly],.field textarea[readonly]{background:#f7f9fc;color:#69788d}
.field input::placeholder,input.input-search::placeholder{color:#a0acbc}
.field select{padding-right:27px}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}
.form-error{background:#fff0f0;color:#a4353b;border:1px solid #f3cdcf;padding:11px 13px;border-radius:7px;font-size:0.9375rem;line-height:1.6}
.checkbox-label{display:flex;gap:10px;align-items:center;font-size:0.9375rem;color:#586a81}
.checkbox-label input{width:17px;height:17px;accent-color:var(--primary)}
.info-strip{background:#eef4fd;color:#49698e;border:1px solid #dfe9f7;border-radius:9px;display:flex;align-items:flex-start;gap:10px;padding:13px 15px;font-size:0.9375rem;line-height:1.7;margin:16px 0}
.info-strip>.icon{width:16px;height:16px;margin-top:2px}
.info-strip p{flex:1}
.info-strip.warning{background:#fff8ec;border-color:#f0e3cb;color:#977439}
.filter-bar{display:flex;align-items:flex-end;gap:16px;background:#fff;border:1px solid var(--line);border-radius:11px;padding:18px 21px;margin-bottom:20px;flex-wrap:wrap}
.filter-bar>.field{min-width:145px;flex:1}
.filter-bar>.field:has(input[type=date]){max-width:165px}
.filter-bar .btn{height:41px}
.table-toolbar{padding:18px 22px;display:flex;align-items:center;justify-content:space-between;gap:16px;border-bottom:1px solid var(--line);flex-wrap:wrap}
.table-toolbar .input-search{max-width:370px;min-width:210px}
.search-field{position:relative}
.table-toolbar .search-field{display:flex;flex-direction:row;align-items:center;gap:9px;flex:1;max-width:380px}
.table-toolbar .search-field input{min-width:180px}
.table-toolbar>.muted{font-size:0.9375rem}
.table-scroll{overflow:auto;scrollbar-width:thin;scrollbar-color:#d5deeb transparent}
table{width:100%;border-collapse:collapse;text-align:left;font-size:0.9375rem}
thead{background:#f9fbfd}
th{padding:12px 20px;font-size:0.8125rem;color:#7d8ca1;letter-spacing:.045em;text-transform:uppercase;font-weight:650;white-space:nowrap;border-bottom:1px solid var(--line)}
td{padding:14px 20px;border-bottom:1px solid #edf1f6;vertical-align:middle;color:#55677e}
tbody tr:last-child td{border-bottom:0}
tbody tr:hover{background:#fbfcff}
.person-cell{display:flex;align-items:center;gap:10px;white-space:nowrap}
.person-cell strong{font-size:0.9375rem;font-weight:600;color:#30425c;display:block}
.person-cell small{display:block;font-size:0.8125rem;color:#92a0b2;margin-top:3px}
.person-cell .avatar{background:#eef2fa;color:#6c7f9e}
.table-footer{display:flex;justify-content:space-between;align-items:center;padding:12px 20px;font-size:0.875rem;color:#8b99ac;gap:10px;border-top:1px solid var(--line)}
.table-footer>div{display:flex;gap:3px}
.table-footer .icon-button{width:29px;height:29px;border:1px solid var(--line);border-radius:6px;background:#fff}
.table-footer .icon{width:13px;height:13px}
.table-footer .save-state{display:flex;align-items:center;gap:5px;white-space:nowrap}
.save-state.unsaved{color:#a27d41}
.row-number{width:50px}
.cell-note{display:block;font-size:0.875rem;color:#8997a9;margin-top:3px}
.empty-state{padding:48px 25px;text-align:center;display:flex;align-items:center;flex-direction:column}
.empty-icon{width:52px;height:52px;border-radius:15px;background:#f1f5fb;display:grid;place-items:center;color:#8ba0c0;margin-bottom:17px}
.empty-state h3{font-size:1.125rem;margin-bottom:8px}
.empty-state p{color:#8592a6;font-size:0.9375rem;max-width:460px;line-height:1.8}
.empty-state .btn{margin-top:19px}
.title-with-badge{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.subtle-caption{font-size:0.9375rem;color:#91a0b3;margin-top:7px}

/* Cadastros e detalhes */
.class-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.class-card{padding:23px;position:relative}
.class-card>header{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px}
.class-card h2{font-size:1.5625rem;margin:14px 0 4px}
.class-card>p{font-size:0.9375rem;color:var(--muted)}
.class-card>div:first-child{display:flex;justify-content:space-between;align-items:center}
.class-card dl{display:flex;gap:25px;margin:18px 0}
.class-card dt{font-size:0.875rem;color:var(--muted)}
.class-card dd{margin:3px 0 0;font-size:1rem;font-weight:600}
.capacity-label{display:flex;justify-content:space-between;color:#8492a5;font-size:0.875rem;margin:19px 0 8px}
.class-card progress{appearance:none;width:100%;height:5px;border:0;border-radius:10px;background:#edf1f7;display:block}
.class-card progress::-webkit-progress-bar{border-radius:10px;background:#edf1f7}
.class-card progress::-webkit-progress-value{border-radius:10px;background:#8da8d8}
.class-card progress::-moz-progress-bar{background:#8da8d8;border-radius:10px}
.class-card>footer{display:flex;justify-content:space-between;margin-top:20px;padding-top:16px;border-top:1px solid var(--line);gap:10px}
.subject-chips,.subject-list{display:flex;gap:6px;flex-wrap:wrap;margin-top:16px}
.subject-chips span,.subject-list span{font-size:0.8125rem;border:1px solid #e6edf7;border-radius:5px;padding:4px 7px;color:#6a7c96;background:#f7f9fd}
.detail-summary{display:flex;align-items:center;gap:15px;margin-bottom:6px}
.detail-summary h3{font-size:1.5rem}
.detail-summary p{color:#8492a7;font-size:0.9375rem;margin-top:3px}
.detail-tags{display:flex;gap:7px;margin-top:10px;flex-wrap:wrap}
.detail-list{margin:0;display:grid;gap:10px}
.detail-list>div{padding:11px 0;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;gap:16px}
.detail-list dt{color:#8592a5;font-size:0.9375rem}
.detail-list dd{margin:0;text-align:right;font-size:0.9375rem}
.modal-inline-actions{display:flex;gap:8px;flex-wrap:wrap;padding-top:8px}
.roster-list{padding:0;list-style:none;display:grid;gap:10px}
.roster-list>li{display:flex;align-items:center;gap:12px;font-size:0.9375rem;padding:8px 0;border-bottom:1px solid var(--line)}
.roster-list small{margin-left:auto;color:var(--muted);font-size:0.875rem}

/* Diário */
.diary-layout{display:grid;grid-template-columns:minmax(0,1fr) 230px;gap:20px}
.diary-layout .panel-header{align-items:flex-start}
.diary-aside{display:flex;flex-direction:column;gap:16px}
.diary-aside .panel{padding:18px}
.diary-aside h3{font-size:1rem;margin-bottom:14px}
.diary-aside .field{font-size:0.9375rem}
.diary-aside textarea{font-size:0.9375rem}
.diary-aside .btn{margin-top:15px}
.legend-card p{display:flex;gap:8px;align-items:center;color:#8090a6;font-size:0.875rem;margin:10px 0}
.legend-card>small{display:block;font-size:0.875rem;color:#8291a5;line-height:1.7;margin-top:13px}
.control-label{font-size:0.875rem;color:#71819a;display:block;margin:12px 0 6px}
.attendance-table th,.attendance-table td{padding-left:16px;padding-right:16px}
.attendance-options{display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.attendance-option{position:relative;cursor:pointer}
.attendance-option input{position:absolute;opacity:0;width:100%;height:100%;margin:0;inset:0;cursor:pointer}
.attendance-option input:disabled{cursor:not-allowed}
.attendance-option span,.legend-card .letter{width:27px;height:27px;border-radius:7px;border:1px solid #dfe7f0;display:inline-flex;align-items:center;justify-content:center;background:#fff;color:#a0aec0;font-size:0.875rem;font-weight:650}
.attendance-option input:checked+span{background:#dff3eb;color:#33846b;border-color:#bde0d1}
.attendance-option.absent input:checked+span{background:#ffe9e9;color:#b75656;border-color:#f1c7c7}
.attendance-option.late input:checked+span{background:#fff1d9;color:#ac843c;border-color:#ecd5ae}
.attendance-option.justified input:checked+span{background:#e9efff;color:#5c7bbc;border-color:#c7d4f3}
.attendance-option input:focus-visible+span{outline:3px solid #84a7ef;outline-offset:2px}
.legend-card .letter.present{background:#e6f5ef;color:#428e76;border-color:#c8e7db}
.legend-card .letter.absent{background:#ffefef;color:#b45f61;border-color:#f5d7d7}
.legend-card .letter.late{background:#fff5e7;color:#ac884d;border-color:#eee0c8}
.legend-card .letter.justified{background:#eef2ff;color:#657fbc;border-color:#d5def7}
.diary-aside .info-strip{margin:0}
.diary-aside .info-strip p{font-size:0.875rem}
.grade-field{display:flex;align-items:center;gap:8px}
.grade-field input{width:75px;min-height:35px;border:1px solid #dce5f1;border-radius:7px;font-size:0.9375rem;padding:7px 10px;color:#30579c;outline:none;appearance:textfield}
.grade-field input::-webkit-outer-spin-button,.grade-field input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
.grade-field input[readonly]{background:#f6f8fc;color:#687d9b}
.grade-field>span{font-size:0.875rem;color:#9aa7b8}
.grades-table th{font-size:0.8125rem}
.grade-explainer{display:flex;gap:13px;align-items:flex-start;padding:19px 4px}
.soft-icon{background:#eaf0fa;color:#7991b5;width:35px;height:35px;border-radius:9px;display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}
.grade-explainer p{color:#8291a6;font-size:0.9375rem;line-height:1.8;max-width:820px}
.grade-explainer strong{color:#5e718c;font-size:0.9375rem;display:block;margin-bottom:3px}
.report-grade,.grade-pill{font-weight:650;color:#3b639e}
.grade-pill{display:inline-block;min-width:42px;padding:5px 8px;border-radius:6px;background:#edf3ff;text-align:center}

/* Ocorrências, agenda e comunicação */
.occurrence-list{padding:0 23px}
.occurrence-row{display:flex;align-items:flex-start;gap:15px;padding:20px 0;border-bottom:1px solid var(--line)}
.occurrence-row:last-child{border-bottom:0}
.occurrence-symbol{display:grid;place-items:center;width:39px;height:39px;border-radius:11px;background:#fcf2e9;color:#b39169;flex:0 0 auto}
.occurrence-copy{flex:1;min-width:0}
.occurrence-title{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:5px}
.occurrence-title h3,.occurrence-copy h3{font-size:1rem;letter-spacing:-.015em}
.occurrence-copy>p{font-size:0.875rem;color:#8b99ad;margin-top:5px}
.occurrence-copy .occurrence-preview{font-size:0.9375rem;color:#60738d;line-height:1.7;margin-top:8px}
.occurrence-row>.btn{margin-top:6px}
.internal-note{white-space:pre-wrap;background:#f8fafd;border:1px solid #e9eef6;border-radius:8px;padding:17px;font-size:0.9375rem;line-height:1.85;color:#607089}
.period-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:17px;margin:20px 0}
.period-card{padding:22px;position:relative}
.period-number{font-size:2.125rem;color:#d1dcee;font-weight:650;line-height:1;margin-bottom:16px}
.period-card .badge{font-size:0.8125rem;white-space:normal}
.period-card h2{margin:15px 0 7px;font-size:1.25rem}
.period-card>p{font-size:0.875rem;color:#8292a9}
.period-card dl{margin:20px 0}
.period-card dl>div{display:flex;justify-content:space-between;font-size:0.875rem;margin:9px 0}
.period-card dt{color:#8d9aae}
.period-card dd{margin:0;color:#59708f;font-weight:600}
.period-card .btn{font-size:0.8125rem;padding:8px}
.calendar-layout{display:grid;grid-template-columns:minmax(0,1fr) 275px;gap:20px}
.calendar-weekdays{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;padding:13px 0;background:#fafbfd;border-bottom:1px solid var(--line);font-size:0.8125rem;text-transform:uppercase;color:#8898b1}
.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:#e9eef5}
.calendar-day{min-height:96px;text-align:left;vertical-align:top;border:0;background:#fff;padding:11px 9px;display:flex;align-items:flex-start;flex-direction:column;font-size:0.9375rem;color:#6e7f98;gap:4px}
.calendar-day.blank{background:#fafbfd}
.calendar-day.today{background:#f2f6ff}
.calendar-day.today>span:first-child{display:grid;place-items:center;min-width:22px;height:22px;background:var(--primary);border-radius:6px;color:white;font-weight:600}
.calendar-day:hover:not(.blank){background:#f6f8fd}
.calendar-event{display:block;width:100%;font-size:0.8125rem;border-radius:4px;padding:3px 5px;color:#5475ac;background:#eaf1ff;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.notice-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:19px}
.notice-card{padding:22px;display:flex;flex-direction:column;gap:14px}
.notice-card-top{display:flex;justify-content:space-between;align-items:center;gap:10px}
.notice-card-top>small,.notice-card-top>span{font-size:0.8125rem;color:#8496ae}
.notice-card h2{font-size:1.25rem;line-height:1.45}
.notice-card>p{color:#7c8ca3;font-size:0.9375rem;line-height:1.8;flex:1;white-space:pre-line}
.notice-card>footer{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:14px;font-size:0.875rem;color:#8c9ab0}
.notice-card footer .btn{font-size:0.875rem}

/* Relatórios, documentos e privacidade */
.report-table{min-width:680px}
.report-table th,.report-table td{text-align:center}
.report-table th:first-child,.report-table td:first-child{text-align:left}
.report-table td:first-child strong{font-size:0.9375rem}
.report-table td .muted{display:block;font-size:0.8125rem;margin-top:4px}
.report-table tfoot th{background:#f7f9fd;font-size:0.875rem;letter-spacing:0}
.report-grade{font-size:1rem}
.document-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.document-card{padding:26px}
.document-icon{width:49px;height:54px;border-radius:12px;background:#edf3ff;color:#7390c2;display:grid;place-items:center;margin-bottom:19px}
.document-icon .icon{width:25px;height:25px}
.document-card h2{font-size:1.25rem;margin-bottom:10px}
.document-card p{font-size:0.9375rem;line-height:1.8;color:#7d8fa9;margin-bottom:20px}
.document-card .btn{font-size:0.9375rem}
.document-note{font-size:0.875rem;color:#a18753;line-height:1.7;margin:15px 0 0}
.document-paper{background:white;border:1px solid #e6eaf2;padding:38px;position:relative;min-height:550px;overflow:hidden;color:#293b54}
.document-paper>header{display:flex;gap:15px;align-items:center;justify-content:center;border-bottom:2px solid #324f88;padding-bottom:20px;margin-bottom:35px;text-align:left}
.document-paper>header img{width:64px;height:64px}
.document-paper>header h2{font-size:1.25rem}
.document-paper>header p{font-size:0.9375rem;line-height:1.6;color:#738198}
.document-paper>h2{font-size:1.4375rem;text-align:center;letter-spacing:.04em;margin:20px 0 35px}
.document-watermark{text-align:center;font-size:0.875rem;font-weight:700;letter-spacing:.12em;padding:6px 10px;background:#fff2db;color:#9a782e;border:1px solid #ebd7b1;margin-bottom:25px}
.declaration-text{font-size:1rem;line-height:2.1;text-align:justify;white-space:pre-line}
.document-paper>p{margin:22px 0;font-size:0.9375rem;line-height:1.9}
.signature-line{text-align:center;margin:85px auto 20px;padding-top:10px;border-top:1px solid #8798b2;max-width:330px;font-size:0.9375rem}
.document-paper footer{margin-top:30px;font-size:0.8125rem;color:#98a4b7;text-align:center}
.prose-panel{padding:24px 27px;margin-top:20px}
.prose-panel h2{font-size:1.125rem;margin-bottom:12px}
.prose-panel h3{font-size:1rem;margin:19px 0 8px}
.prose-panel p,.prose p,.privacy-text p{font-size:0.9375rem;line-height:1.9;color:#6e809a;margin:9px 0}
.prose-preserve{white-space:pre-wrap;font-size:1rem;line-height:1.9;color:#526881}
.two-column{display:grid;grid-template-columns:1fr 1fr;gap:23px}
.privacy-intro{padding:26px}
.privacy-intro h2{font-size:1.375rem;margin:12px 0}
.privacy-intro p{font-size:0.9375rem;line-height:1.9;color:#7b8fa8;margin-bottom:13px}
.privacy-contact{margin-top:17px;padding:14px;background:#eff4fb;border-radius:8px;color:#587497;font-size:0.9375rem;overflow-wrap:anywhere}
.request-list{padding:0 23px}
.request-row{padding:19px 0;display:flex;gap:14px;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}
.request-row:last-child{border-bottom:0}
.request-row h3{font-size:0.9375rem}
.request-row p{font-size:0.875rem;color:#8595ad;margin-top:5px}
.request-row .badge{margin:7px 0 0}
.security-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:17px;margin:20px 0}
.security-card{padding:23px}
.security-card>.icon,.security-card>span>.icon{color:#5d84b9;width:23px;height:23px;margin-bottom:14px}
.security-card h3{font-size:1rem;margin-bottom:8px}
.security-card p{font-size:0.9375rem;color:#7e8fa7;line-height:1.85}
.settings-panel{max-width:880px;padding:28px}
.settings-brand{display:flex;align-items:center;gap:19px;padding-bottom:27px;border-bottom:1px solid var(--line)}
.settings-brand img{width:76px;height:76px}
.settings-brand h2{font-size:1.625rem}
.settings-brand p{font-size:0.9375rem;color:#8c9bb1;margin:7px 0}
.settings-row{display:flex;justify-content:space-between;align-items:center;gap:22px;padding:22px 0;border-bottom:1px solid var(--line)}
.settings-row h3{font-size:1rem;letter-spacing:-.01em}
.settings-row p{font-size:0.9375rem;color:#8a9bb1;margin-top:6px}
.settings-row>strong{font-size:1.75rem;font-weight:550;color:#2f5590}
.settings-row>span{font-size:0.9375rem;color:#6f849e;overflow-wrap:anywhere;max-width:260px}
.settings-panel>footer{padding-top:22px;text-align:right}

/* Modais e toasts: feedback contextual, foco e estado ocupado. */
.modal{border:1px solid #d9e2ef;border-radius:17px;padding:0;max-width:min(570px,calc(100vw - 32px));width:570px;max-height:calc(100dvh - 48px);box-shadow:0 20px 90px #091b3e35;color:var(--ink);overflow:auto;overscroll-behavior:contain}
.modal::backdrop{background:#14274785;backdrop-filter:blur(4px)}
.modal-wide{width:880px;max-width:min(880px,calc(100vw - 32px))}
.modal form{display:flex;flex-direction:column}
.modal-header{padding:23px 26px 20px;display:flex;justify-content:space-between;align-items:flex-start;gap:15px;border-bottom:1px solid var(--line);position:sticky;top:0;background:#fff;z-index:2}
.modal-header h2{font-size:1.4375rem}
.modal-header p{font-size:0.9375rem;line-height:1.8;color:#7d8fa9;margin-top:5px;max-width:660px}
.modal-header .icon-button{margin-top:-4px;margin-right:-5px}
.modal-body{padding:25px 26px;display:flex;flex-direction:column;gap:18px;background:white}
.modal-body>.info-strip{margin:0}
.modal-body>.field{margin:0}
.modal-description{font-size:1rem;line-height:1.9;color:#74849b}
.modal-footer{padding:16px 26px;display:flex;justify-content:flex-end;align-items:center;gap:10px;border-top:1px solid var(--line);background:#fafbfd;position:sticky;bottom:0;z-index:2}
.modal-footer .btn{min-width:90px}
.profile-summary{text-align:center;padding:12px 0}
.profile-summary .avatar{margin-bottom:15px}
.profile-summary h3{font-size:1.5rem}
.profile-summary p{font-size:0.9375rem;color:#8393aa;margin:5px 0 12px;overflow-wrap:anywhere}
.profile-actions{display:flex;flex-direction:column;gap:10px}
.quick-nav-list{display:flex;flex-direction:column;gap:4px;max-height:48vh;overflow:auto}
.quick-nav-list button{display:flex;align-items:center;gap:13px;background:#fff;border:1px solid transparent;border-radius:8px;text-align:left;padding:11px 12px;font-size:0.9375rem;color:#5c728e}
.quick-nav-list button>.icon:last-child{margin-left:auto;width:15px;height:15px;color:#a1b1c7}
.quick-nav-list button:hover{background:#f1f5fd;border-color:#e0e9f9;color:#29519a}
.toast-region{position:fixed;bottom:23px;right:24px;z-index:1000;display:flex;flex-direction:column;gap:10px;width:min(370px,calc(100vw - 32px));pointer-events:none}
.toast{display:flex;align-items:flex-start;gap:11px;background:#fff;border:1px solid #dbe7e0;box-shadow:0 6px 26px #1a38561c;border-radius:11px;padding:15px 12px 15px 15px;pointer-events:auto;animation:toast-in .2s ease-out;position:relative;overflow:hidden}
.toast:before{content:'';position:absolute;top:0;bottom:0;left:0;width:3px;background:#4a9d86}
.toast-symbol{background:#eaf5ef;color:#4c947b;border-radius:50%;width:25px;height:25px;display:grid;place-items:center;flex:0 0 auto}
.toast-symbol .icon{width:15px;height:15px}
.toast>div{flex:1;min-width:0}
.toast strong{font-size:0.9375rem;display:block;padding-top:3px;letter-spacing:-.01em;color:#3a516a}
.toast p{font-size:0.875rem;color:#8697ac;line-height:1.7;margin-top:3px}
.toast>.icon-button{width:25px;height:25px;padding:4px;color:#a2b0c1}
.toast .icon-button .icon{width:14px;height:14px}
.toast-error{border-color:#ecd7d8}
.toast-error:before{background:#c46669}
.toast-error .toast-symbol{background:#fdeeee;color:#bc676b}
.toast-info:before{background:#6489c5}
.toast-info .toast-symbol{background:#edf3fc;color:#6c8dc0}

/* Acesso */
.login-page{min-height:100dvh;display:grid;grid-template-columns:46% 54%;background:#fff}
.login-brand{position:relative;overflow:hidden;background:linear-gradient(150deg,#112545 20%,#1b3d6e 75%,#264e83);color:white;padding:44px 56px;display:flex;flex-direction:column;min-height:100dvh}
.login-brand-top{display:flex;gap:16px;align-items:center;position:relative;z-index:1}
.login-logo{width:67px;height:67px;background:white;border-radius:50%;padding:4px;display:grid;place-items:center}
.login-logo img{width:60px;height:60px;border-radius:50%}
.login-brand-top strong{display:block;font-size:1.9375rem;font-weight:550;letter-spacing:-.035em;line-height:1.2}
.login-brand-top small{display:block;font-size:0.8125rem;letter-spacing:.16em;color:#b1c5e3;margin-top:7px}
.login-brand-copy{position:relative;z-index:1;margin:auto 0;padding:58px 0}
.login-kicker{display:flex;gap:8px;align-items:center;font-size:0.8125rem;font-weight:600;letter-spacing:.15em;color:#b0c5e4}
.login-kicker i{width:5px;height:5px;border-radius:50%;background:#8ec5b0}
.login-brand h1{font-size:3.3125rem;line-height:1.16;font-weight:500;margin:25px 0 20px;letter-spacing:-.045em}
.login-brand h1 em{color:#a8c4f0;font-style:normal}
.login-brand-copy>p{font-size:1rem;line-height:1.9;color:#b3c5df;max-width:335px}
.login-feature-list{display:flex;flex-direction:column;gap:15px;margin-top:40px;color:#b2c5e1;font-size:0.9375rem}
.login-feature-list span{display:flex;align-items:center;gap:10px}
.login-feature-list .icon{width:16px;height:16px;color:#829fc8}
.login-brand>footer{display:flex;justify-content:space-between;color:#7895be;font-size:0.8125rem;letter-spacing:.1em;position:relative;z-index:1}
.login-brand>footer span{letter-spacing:.02em}
.login-orbit{position:absolute;border:1px solid #88a7d419;border-radius:50%;pointer-events:none}
.orbit-one{height:660px;width:660px;bottom:-295px;right:-205px;box-shadow:0 0 0 50px #84a9dc06,0 0 0 100px #84a9dc04}
.orbit-two{height:190px;width:190px;top:125px;right:-90px;border-color:#729bd41b}
.login-main{display:flex;align-items:center;justify-content:center;padding:55px 55px 30px}
.login-form-wrap{width:100%;max-width:490px}
.login-form-wrap>.eyebrow{font-size:0.8125rem;color:#8e9db2;letter-spacing:.16em;margin-bottom:14px}
.login-form-wrap>h2{font-size:2rem;letter-spacing:-.04em;margin-bottom:11px;font-weight:650}
.login-description{font-size:0.9375rem;color:#8a99ae;line-height:1.8;margin-bottom:29px}
.demo-entry-note{display:flex;align-items:flex-start;gap:11px;background:#f4f7fc;border:1px solid #e8edf6;border-radius:10px;padding:15px 17px;margin-bottom:23px;color:#7d90ac}
.demo-entry-note>.icon{width:17px;height:17px;color:#8aa0c0;margin-top:2px}
.demo-entry-note p{font-size:0.875rem;line-height:1.8}
.demo-entry-note strong{display:block;color:#506888;font-size:0.9375rem;margin-bottom:3px}
.role-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.role-tile{display:flex;align-items:flex-start;gap:10px;text-align:left;padding:16px 13px 17px;border:1px solid #e4eaf3;background:#fff;border-radius:10px;transition:background .15s,border-color .15s,transform .15s;min-height:101px}
.role-tile:hover{background:#f7faff;border-color:#b5c9ed;transform:translateY(-2px)}
.role-symbol{width:29px;height:29px;border-radius:8px;background:#f0f4fb;display:grid;place-items:center;color:#7691bb;flex:0 0 auto}
.role-symbol .icon{width:16px;height:16px}
.role-tile>span:nth-child(2){flex:1}
.role-tile strong{display:block;font-size:0.9375rem;letter-spacing:-.02em;color:#3d5678;margin-top:3px}
.role-tile small{display:block;font-size:0.8125rem;line-height:1.65;color:#94a2b5;margin-top:7px}
.role-tile>.icon{width:12px;height:12px;color:#a9b8cf;margin-top:7px}
.demo-footnote{font-size:0.8125rem;color:#9aabbe;line-height:1.85;margin-top:21px}
.login-form-footer{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:41px;padding-top:20px;border-top:1px solid #edf1f6}
.login-form-footer .text-link{font-size:0.8125rem;color:#738aa9;font-weight:500}
.login-form-footer>span{font-size:0.8125rem;color:#a5b2c4}
.login-form{display:flex;flex-direction:column;gap:19px}
.login-form .field{font-size:0.9375rem}
.login-form input{font-size:0.9375rem;min-height:45px}
.password-field{position:relative}
.password-toggle{position:absolute;right:6px;bottom:5px;width:35px;height:35px;color:#93a5bd}
.password-field input{padding-right:46px}
.login-link-row{text-align:right;margin-top:-8px}
.login-link-row .text-link{font-size:0.875rem}
.captcha-widget{min-height:66px}
.login-submit{height:45px;margin-top:0;font-size:0.9375rem;justify-content:space-between;padding-left:18px;padding-right:18px}
.activation-link{background:none;border:0;padding:16px 0 0;text-align:center;width:100%;font-size:0.875rem;color:#6384b7}
.login-privacy{display:flex;align-items:center;justify-content:center;gap:7px;font-size:0.8125rem;line-height:1.6;color:#9cacbf;margin-top:25px}
.login-privacy .icon{width:12px;height:12px}
.mfa-page{min-height:100dvh;padding:40px 20px;display:flex;align-items:center;justify-content:center;background:#edf2fa}
.mfa-card{width:100%;max-width:460px;background:white;border:1px solid #dfe7f3;border-radius:18px;padding:34px;text-align:center;box-shadow:0 15px 60px #1a365d0c}
.mfa-shield{margin:0 auto 19px;width:58px;height:58px;background:#edf3ff;color:#4268ac;border-radius:16px;display:grid;place-items:center}
.mfa-shield .icon{width:29px;height:29px}
.mfa-card h1{font-size:1.75rem;margin:10px 0}
.mfa-card>p{font-size:0.9375rem;color:#8b9cb3;line-height:1.9;margin:12px 0 23px}
.mfa-card>p.mfa-help{font-size:0.875rem;margin:24px 0 15px}
.mfa-card form{display:flex;flex-direction:column;gap:20px;text-align:left}
.mfa-card input[name=code]{font-size:1.5625rem;letter-spacing:.4em;text-align:center;font-variant-numeric:tabular-nums}
.mfa-enroll{text-align:center;margin:20px 0}
.mfa-enroll img{max-width:100%;object-fit:contain}
.mfa-enroll label{text-align:left;margin-top:14px}
.mfa-enroll>small{display:block;font-size:0.8125rem;color:#a08552;line-height:1.8;margin:10px 0}
.mfa-enroll input{font-family:monospace;font-size:0.9375rem}

@keyframes spin{to{transform:rotate(360deg)}
}
@keyframes toast-in{from{opacity:0;transform:translateY(10px)}
to{opacity:1;transform:translateY(0)}
}

@media(min-width:1600px){.main-shell #main-content{padding-left:45px;padding-right:45px}
.topbar,.demo-banner,.session-bar{padding-left:45px;padding-right:45px}
.overview-hero{padding:36px 42px}
.hero-copy h2{font-size:2.125rem}
.hero-copy p{font-size:0.9375rem}
.stat-card{padding:22px}
.class-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
.login-brand{padding:55px 80px}
.login-brand h1{font-size:4.125rem}
.login-main{padding:65px}
.login-form-wrap{max-width:530px}
.role-tile{min-height:115px}
}

@media(max-width:1200px){.sidebar{width:268px}
.main-shell{margin-left:268px}
.brand{margin-left:17px;margin-right:17px}
.brand strong{font-size:1.375rem}
.brand small{font-size:0.8125rem}
.topbar{padding:0 24px}
.main-shell #main-content{padding:24px 24px 0}
.demo-banner,.session-bar{padding-left:24px;padding-right:24px}
.search-trigger span{display:none}
.search-trigger kbd{margin-left:0}
.hero-copy h2{font-size:1.75rem}
.hero-period{min-width:160px}
.overview-hero{padding:27px}
.stats-grid{gap:12px}
.stat-card{padding:14px}
.stat-card>div>span:first-child{font-size:0.8125rem}
.stat-card>strong{font-size:1.8125rem}
.stat-icon{width:29px;height:29px}
.dashboard-columns{gap:17px;grid-template-columns:minmax(0,1.25fr) minmax(240px,1fr)}
.class-preview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.class-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.diary-layout{grid-template-columns:minmax(0,1fr)}
.diary-aside{display:grid;grid-template-columns:1.4fr 1fr}
.diary-aside>.info-strip{grid-column:1/-1}
.period-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.notice-grid,.security-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.calendar-layout{grid-template-columns:minmax(0,1fr)}
.calendar-layout>.agenda-panel{margin-top:0}
.calendar-layout .agenda-list{display:grid;grid-template-columns:1fr 1fr;gap:0 18px}
.login-brand{padding:38px 36px}
.login-brand h1{font-size:2.9375rem}
.login-main{padding:40px 38px}
.role-tile{gap:8px;padding:14px 10px}
.role-tile>.icon{display:none}
.role-symbol{width:26px;height:26px}
.role-tile strong{font-size:0.9375rem}
.role-tile small{font-size:0.8125rem}
.login-form-wrap>h2{font-size:1.8125rem}
}

@media(max-width:950px){.sidebar{width:256px}
.main-shell{margin-left:256px}
.brand strong{font-size:1.25rem}
.brand small{font-size:0.8125rem}
.logo-wrap{width:42px;height:42px}
.logo-wrap img{width:36px;height:36px}
.workspace-label{margin-left:15px;margin-right:15px;font-size:0.875rem}
.nav-link{font-size:0.875rem;padding-left:10px;gap:9px}
.sidebar-protection{font-size:0.8125rem}
.topbar .breadcrumb{font-size:0.875rem}
.topbar-actions{gap:9px}
.search-trigger kbd{display:none}
.page-heading{align-items:flex-start;flex-direction:column;gap:13px}
h1{font-size:1.75rem}
.page-heading .date-chip{position:absolute;right:24px;top:153px;font-size:0.8125rem}
.page-heading:has(.date-chip)>div:first-child{padding-right:130px}
.hero-period{min-width:120px}
.hero-copy h2{font-size:1.5625rem}
.hero-copy p{font-size:0.875rem;max-width:310px}
.hero-period strong{font-size:1rem}
.overview-hero{padding:25px 24px;gap:10px}
.stats-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px}
.stat-card{padding:17px}
.stat-card>div>span:first-child{font-size:0.875rem}
.dashboard-columns{grid-template-columns:minmax(0,1fr)}
.dashboard-columns .agenda-list{display:grid;grid-template-columns:1fr 1fr;gap:0 20px}
.dashboard-columns .agenda-item:nth-last-child(2){border-bottom:0}
.two-column{grid-template-columns:1fr}
.filter-bar{gap:12px;padding:16px}
.filter-bar>.field{min-width:145px}
.table-toolbar{padding:16px}
.login-brand{padding:35px 27px}
.login-brand h1{font-size:2.5625rem}
.login-brand-top{gap:11px}
.login-logo{width:51px;height:51px}
.login-logo img{width:46px;height:46px}
.login-brand-top strong{font-size:1.75rem}
.login-brand-top small{font-size:0.8125rem}
.login-main{padding:35px 28px}
.role-grid{grid-template-columns:1fr}
.role-tile{min-height:72px;padding:13px;align-items:center}
.role-tile strong{font-size:0.9375rem;margin:0}
.role-tile small{font-size:0.8125rem;margin-top:4px}
.role-tile>.icon{display:block}
.role-symbol{width:32px;height:32px}
.login-form-wrap>h2{font-size:1.75rem}
.login-form-footer{margin-top:26px}
.login-brand>footer{flex-direction:column;gap:8px}
}

@media(max-width:900px){.sidebar{width:284px;transform:translateX(-100%);transition:transform .2s}
.sidebar-open .sidebar{transform:translateX(0)}
.sidebar-open .sidebar-overlay{display:block;position:fixed;inset:0;width:100%;height:100%;background:#182b4860;border:0;z-index:29;backdrop-filter:blur(2px)}
.main-shell{margin-left:0}
.mobile-menu{display:inline-flex!important}
.topbar{height:63px;padding:0 20px}
.topbar-left{gap:9px}
.topbar-actions{gap:12px}
.topbar-divider,.search-trigger{display:none}
.breadcrumb{font-size:0.875rem}
.breadcrumb>span{padding:0 8px}
.topbar .icon-button{width:29px}
.demo-banner{padding:8px 20px;font-size:0.8125rem;gap:10px}
.demo-banner strong{display:block}
.demo-banner>div{gap:9px}
.demo-banner button{font-size:0.8125rem}
.demo-banner button .icon{display:none}
.session-bar{padding:8px 20px;font-size:0.8125rem}
.main-shell #main-content{padding:24px 20px 0}
.page-heading{margin-bottom:21px}
.page-heading .date-chip{top:155px;right:20px;padding:7px 8px;font-size:0.8125rem}
.page-heading .date-chip .icon{width:12px;height:12px}
.page-heading p{font-size:0.9375rem;max-width:550px}
.page-heading .eyebrow{font-size:0.8125rem}
.page-heading:has(.date-chip)>div:first-child{padding-right:100px}
.overview-hero{padding:27px 23px;min-height:221px}
.hero-copy h2{font-size:1.75rem}
.hero-copy p{font-size:0.875rem}
.hero-period{min-width:132px}
.hero-period strong{font-size:1.125rem}
.hero-calendar{width:44px;height:44px}
.hero-calendar .icon{width:24px;height:24px}
.brand{margin:27px 20px 20px}
.brand strong{font-size:1.5rem}
.brand small{font-size:0.8125rem}
.logo-wrap{width:47px;height:47px}
.logo-wrap img{width:42px;height:42px}
.nav-link{font-size:0.9375rem;min-height:40px;padding-left:14px}
.sidebar-protection{font-size:0.8125rem}
.sidebar-profile strong{font-size:0.9375rem}
.class-card{padding:20px}
.app-footer{font-size:0.8125rem;gap:10px}
.app-footer>span:last-child{font-size:0.8125rem;white-space:nowrap}
.login-page{display:block}
.login-brand{min-height:unset;padding:26px 28px}
.login-brand-top{gap:12px}
.login-brand-top strong{font-size:1.8125rem}
.login-brand-top small{font-size:0.8125rem}
.login-logo{width:53px;height:53px}
.login-logo img{width:48px;height:48px}
.login-brand-copy{padding:24px 0 2px}
.login-brand-copy h1{font-size:2rem;margin:10px 0;line-height:1.25}
.login-brand-copy h1 br{display:none}
.login-brand-copy h1 br:after{content:' '}
.login-brand-copy h1 em{display:block}
.login-kicker{font-size:0.8125rem}
.login-brand-copy>p,.login-feature-list,.login-brand>footer{display:none}
.login-main{padding:34px 28px;align-items:flex-start}
.login-form-wrap{max-width:510px}
.login-form-wrap>h2{font-size:1.75rem}
.login-description{font-size:0.9375rem;margin-bottom:22px}
.role-grid{grid-template-columns:1fr 1fr;gap:11px}
.role-tile{align-items:flex-start;min-height:103px;padding:14px 12px}
.role-tile strong{font-size:0.9375rem;margin:1px 0 6px}
.role-tile small{font-size:0.8125rem}
.role-tile>.icon{display:none}
.role-symbol{width:25px;height:25px;flex-shrink:0}
.role-symbol .icon{width:15px;height:15px}
.login-form-footer{margin-top:28px}
.login-page #main-content{min-height:unset}
}

@media(max-width:480px){h1{font-size:1.625rem}
.topbar{padding:0 14px}
.topbar-left{gap:5px}
.breadcrumb{font-size:0.8125rem}
.breadcrumb>span{padding:0 6px}
.topbar-actions{gap:5px}
.topbar-avatar{width:29px;height:29px;font-size:0.875rem}
.demo-banner{padding:9px 16px}
.main-shell #main-content{padding:23px 16px 0}
.page-heading .date-chip{top:158px;right:16px;font-size:0.8125rem;padding:6px}
.page-heading .date-chip .icon{width:11px;height:11px}
.page-heading:has(.date-chip)>div:first-child{padding-right:80px}
.page-heading p{font-size:0.875rem}
.page-actions{gap:7px}
.page-actions .btn{font-size:0.875rem;min-height:36px;padding:8px 10px}
.hero-period{display:none}
.overview-hero{padding:25px 23px;min-height:225px}
.hero-copy h2{font-size:1.875rem;line-height:1.3}
.hero-copy p{font-size:0.875rem;margin-bottom:18px;max-width:300px}
.hero-kicker{font-size:0.8125rem}
.hero-copy .btn{font-size:0.8125rem;padding:8px 12px}
.stats-grid{gap:11px;margin-bottom:20px}
.stat-card{padding:14px}
.stat-icon{width:27px;height:27px;border-radius:8px}
.stat-card>div>span:first-child{font-size:0.8125rem}
.stat-card>strong{font-size:1.8125rem;margin-top:9px}
.stat-card>small{font-size:0.8125rem}
.panel-header{padding:18px}
.panel-header h2{font-size:1rem}
.panel-header .text-button{font-size:0.8125rem}
.attention-list{padding:0 18px}
.attention-list strong{font-size:0.875rem}
.attention-list p{font-size:0.8125rem}
.attention-list .badge{font-size:0.8125rem;padding:4px 6px}
.quick-actions{padding:14px 17px 17px}
.quick-actions button{font-size:0.8125rem}
.dashboard-columns .agenda-list,.calendar-layout .agenda-list{display:block}
.agenda-list{padding:0 18px}
.dashboard-columns .agenda-item:nth-last-child(2){border-bottom:1px solid #edf0f5}
.class-preview-grid{gap:10px}
.class-preview{padding:13px;gap:8px}
.class-preview .class-symbol{width:31px;height:31px}
.class-preview strong{font-size:0.875rem}
.class-preview small,.class-preview p{font-size:0.8125rem}
.class-preview>.icon{display:none}
.notice-row{padding:14px;gap:10px}
.notice-row h3{font-size:0.9375rem}
.notice-row p{font-size:0.8125rem}
.notice-row>small{font-size:0.8125rem}
.class-grid,.period-grid,.notice-grid,.security-grid,.document-grid{grid-template-columns:1fr}
.class-card{padding:24px}
.class-card h2{font-size:1.5625rem}
.class-card>footer .btn{font-size:0.9375rem}
.filter-bar{padding:14px;gap:12px}
.filter-bar>.field{min-width:calc(50% - 8px)}
.filter-bar>.field:has(input[type=date]){max-width:unset}
.field{font-size:0.9375rem}
.field input,.field select{font-size:0.9375rem;min-height:39px}
.table-toolbar{padding:14px}
.table-toolbar .search-field{min-width:100%}
.table-toolbar .input-search{min-width:140px}
.table-scroll th,.table-scroll td{padding-left:14px;padding-right:14px}
.table-footer{padding:12px 14px;font-size:0.8125rem;flex-wrap:wrap}
.table-footer>span{max-width:100%}
.diary-aside{grid-template-columns:1fr}
.diary-aside .panel{padding:19px}
.diary-aside .field textarea{min-height:95px}
.diary-layout .panel-header{flex-direction:column}
.diary-layout .panel-header .btn{font-size:0.875rem}
.title-with-badge{gap:8px}
.title-with-badge h2{font-size:1rem}
.grades-table .grade-field input{width:62px}
.occurrence-list{padding:0 17px}
.occurrence-row{gap:10px;flex-wrap:wrap}
.occurrence-symbol{width:31px;height:31px;border-radius:8px}
.occurrence-symbol .icon{width:17px;height:17px}
.occurrence-copy{flex-basis:75%}
.occurrence-row>.btn{margin-left:41px;font-size:0.8125rem}
.occurrence-title{gap:7px}
.occurrence-title h3{font-size:0.9375rem}
.calendar-day{min-height:76px;padding:8px 5px;font-size:0.875rem}
.calendar-event{font-size:0.8125rem;padding:3px}
.calendar-weekdays{font-size:0.8125rem}
.calendar-panel .panel-header{padding:16px}
.document-paper{padding:24px 17px;min-height:500px}
.document-paper>header{gap:10px;margin-bottom:23px}
.document-paper>header img{width:48px;height:48px}
.document-paper>header h2{font-size:1rem}
.document-paper>header p{font-size:0.8125rem}
.document-paper>h2{font-size:1.125rem}
.declaration-text{font-size:0.9375rem}
.prose-panel{padding:22px}
.settings-panel{padding:20px}
.settings-brand{gap:14px}
.settings-brand h2{font-size:1.375rem}
.settings-brand img{width:58px;height:58px}
.settings-brand p{font-size:0.875rem}
.settings-row{align-items:flex-start;gap:15px}
.settings-row h3{font-size:0.9375rem}
.settings-row p{font-size:0.875rem}
.settings-row>span{max-width:40%;font-size:0.875rem}
.settings-row>strong{font-size:1.625rem}
.app-footer{align-items:flex-start;flex-direction:column;margin-top:25px}
.modal{border-radius:13px;max-height:calc(100dvh - 28px);max-width:calc(100vw - 24px)}
.modal-header{padding:20px}
.modal-header h2{font-size:1.25rem}
.modal-header p{font-size:0.875rem}
.modal-body{padding:21px 20px;gap:16px}
.modal-footer{padding:15px 20px}
.modal-footer .btn{font-size:0.9375rem;min-width:78px}
.form-grid{grid-template-columns:1fr;gap:16px}
.detail-summary h3{font-size:1.25rem}
.detail-list>div{font-size:0.875rem}
.modal-inline-actions .btn{font-size:0.875rem}
.toast-region{right:16px;bottom:16px}
.toast{padding:13px 10px 13px 14px}
.toast strong{font-size:0.9375rem}
.toast p{font-size:0.875rem}
.login-brand{padding:25px 25px 27px}
.login-brand-copy{padding-top:23px}
.login-brand-copy h1{font-size:2rem}
.login-main{padding:29px 23px}
.login-form-wrap>h2{font-size:1.625rem}
.role-grid{gap:10px}
.role-tile{display:block;min-height:128px;padding:14px}
.role-symbol{margin-bottom:9px;width:28px;height:28px}
.role-tile strong{font-size:0.9375rem}
.role-tile small{font-size:0.8125rem;line-height:1.6}
.demo-entry-note{padding:14px}
.demo-entry-note p{font-size:0.8125rem}
.demo-entry-note strong{font-size:0.875rem}
.demo-footnote{font-size:0.8125rem}
.login-form-footer{gap:10px}
.login-form-footer .text-link{font-size:0.8125rem}
.login-form-footer>span{font-size:0.8125rem}
.mfa-card{padding:28px 24px}
.mfa-card h1{font-size:1.625rem}
}

@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}

@media print{@page{size:A4;margin:16mm}
body{background:#fff;color:#000}
body *{visibility:hidden!important}
body:has(dialog[open] .print-area) dialog[open],body:has(dialog[open] .print-area) dialog[open] *{visibility:hidden!important}
.print-area,.print-area *{visibility:visible!important}
.print-area{position:absolute;left:0;top:0;width:100%;padding:0!important;border:0!important;box-shadow:none!important;overflow:visible!important}
.sidebar,.topbar,.demo-banner,.session-bar,.page-actions,.filter-bar,.app-footer,.toast-region,.modal-header,.modal-footer,.info-strip{display:none!important}
.modal:has(.print-area){position:absolute;inset:0;margin:0;padding:0;max-width:none;width:100%;max-height:none;height:auto;overflow:visible;border:0;box-shadow:none;background:white}
.modal:has(.print-area)::backdrop{background:none}
.modal:has(.print-area) .modal-body{padding:0;display:block;overflow:visible}
.report-table{min-width:0;font-size:9px}
.report-table th,.report-table td{padding:8px 6px}
.document-paper{min-height:0}
.document-watermark{print-color-adjust:exact}
.main-shell,#main-content,#page-content{margin:0!important;padding:0!important}
.table-scroll{overflow:visible!important}
.panel{border:0!important;box-shadow:none!important}
.panel-header{border:0}
tr{break-inside:avoid}
thead{display:table-header-group}
.btn,button{display:none!important}
}

/* Elementos semânticos mantêm o desenho também quando são botões/fieldset. */
button.agenda-item{width:100%;background:transparent;border:0;border-bottom:1px solid #edf0f5;text-align:left}

button.agenda-item:hover{background:#fafcff}
button.agenda-item:last-child{border-bottom:0}

.agenda-item>span:nth-child(2){display:flex;flex-direction:column;gap:5px;min-width:0;flex:1}

.agenda-item>span:nth-child(2)>strong{display:block;font-size:0.9375rem;line-height:1.5;white-space:normal}

.agenda-item>span:nth-child(2)>small{display:flex;align-items:center;gap:4px;font-size:0.8125rem;color:#8b99ac}

.agenda-item small .icon{width:11px;height:11px}

.attendance-options{border:0;padding:0;margin:0;min-width:0}
.attendance-table td:last-child{text-align:right}

.content-card>p{font-size:0.9375rem;color:#8293aa;line-height:1.8;margin:8px 0 13px}
.content-card>h2{font-size:1.125rem;margin-top:13px}

.content-card textarea{width:100%;resize:vertical;min-height:135px;border:1px solid #e0e8f3;border-radius:7px;padding:11px;font-size:0.9375rem;color:#627c9e;line-height:1.8;outline:none}

.content-card>small{display:block;margin-top:9px;color:#90a0b4;font-size:0.8125rem;line-height:1.8}

.class-preview-grid{padding:16px}
.class-preview>span:not(.class-symbol){font-size:0.8125rem;color:#91a0b5;white-space:nowrap;margin-left:auto}

.class-preview-grid .class-preview{box-shadow:none}
.attention-icon.coral{background:#fdf0ec;color:#bc8579}

button.notice-row{width:100%;text-align:left}
.notice-row>span:nth-child(2){display:flex;flex:1;flex-direction:column;gap:5px}
.notice-row>span>small{font-size:0.8125rem;color:#91a0b5}
.notice-row>.icon{width:14px;height:14px;color:#a1b0c3}
.notice-stack{padding:16px}

.quick-actions{grid-template-columns:repeat(3,minmax(0,1fr))}

@media(max-width:1200px){.class-preview-grid .class-preview>span:not(.class-symbol){font-size:0.8125rem}
.class-preview-grid{padding:14px}
}

@media(max-width:480px){.class-preview-grid{padding:11px;grid-template-columns:1fr}
.class-preview>span:not(.class-symbol){font-size:0.8125rem}
.quick-actions{gap:6px;padding:14px}
.quick-actions button{gap:4px;font-size:0.8125rem}
.quick-actions .icon{width:12px;height:12px}
.agenda-item>span:nth-child(2)>strong{font-size:0.9375rem}
.agenda-item>span:nth-child(2)>small{font-size:0.8125rem}
}


/* v0.1.1 — reading scale, native controls and spacious data presentation. */
:root { --text-body:1rem; --text-small:.875rem; --text-label:.9375rem; --text-name:1.0625rem; }
body { font-size:var(--text-body); line-height:1.6; }
h1 { font-size:2rem; }
h2 { font-size:1.375rem; }
h3 { font-size:1.125rem; }
button, input, select, textarea { font-family:var(--font); }
.btn { font-size:var(--text-label); min-height:44px; padding:11px 16px; white-space:normal; }
.btn-small { font-size:var(--text-small); min-height:38px; }
.icon-button { min-width:40px; min-height:40px; }
.field { font-size:var(--text-label); }
.field input, .field select, .field textarea, .input-search input, .grade-field input, .content-card textarea {
  font-size:var(--text-body); min-height:46px; line-height:1.5;
}
.field small, .field-note, .subtle-caption, .table-footer { font-size:var(--text-small); color:var(--muted); }
.nav-link { min-height:46px; font-size:.9375rem; line-height:1.4; }
.brand strong { font-size:1.625rem; }
.brand small { font-size:.625rem; white-space:normal; line-height:1.5; }
.nav-section { font-size:.6875rem; margin-top:20px; }
.workspace-label { font-size:.8125rem; }
.sidebar-profile strong { font-size:.9375rem; }
.sidebar-profile small { font-size:.8125rem; }
.sidebar-protection { font-size:.75rem; }
.sidebar-protection small { font-size:.6875rem; }
.main-shell, #main-content, #page-content, .panel { min-width:0; }
.page-heading { gap:20px; flex-wrap:wrap; }
.page-heading p { font-size:.9375rem; max-width:70ch; }
.page-actions { flex-wrap:wrap; }
.topbar { height:auto; min-height:76px; padding-top:12px; padding-bottom:12px; }
.topbar-actions { flex-shrink:0; }
.breadcrumb { overflow:hidden; text-overflow:ellipsis; font-size:.875rem; }
.demo-banner { font-size:.8125rem; }
.app-footer { font-size:.8125rem; }
.table-footer { flex-wrap:wrap; }
.table-footer .icon-button { width:40px; height:40px; }
table { font-size:var(--text-body); }
th { font-size:.8125rem; color:var(--muted); }
.person-cell { gap:12px; line-height:1.5; }
.person-cell strong { font-size:var(--text-body); color:var(--ink); }
.person-cell small { font-size:var(--text-small); color:var(--muted); }
/* Reset native button appearance without removing keyboard semantics or focus. */
button.person-cell { appearance:none; -webkit-appearance:none; border:0; background:transparent; box-shadow:none; padding:4px 0; width:100%; text-align:left; border-radius:8px; }
button.person-cell:hover strong { color:var(--primary); }
button.person-cell:focus-visible { outline:3px solid #7da3ff; outline-offset:5px; }
.person-cell>span:last-child { min-width:0; }
.person-cell .avatar { width:44px; height:44px; font-size:1rem; border-radius:14px; color:#355a9c; background:#eef3fc; }
.badge { font-size:.8125rem; padding:5px 10px; }
.modal { width:640px; max-width:min(640px,calc(100vw - 32px)); }
.modal.modal-wide { width:960px; max-width:min(960px,calc(100vw - 32px)); }
.modal-header h2 { font-size:1.5rem; }
.modal-header p, .modal-description, .modal-body, .detail-list>div { font-size:var(--text-body); }
.modal-footer { gap:12px; flex-wrap:wrap; }
.modal-footer .btn { font-size:var(--text-label); min-height:44px; }
.detail-summary strong { font-size:1.25rem; }
.detail-summary p { font-size:var(--text-body); }
.detail-list small { font-size:var(--text-small); }
.toast { max-width:100%; }
.toast strong { font-size:1rem; }
.toast p { font-size:.9375rem; }
.toast-region { width:440px; max-width:calc(100vw - 32px); }
.login-description { font-size:1rem; color:var(--muted); }
.role-tile strong { font-size:1rem; }
.role-tile small { font-size:.875rem; color:var(--muted); }
.role-tile { min-height:130px; }
.role-tile>span:nth-child(2) { min-width:0; }
.role-tile>.icon { display:none; }
.info-strip, .inline-error, .form-error { font-size:.9375rem; }
.filter-bar { gap:18px; }
.filter-bar>.field { min-width:190px; }
.filter-bar>.field:has(input[type=date]) { max-width:none; }
.filter-bar .btn { height:auto; min-height:46px; }
.diary-layout { grid-template-columns:minmax(0,1fr) 270px; }
.diary-layout .panel-header { flex-wrap:wrap; gap:12px; }
.attendance-options { flex-wrap:wrap; justify-content:flex-end; }
.attendance-table { min-width:680px; }
.grades-table { min-width:850px; }
.grade-field input { min-width:78px; }

/* Student directory: identity is separate from digital access and enrollment. */
.student-directory { overflow:hidden; }
.student-directory-heading { padding:24px 26px 0; display:flex; align-items:flex-start; gap:16px; justify-content:space-between; }
.student-directory-heading h2 { font-size:1.25rem; margin-bottom:4px; }
.student-directory-heading p { font-size:.875rem; color:var(--muted); }
.directory-count { flex-shrink:0; background:#f1f5fb; color:#506786; border:1px solid #e4ebf5; border-radius:8px; padding:7px 11px; font-size:.875rem; }
.student-toolbar { padding:22px 26px; align-items:flex-end; }
.student-toolbar .student-search-group { display:flex; align-items:flex-end; gap:10px; flex:1 1 340px; min-width:0; }
.student-toolbar .student-search-group .field { flex:1; }
.student-toolbar .input-search { min-width:0; max-width:none; width:100%; height:46px; border-radius:9px; }
.student-toolbar .input-search input { width:100%; min-width:0; padding:0; }
.student-toolbar .student-status-filter { min-width:185px; }
.student-table { min-width:930px; }
.student-table th { padding:15px 20px; font-size:.8125rem; letter-spacing:.045em; }
.student-table td { padding:20px; color:#344861; }
.student-table th:first-child, .student-table td:first-child { padding-left:26px; }
.student-table td:first-child { width:31%; min-width:260px; }
.student-table .student-identity { padding:4px 0; gap:14px; }
.student-table .student-identity .avatar { width:48px; height:48px; border-radius:16px; border:1px solid #e1e9f7; }
.student-table .student-identity strong { font-size:var(--text-name); font-weight:650; white-space:normal; line-height:1.45; }
.student-identity-copy { display:flex; flex-direction:column; min-width:0; gap:2px; }
.student-table .student-identity small { font-size:.875rem; margin-top:0; color:var(--muted); }
.student-registration { font-size:.9375rem; letter-spacing:.01em; color:#415775; white-space:nowrap; }
.student-class strong { display:block; font-size:1rem; font-weight:600; color:#344861; }
.student-class small { display:block; font-size:.875rem; color:var(--muted); margin-top:3px; }
.portal-state { display:inline-flex; align-items:center; gap:6px; padding:5px 0; font-size:.875rem; line-height:1.5; white-space:nowrap; color:#66778d; }
.portal-state .icon { width:17px; height:17px; }
.portal-state.linked { color:#226951; }
.student-record-button { display:inline-flex; align-items:center; justify-content:center; gap:7px; appearance:none; border:1px solid #dce6f6; background:#f4f7ff; color:#2c52a5; font-weight:600; font-size:.875rem; border-radius:9px; min-height:42px; padding:9px 12px; white-space:nowrap; }
.student-record-button:hover { background:#eaf0ff; border-color:#bbceee; }
.student-record-button .icon { width:16px; height:16px; }

/* Teaching assignments: explicit teacher + subject + class + school year. */
.assignment-summary { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin:0 0 22px; }
.assignment-stat { padding:20px 22px; display:flex; align-items:center; gap:16px; }
.assignment-stat .soft-icon { width:46px; height:46px; flex-shrink:0; }
.assignment-stat strong { display:block; font-size:1.75rem; line-height:1.2; color:var(--ink); }
.assignment-stat small { display:block; font-size:.875rem; color:var(--muted); margin-top:5px; }
.assignment-filter { margin-bottom:0; border:0; border-bottom:1px solid var(--line); border-radius:15px 15px 0 0; }
.assignment-filter .field { flex:1 1 170px; min-width:160px; }
.assignment-table { min-width:940px; }
.assignment-table th, .assignment-table td { padding:18px 20px; }
.assignment-table .person-cell { white-space:normal; min-width:215px; }
.assignment-subject { display:flex; gap:10px; align-items:center; font-weight:600; color:#335182; }
.assignment-subject .icon { width:18px; height:18px; }
.assignment-actions { display:flex; align-items:center; gap:6px; justify-content:flex-end; }
.assignment-link-preview { border:1px solid #dce7f7; background:#f7faff; border-radius:12px; padding:18px; }
.assignment-link-preview>strong { display:block; margin-bottom:14px; font-size:1rem; }
.assignment-preview-rows { display:grid; gap:10px; }
.assignment-preview-rows>div { display:flex; align-items:flex-start; justify-content:space-between; gap:14px; font-size:.9375rem; }
.assignment-preview-rows span { color:var(--muted); flex-shrink:0; }
.assignment-preview-rows strong { text-align:right; font-weight:600; overflow-wrap:anywhere; }
.assignment-preview-note { font-size:.875rem; margin-top:14px; padding-top:12px; border-top:1px solid #dce7f7; color:#4f637f; }
.assignment-preview-note.warning { color:#925912; }
.assignment-form-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.assignment-note { margin:18px 0; }
.class-card footer { flex-wrap:wrap; gap:12px; }
.class-card footer>span { font-size:.875rem; }
.class-actions { display:flex; gap:10px; flex-wrap:wrap; padding-top:8px; }
.inline-panel { flex-wrap:wrap; }
.class-card h2 { font-size:1.5rem; }
.subject-chips span { font-size:.8125rem; white-space:normal; }
.quick-actions button { font-size:.875rem; min-height:52px; text-align:left; }
.class-preview-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
.class-preview { flex-wrap:wrap; }
.calendar-event { font-size:.8125rem; line-height:1.4; white-space:normal; }

@media (max-width:1200px) {
  .diary-layout { grid-template-columns:minmax(0,1fr); }
  .diary-aside { display:grid; grid-template-columns:1fr 1fr; }
  .search-trigger kbd { display:none; }
}
@media (max-width:900px) {
  .sidebar { width:284px; }
  .main-shell { margin-left:0; }
  .breadcrumb { font-size:.8125rem; }
  .assignment-summary { gap:10px; }
  .assignment-stat { padding:16px; gap:10px; }
  .assignment-stat .soft-icon { display:none; }
  .student-table { min-width:0; display:block; }
  .student-table thead { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
  .student-table tbody { display:grid; grid-template-columns:1fr; padding:0 20px 20px; gap:16px; }
  .student-table tr { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); border:1px solid var(--line); border-radius:13px; background:#fff; overflow:hidden; padding:8px 0; }
  .student-table td { display:block; min-width:0; border:0; padding:9px 18px; text-align:left!important; }
  .student-table td:first-child { grid-column:1/-1; padding:12px 18px 16px; width:auto; min-width:0; }
  .student-table td[data-label]::before { content:attr(data-label); display:block; color:var(--muted); font-size:.75rem; font-weight:600; letter-spacing:.025em; margin-bottom:5px; }
  .student-table td:last-child { grid-column:1/-1; border-top:1px solid var(--line); margin-top:10px; padding-top:13px; }
  .student-record-button { width:100%; min-height:44px; }
  .student-table .student-identity { gap:13px; }
  .student-class strong, .student-registration { overflow-wrap:anywhere; white-space:normal; }
}
@media (max-width:600px) {
  .topbar .search-trigger { display:none; }
  .page-heading h1 { font-size:1.75rem; }
  .page-heading p { font-size:.9375rem; }
  .page-actions .btn { font-size:.875rem; min-height:44px; padding:10px 13px; }
  .page-heading .date-chip { position:static; font-size:.75rem; }
  .page-heading:has(.date-chip)>div:first-child { padding-right:0; }
  .demo-banner { align-items:flex-start; font-size:.8125rem; padding:12px 16px; }
  .demo-banner>div { align-items:flex-start; }
  .demo-banner button { font-size:.8125rem; flex-shrink:0; }
  .student-directory-heading { padding:21px 18px 0; flex-wrap:wrap; gap:10px; }
  .student-toolbar { padding:18px; gap:16px; }
  .student-toolbar .student-search-group { flex-basis:100%; }
  .student-toolbar .student-status-filter { width:100%; min-width:0; }
  .student-table tbody { padding:0 14px 14px; }
  .student-table .student-identity strong { font-size:1.0625rem; }
  .student-table .student-identity small, .student-class small, .portal-state { font-size:.875rem; }
  .assignment-summary { grid-template-columns:1fr; }
  .assignment-stat { display:flex; padding:16px 18px; }
  .assignment-stat .soft-icon { display:flex; }
  .assignment-stat>div { display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
  .assignment-stat strong { font-size:1.5rem; }
  .assignment-stat small { margin-top:0; }
  .assignment-filter { padding:18px; }
  .assignment-filter .field { flex-basis:100%; }
  .assignment-form-grid { grid-template-columns:1fr; }
  .diary-aside { grid-template-columns:1fr; }
  .modal { max-height:calc(100dvh - 24px); }
  .modal-header h2 { font-size:1.375rem; }
  .modal-header p { font-size:.9375rem; }
  .modal-body { padding:22px 20px; }
  .modal-footer .btn { font-size:.875rem; }
  .class-preview-grid { grid-template-columns:1fr; }
  .quick-actions { grid-template-columns:1fr; }
  .quick-actions button { font-size:.9375rem; padding:12px; }
  .login-main { padding:30px 22px; }
  .role-grid { gap:12px; }
  .role-tile { min-height:155px; }
  .role-tile strong { font-size:.9375rem; }
  .role-tile small { font-size:.875rem; }
  .login-form-footer { flex-wrap:wrap; gap:14px; }
  .login-form-footer .text-link, .login-form-footer>span { font-size:.8125rem; }
  .info-strip p { overflow-wrap:anywhere; }
}
@media print {
  body { font-size:11pt; }
  h1 { font-size:18pt; }
  h2 { font-size:15pt; }
  .report-table { font-size:10pt; }
  .report-table th, .report-table td { font-size:9pt; }
}
/* The search icon and input share a single control, including on small screens. */
.student-toolbar .input-search {
  display:flex; align-items:center; gap:10px; padding:0 13px;
  background:#fff; border:1px solid #d9e2ef; min-height:46px;
}
.student-toolbar .input-search:focus-within { border-color:#7798e9; box-shadow:0 0 0 3px #2354ca16; }
.student-toolbar .input-search>.icon { width:19px; height:19px; color:var(--muted); flex-shrink:0; }
.student-toolbar .input-search input { border:0; border-radius:0; box-shadow:none; min-height:42px; background:transparent; outline:none; }
/* Contain absolutely positioned accessible captions within each scrollable table. */
.table-scroll, .attendance-options { position:relative; }
.attendance-option, .attendance-option>span { width:36px; height:36px; min-width:36px; font-size:1rem; }
.attendance-option input { width:100%; height:100%; }

/* CMJ Integra 0.3.2 — verificação MFA com animação OTP inspirada no fluxo V5. */
.mfa-card-otp{max-width:540px;padding:38px 42px 32px;position:relative;overflow:hidden;background:linear-gradient(180deg,#fff 0%,#fbfdff 100%);box-shadow:0 24px 70px #17376b18}
.mfa-card-otp::before{content:"";position:absolute;inset:-140px -170px auto auto;width:320px;height:320px;border-radius:50%;background:radial-gradient(circle,#2f68e713 0%,transparent 68%);pointer-events:none}
.mfa-card-otp .mfa-shield{position:relative;z-index:1;box-shadow:0 10px 30px #2b61c318}
.mfa-card-otp .eyebrow,.mfa-card-otp>h1,.mfa-card-otp>p{position:relative;z-index:1}
.mfa-otp-form{display:flex;flex-direction:column;gap:14px;text-align:left;position:relative;z-index:2;margin-top:2px}
.mfa-code-label{display:block;color:#2f4667;font-size:.92rem;font-weight:650;margin:0 0 2px}
.mfa-otp-zone{position:relative;height:72px;overflow:visible;isolation:isolate}
.mfa-otp-visual{position:relative;z-index:2;height:64px;display:flex;align-items:center;justify-content:center;gap:10px;transform-origin:center center;will-change:transform}
.mfa-otp-cell{width:54px;height:58px;flex:0 0 54px;border:1.5px solid #cfdbee;border-radius:14px;background:#fff;display:grid;place-items:center;color:#183862;box-shadow:0 6px 18px #234f8f09;transition:border-color .18s,box-shadow .18s,background .18s,color .18s;will-change:transform,opacity}
.mfa-otp-digit{font-size:1.55rem;line-height:1;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:0}
.mfa-otp-cell.is-filled{border-color:#8eace0;background:#f8fbff;color:#102f59;box-shadow:0 8px 18px #245dc617}
.mfa-otp-visual.is-focused .mfa-otp-cell.is-active{border-color:#2962d9;box-shadow:0 0 0 4px #2b66df16,0 8px 22px #245dc61a;background:#fff}
.mfa-otp-visual.is-complete .mfa-otp-cell{border-color:#507cd2}
.mfa-otp-native{position:absolute;z-index:6;inset:0;width:100%;height:64px;opacity:.001;color:transparent;background:transparent;border:0;outline:0;caret-color:transparent;cursor:text;font-size:16px;padding:0}
.mfa-otp-native:read-only{pointer-events:none}
.mfa-otp-help{font-size:.8rem!important;color:#6b7f9d!important;line-height:1.45!important;margin:0!important;text-align:center;min-height:19px;transition:opacity .2s,transform .2s}
.mfa-submit{min-height:46px;justify-content:center;gap:12px;transition:opacity .2s,transform .2s,filter .2s}
.mfa-submit .icon{margin-left:auto}
.mfa-otp-form>.form-error{margin:0;transition:opacity .18s}
.mfa-verify-core{position:absolute;z-index:5;left:50%;top:50%;width:142px;height:142px;transform:translate(-50%,-43%) scale(.72);display:flex;flex-direction:column;align-items:center;justify-content:center;opacity:0;pointer-events:none;color:#2859bd;transition:opacity .25s,transform .38s cubic-bezier(.2,.82,.2,1),color .25s}
.mfa-verify-ring{position:absolute;inset:13px;border:1.5px solid #3f72df66;border-radius:50%;opacity:0}
.mfa-verify-ring.ring-b{inset:2px;border-color:#6b93eb38}
.mfa-verify-symbol{width:48px;height:48px;border:1.5px solid #4675d6;border-radius:14px;display:grid;place-items:center;background:#f6f9ff;box-shadow:0 10px 26px #285bc321;color:#2e63ca;transform:scale(.88);transition:background .25s,border-color .25s,color .25s,transform .35s}
.mfa-verify-symbol .icon{width:24px;height:24px;opacity:.1;transition:opacity .2s}
.mfa-verify-core strong{font-size:.82rem;margin-top:8px;letter-spacing:.01em}
.mfa-verify-core small{font-size:.68rem;color:#7690b8;margin-top:3px}
.mfa-verify-core.is-visible{opacity:1;transform:translate(-50%,-43%) scale(1)}
.mfa-verify-core.is-visible .mfa-verify-ring{animation:mfa-ring 1.45s ease-out infinite}
.mfa-verify-core.is-visible .ring-b{animation-delay:.42s}
.mfa-verify-core.is-visible .mfa-verify-symbol{animation:mfa-core-pulse 1.15s ease-in-out infinite}
.mfa-verify-core.is-success{color:#15864f}
.mfa-verify-core.is-success .mfa-verify-symbol{background:#eaf8f0;border-color:#35a86a;color:#16834e;transform:scale(1.08);animation:none}
.mfa-verify-core.is-success .mfa-verify-symbol .icon{opacity:1}
.mfa-verify-core.is-success .mfa-verify-ring{border-color:#35a86a66;animation:mfa-success-ring .7s ease-out both}
.mfa-verify-core.is-success small{color:#4f9070}
.mfa-otp-form[data-phase="launch"] .mfa-submit,.mfa-otp-form[data-phase="verifying"] .mfa-submit,.mfa-otp-form[data-phase="success"] .mfa-submit,.mfa-otp-form[data-phase="launch"] .mfa-otp-help,.mfa-otp-form[data-phase="verifying"] .mfa-otp-help,.mfa-otp-form[data-phase="success"] .mfa-otp-help{opacity:0;transform:translateY(6px);pointer-events:none}
.mfa-otp-form[data-phase="launch"] .form-error,.mfa-otp-form[data-phase="verifying"] .form-error,.mfa-otp-form[data-phase="success"] .form-error{opacity:0}
.mfa-otp-form[data-phase="error"] .mfa-otp-cell{border-color:#d85f67;background:#fff8f8;box-shadow:0 0 0 3px #d85f6712}
.mfa-card-otp>.mfa-help,.mfa-card-otp>[data-global="logout"]{position:relative;z-index:3}
@keyframes mfa-ring{0%{transform:scale(.72);opacity:.62}70%,100%{transform:scale(1.32);opacity:0}}
@keyframes mfa-core-pulse{0%,100%{transform:scale(.9)}50%{transform:scale(1.04)}}
@keyframes mfa-success-ring{0%{transform:scale(.75);opacity:.7}100%{transform:scale(1.38);opacity:0}}
@media(max-width:620px){
 .mfa-card-otp{padding:30px 22px 26px;border-radius:22px}
 .mfa-otp-visual{gap:7px}
 .mfa-otp-cell{width:45px;height:54px;flex-basis:45px;border-radius:12px}
 .mfa-otp-digit{font-size:1.38rem}
 .mfa-verify-core{width:132px;height:132px}
}
@media(max-width:370px){
 .mfa-card-otp{padding-left:18px;padding-right:18px}
 .mfa-otp-visual{gap:5px}
 .mfa-otp-cell{width:41px;height:51px;flex-basis:41px}
}
@media(prefers-reduced-motion:reduce){
 .mfa-verify-core,.mfa-verify-symbol,.mfa-otp-cell,.mfa-submit,.mfa-otp-help{transition:none!important}
 .mfa-verify-core.is-visible .mfa-verify-ring,.mfa-verify-core.is-visible .mfa-verify-symbol{animation:none!important}
}
.mfa-card form.mfa-otp-form{gap:14px}
@media(max-height:620px) and (min-width:520px){
 .mfa-page{padding:14px 18px}
 .mfa-card-otp{max-width:500px;padding:22px 30px 18px;border-radius:18px}
 .mfa-card-otp .mfa-shield{width:48px;height:48px;margin-bottom:10px;border-radius:14px}
 .mfa-card-otp .mfa-shield .icon{width:24px;height:24px}
 .mfa-card-otp .eyebrow{font-size:.77rem}
 .mfa-card-otp>h1{font-size:1.55rem;margin:5px 0}
 .mfa-card-otp>p{font-size:.86rem;line-height:1.5;margin:5px 0 12px}
 .mfa-card form.mfa-otp-form{gap:9px}
 .mfa-code-label{font-size:.84rem}
 .mfa-otp-zone{height:62px}
 .mfa-otp-visual{height:56px;gap:8px}
 .mfa-otp-cell{width:48px;height:50px;flex-basis:48px;border-radius:12px}
 .mfa-otp-digit{font-size:1.38rem}
 .mfa-otp-native{height:56px}
 .mfa-otp-help{font-size:.75rem!important;min-height:17px}
 .mfa-submit{min-height:42px;height:42px}
 .mfa-card-otp>p.mfa-help{font-size:.78rem;margin:12px 0 7px;line-height:1.45}
 .mfa-card-otp>[data-global="logout"]{font-size:.85rem}
 .mfa-verify-core{width:128px;height:128px;transform:translate(-50%,-48%) scale(.72)}
 .mfa-verify-core.is-visible{transform:translate(-50%,-48%) scale(1)}
}
.mfa-code-label{transition:opacity .18s,transform .18s}
.mfa-verify-core{text-align:center}
.mfa-otp-form[data-phase="launch"] .mfa-code-label,.mfa-otp-form[data-phase="verifying"] .mfa-code-label,.mfa-otp-form[data-phase="success"] .mfa-code-label{opacity:0;transform:translateY(-4px)}
@media(max-width:519px) and (max-height:620px){
 .mfa-page{padding:10px 10px}
 .mfa-card-otp{padding:17px 14px 15px;border-radius:17px}
 .mfa-card-otp .mfa-shield{width:42px;height:42px;margin-bottom:7px;border-radius:12px}
 .mfa-card-otp .mfa-shield .icon{width:22px;height:22px}
 .mfa-card-otp .eyebrow{font-size:.68rem;letter-spacing:.12em}
 .mfa-card-otp>h1{font-size:1.38rem;margin:4px 0}
 .mfa-card-otp>p{font-size:.78rem;line-height:1.4;margin:4px 0 9px}
 .mfa-card form.mfa-otp-form{gap:7px}
 .mfa-code-label{font-size:.78rem}
 .mfa-otp-zone{height:54px}
 .mfa-otp-visual{height:50px;gap:4px}
 .mfa-otp-cell{width:39px;height:46px;flex-basis:39px;border-radius:10px}
 .mfa-otp-digit{font-size:1.2rem}
 .mfa-otp-native{height:50px}
 .mfa-otp-help{font-size:.68rem!important;min-height:15px}
 .mfa-submit{min-height:39px;height:39px;font-size:.82rem}
 .mfa-card-otp>p.mfa-help{font-size:.7rem;margin:8px 0 5px;line-height:1.35}
 .mfa-card-otp>[data-global="logout"]{font-size:.8rem}
 .mfa-verify-core{width:116px;height:116px;transform:translate(-50%,-49%) scale(.72)}
 .mfa-verify-core.is-visible{transform:translate(-50%,-49%) scale(1)}
 .mfa-verify-core strong{font-size:.75rem}
 .mfa-verify-core small{font-size:.61rem}
}
@media(max-height:430px) and (min-width:520px){
 .mfa-page{padding:8px 14px}
 .mfa-card-otp{max-width:540px;padding:12px 24px 11px;border-radius:16px}
 .mfa-card-otp .mfa-shield{width:38px;height:38px;margin-bottom:5px;border-radius:11px}
 .mfa-card-otp .mfa-shield .icon{width:20px;height:20px}
 .mfa-card-otp .eyebrow{font-size:.65rem;letter-spacing:.12em}
 .mfa-card-otp>h1{font-size:1.3rem;margin:2px 0}
 .mfa-card-otp>p{font-size:.75rem;line-height:1.35;margin:2px 0 6px}
 .mfa-card form.mfa-otp-form{gap:5px}
 .mfa-code-label{font-size:.75rem}
 .mfa-otp-zone{height:48px}
 .mfa-otp-visual{height:46px;gap:7px}
 .mfa-otp-cell{width:43px;height:42px;flex-basis:43px;border-radius:10px}
 .mfa-otp-digit{font-size:1.15rem}
 .mfa-otp-native{height:46px}
 .mfa-otp-help{display:none}
 .mfa-submit{height:37px;min-height:37px;font-size:.8rem}
 .mfa-card-otp>p.mfa-help{display:none}
 .mfa-card-otp>[data-global="logout"]{font-size:.78rem;margin-top:4px}
 .mfa-verify-core{width:108px;height:108px;transform:translate(-50%,-50%) scale(.72)}
 .mfa-verify-core.is-visible{transform:translate(-50%,-50%) scale(1)}
}

/* CMJ Integra 0.4.0 — shell administrativo compacto */
:root{--sidebar-width:224px;--sidebar-collapsed:70px;--topbar-height:54px}
.sidebar{width:var(--sidebar-width);transition:width .18s ease,transform .2s ease}
.main-shell{margin-left:var(--sidebar-width);transition:margin-left .18s ease}
.brand{margin:15px 14px 9px;gap:9px;min-height:42px}
.logo-wrap{width:38px;height:38px;padding:2px}.logo-wrap img{width:34px;height:34px}.brand strong{font-size:1.16rem}.brand small{font-size:.68rem;margin-top:2px}
.workspace-label{margin:0 12px 7px;padding:6px 9px;font-size:.79rem;min-height:32px}
.sidebar nav{padding:0 8px 9px}.nav-section{margin:11px 10px 4px;font-size:.68rem}.nav-section:first-child{margin-top:4px}
.nav-link{min-height:34px;padding:7px 10px;margin:1px 0;font-size:.87rem;gap:9px;border-radius:7px}.nav-link .icon{width:16px;height:16px}
.sidebar-bottom{display:none}

.topbar{height:var(--topbar-height);min-height:var(--topbar-height);padding:0 24px;gap:14px}.topbar-left,.topbar-actions{gap:12px}.topbar .icon-button{width:30px;height:30px}.topbar-divider{height:20px}.search-trigger kbd{margin-left:10px}.session-bar{padding:5px 24px;font-size:.78rem;min-height:30px}
.main-shell #main-content{padding:23px 24px 0}#main-content{min-height:calc(100vh - var(--topbar-height))}
.topbar-user{border:0;background:transparent;display:flex;align-items:center;gap:8px;padding:4px 6px;border-radius:9px;max-width:250px;text-align:left}.topbar-user:hover,.topbar-user[aria-expanded="true"]{background:#f1f4f8}.topbar-user>.icon{width:13px;height:13px;color:#7d8ba0}.topbar-user[aria-expanded="true"]>.icon{transform:rotate(90deg)}
.topbar-user-copy{min-width:0;display:block}.topbar-user-copy strong,.topbar-user-copy small{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.topbar-user-copy strong{font-size:.82rem;font-weight:650;max-width:145px}.topbar-user-copy small{font-size:.7rem;color:#74849a;margin-top:-1px}.topbar-avatar{width:31px;height:31px;border-radius:9px;font-size:.83rem}
.user-menu-wrap{position:relative}.user-dropdown{position:absolute;right:0;top:calc(100% + 8px);width:260px;background:#fff;border:1px solid #dfe6ef;border-radius:12px;box-shadow:0 16px 45px #10203b22;padding:7px;z-index:70}.user-dropdown-head{display:flex;align-items:center;gap:9px;padding:8px 8px 10px;border-bottom:1px solid var(--line);margin-bottom:5px}.user-dropdown-head>span:last-child{min-width:0}.user-dropdown-head strong,.user-dropdown-head small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-dropdown-head strong{font-size:.88rem}.user-dropdown-head small{font-size:.76rem;color:var(--muted)}.user-dropdown button{width:100%;border:0;background:transparent;border-radius:7px;padding:8px 9px;display:flex;align-items:center;gap:9px;text-align:left;font-size:.84rem;color:#3e4d63}.user-dropdown button:hover,.user-dropdown button:focus-visible{background:#f1f4f8;color:var(--ink)}.user-dropdown button .icon{width:16px;height:16px}.user-dropdown-separator{display:block;height:1px;background:var(--line);margin:5px}.user-dropdown .danger-menu-item{color:#a33d43}
.profile-data-grid,.record-overview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;margin:16px 0}.profile-data-grid>div,.record-overview>div{padding:11px;border:1px solid var(--line);border-radius:9px;background:#fafbfc}.profile-data-grid small,.record-overview small{display:block;color:var(--muted);font-size:.76rem}.profile-data-grid strong,.record-overview strong{display:block;margin-top:2px;font-size:.9rem;overflow-wrap:anywhere}
.form-section{padding:14px 0;border-bottom:1px solid var(--line)}.form-section:first-child{padding-top:0}.form-section:last-of-type{border-bottom:0}.form-section h3{font-size:1rem;margin-bottom:12px}.detail-edit-row{width:100%;border:0;background:transparent;display:flex;align-items:center;gap:10px;text-align:left;padding:8px 0;color:inherit}.detail-edit-row>span:first-child{min-width:0;flex:1}.detail-edit-row strong,.detail-edit-row small{display:block}.detail-edit-row small{color:var(--muted)}.detail-edit-row>.icon{width:15px;color:#8b98aa}
body.sidebar-collapsed .sidebar{width:var(--sidebar-collapsed);overflow:visible}body.sidebar-collapsed .main-shell{margin-left:var(--sidebar-collapsed)}body.sidebar-collapsed .brand{justify-content:center;margin-left:8px;margin-right:8px}body.sidebar-collapsed .brand-copy,body.sidebar-collapsed .workspace-label span,body.sidebar-collapsed .nav-section,body.sidebar-collapsed .nav-link>span{display:none}body.sidebar-collapsed .workspace-label{justify-content:center;margin-left:9px;margin-right:9px;padding:6px}body.sidebar-collapsed .workspace-label .icon{margin:0}body.sidebar-collapsed .nav-link{justify-content:center;padding:7px;position:relative}body.sidebar-collapsed .nav-link .icon{width:18px;height:18px}body.sidebar-collapsed .nav-link.active{box-shadow:inset 2px 0 #8faef0}
@media(min-width:1201px){.sidebar{width:var(--sidebar-width)}.main-shell{margin-left:var(--sidebar-width)}.topbar,.session-bar{padding-left:24px;padding-right:24px}.main-shell #main-content{padding-left:24px;padding-right:24px}}
@media(max-width:1200px) and (min-width:901px){:root{--sidebar-width:210px}.sidebar{width:var(--sidebar-width)}.main-shell{margin-left:var(--sidebar-width)}.brand strong{font-size:1.08rem}.topbar{padding:0 20px}.main-shell #main-content{padding:21px 20px 0}}
/* Menu do Usuário Moderno e Foto */
.avatar-upload-wrap { position: relative; display: inline-flex; margin-bottom: 8px; }
.avatar-upload-trigger { position: absolute; bottom: -2px; right: -6px; width: 28px; height: 28px; border-radius: 50%; background: #0b5fff; color: #fff; border: 2px solid #fff; display: flex; align-items: center; justify-content: center; padding: 0; cursor: pointer; box-shadow: 0 2px 6px rgba(0,0,0,0.15); transition: background 0.2s; }
.avatar-upload-trigger:hover { background: #0046d3; }
.avatar-upload-trigger .icon { width: 14px; height: 14px; }
.profile-actions-list { display: flex; flex-direction: column; gap: 6px; margin: 16px 0; }
.profile-action-btn { display: flex; align-items: center; gap: 12px; width: 100%; text-align: left; background: #fff; border: 1px solid var(--line); padding: 12px 14px; border-radius: 9px; color: var(--ink); font-size: .88rem; transition: background 0.2s, border-color 0.2s; cursor: pointer; }
.profile-action-btn:hover { background: #f8fafc; border-color: #cbd5e1; }
.profile-action-btn .icon { width: 18px; height: 18px; color: #64748b; }
.profile-action-btn span { flex: 1; font-weight: 550; }
.profile-action-btn .icon:last-child { width: 14px; height: 14px; color: #cbd5e1; margin-right: -4px; }

@media(min-width:901px){
  /* Botão de Recolher Flutuante Moderno */
  .sidebar-collapse { position: absolute; right: -14px; top: 22px; width: 28px; min-height: 28px; padding: 0; border: 1px solid var(--line); background: #fff; color: #74849a; border-radius: 50%; display: flex; align-items: center; justify-content: center; box-shadow: 0 2px 8px rgba(0,0,0,0.06); cursor: pointer; z-index: 100; transition: transform 0.2s ease, background 0.2s, color 0.2s; }
  .sidebar-collapse:hover { background: #f1f4f8; color: #3e4d63; }
  .sidebar-collapse span { display: none !important; }
  .sidebar-collapse .icon { width: 16px; height: 16px; transition: transform 0.2s; }
  body:not(.sidebar-collapsed) .sidebar-collapse .icon { transform: rotate(180deg); }
  
  
}

@media(max-width:900px){
  .main-shell{margin-left:0}
  body.sidebar-collapsed .sidebar{width:284px}body.sidebar-collapsed .main-shell{margin-left:0}body.sidebar-collapsed .brand{justify-content:flex-start;margin:28px 20px 18px}body.sidebar-collapsed .brand-copy,body.sidebar-collapsed .workspace-label span,body.sidebar-collapsed .nav-section,body.sidebar-collapsed .nav-link>span{display:block}body.sidebar-collapsed .workspace-label{justify-content:flex-start;margin:0 20px 15px;padding:10px 11px}body.sidebar-collapsed .nav-link{justify-content:flex-start;padding:9px 13px}body.sidebar-collapsed .nav-link:hover:after,body.sidebar-collapsed .nav-link:focus-visible:after{display:none}.sidebar-collapse{display:none}.sidebar{width:284px}.topbar{height:56px;min-height:56px;padding:0 18px}.session-bar{padding:5px 18px}.topbar-user-copy{display:none}.topbar-user{padding:3px}.topbar-user>.icon{display:none}.user-dropdown{right:-4px}.main-shell #main-content{padding:21px 18px 0}
}
@media(max-width:560px){.breadcrumb>span,.breadcrumb{max-width:180px;overflow:hidden;text-overflow:ellipsis}.topbar .install-control{display:none!important}.topbar-actions{gap:4px}.user-dropdown{position:fixed;right:10px;left:10px;top:62px;width:auto}.profile-data-grid,.record-overview{grid-template-columns:1fr}.form-section .form-grid{grid-template-columns:1fr}}

/* Floating Tooltip */
/* Dashboard — mesma paleta e planos diagonais da experiência de acesso. */
.dashboard-modern{display:flex;flex-direction:column;gap:24px;padding-bottom:30px;max-width:1500px;margin:0 auto;color:#142e54}
.dash-heading{display:flex;align-items:center;justify-content:space-between;gap:16px}.dash-eyebrow{display:block;font-size:.64rem;font-weight:750;letter-spacing:.14em;color:#627b9c}.dash-heading h1{font-size:1.9rem;letter-spacing:-.05em;margin:4px 0 0;font-weight:650}.dash-heading h1>span{color:#2877e3}.dash-today{display:flex;align-items:center;gap:8px;font-size:.78rem;color:#61728d}.dash-today .icon{width:16px;height:16px}
.dash-welcome{isolation:isolate;position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:44px;padding:32px 38px;border-radius:18px;background:radial-gradient(ellipse at 95% 0,#1c58aa80,transparent 55%),linear-gradient(118deg,#061a40,#0b3374);color:#fff;box-shadow:0 12px 28px #09245512}.dash-welcome:before{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(114deg,transparent 58%,#519bff0c 58% 72%,#8fbdff0b 72%);pointer-events:none}.dash-welcome:after{content:'';position:absolute;width:420px;height:420px;border:1px solid #8dadff14;border-radius:50%;left:25%;top:55%;box-shadow:0 0 0 40px #5988ff06,0 0 0 85px #5988ff04;z-index:-1;pointer-events:none}.dash-welcome .dash-eyebrow{color:#a6cbff}.dash-welcome h2{font-size:clamp(1.55rem,2.4vw,2.45rem);font-weight:500;line-height:1.23;letter-spacing:-.045em;margin:16px 0 12px;overflow-wrap:anywhere}.dash-welcome h2 em{font-style:normal;color:#9bd5ff;font-weight:450}.dash-welcome-copy>p{max-width:480px;font-size:.85rem;line-height:1.8;color:#c0d0e8;margin:0 0 22px}.dash-primary{display:inline-flex;gap:22px;align-items:center;justify-content:space-between;min-height:43px;padding:10px 17px;border:1px solid #e1edff;border-radius:9px;background:#fff;color:#123e78;font-weight:650;font-size:.8rem}.dash-primary:hover{background:#e7f3ff}.dash-primary .icon{width:17px;height:17px}.dash-term{align-self:center;border-left:1px solid #91b7ef33;padding:6px 0 6px 30px;display:flex;flex-direction:column;align-items:flex-start}.dash-term-icon{width:40px;height:40px;display:grid;place-items:center;background:#adcfff12;border:1px solid #b8d8ff24;border-radius:11px;color:#9bcaff;margin-bottom:17px}.dash-term-icon .icon{width:21px;height:21px}.dash-term>strong{font-size:1.35rem;line-height:1.4;font-weight:500;margin-top:8px}.dash-term>p{font-size:.8rem;color:#b3cbea;margin:6px 0 17px}.dash-term>button{border:0;border-radius:20px;background:#afdaff16;color:#d5edff;display:flex;align-items:center;gap:14px;font-size:.72rem;padding:8px 12px}.dash-term>button:hover{background:#afdaff30}.dash-term>button .icon{width:14px;height:14px}
.dash-metrics{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;background:#fff;border:1px solid #e0e7ef;border-radius:14px;padding:22px 0}.dash-metric{padding:0 24px;border-right:1px solid #e6ebf2;min-width:0}.dash-metric:last-child{border:0}.dash-metric-label{display:flex;align-items:center;gap:8px;font-size:.77rem;color:#586f8e}.dash-metric-label .icon{width:16px;height:16px;color:#4977b4;flex-shrink:0}.dash-metric>strong{display:block;font-size:2rem;letter-spacing:-.05em;font-weight:600;line-height:1.3;margin-top:10px;font-variant-numeric:tabular-nums}.dash-metric>small{font-size:.7rem;color:#728197;display:block;margin-top:4px}
.dash-shortcuts{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.dash-shortcuts>button{display:flex;align-items:center;gap:12px;text-align:left;background:#f5f8fd;border:1px solid #e0e8f4;border-radius:11px;padding:16px;color:#274e80;min-width:0;transition:background .15s,border-color .15s}.dash-shortcuts>button:hover{background:#eaf2ff;border-color:#abc7ee}.dash-shortcut-icon{display:grid;place-items:center;width:38px;height:38px;flex-shrink:0;background:white;border-radius:10px}.dash-shortcut-icon .icon{width:19px;height:19px}.dash-shortcuts>button>span:nth-child(2){flex:1;min-width:0}.dash-shortcuts strong{font-size:.8rem;display:block;font-weight:650}.dash-shortcuts small{display:block;font-size:.7rem;margin-top:4px;color:#6b7d96}.dash-shortcuts>button>.icon{width:16px;height:16px;flex-shrink:0}
.dash-workspace{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(280px,1fr);gap:24px;align-items:start}.dash-feed{display:flex;flex-direction:column;gap:24px;min-width:0}.dash-section{background:#fff;border:1px solid #e1e8f0;border-radius:14px;overflow:hidden;min-width:0}.dash-section-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:22px 24px 19px}.dash-section-heading h2{font-size:1.1rem;font-weight:650;letter-spacing:-.03em;margin:5px 0 0}.dash-section-heading>.icon{width:20px;height:20px;color:#7e94b1}.dash-link{display:flex;align-items:center;gap:7px;border:0;background:transparent;color:#245da1;font-size:.73rem;font-weight:600;white-space:nowrap;padding:8px 0}.dash-link .icon{width:14px;height:14px}.dash-attention{padding:0 24px 10px}.dash-attention>button{display:flex;align-items:center;gap:12px;width:100%;padding:16px 0;border:0;border-top:1px solid #edf1f6;background:transparent;text-align:left}.dash-attention>button>span:nth-child(2){flex:1;min-width:0}.dash-attention-symbol{display:grid;place-items:center;width:35px;height:35px;border-radius:10px;background:#f7f2e8;color:#927338;flex-shrink:0}.dash-attention-symbol .icon{width:18px;height:18px}.dash-attention strong{display:block;font-size:.81rem;font-weight:600;color:#264362}.dash-attention small{display:block;font-size:.73rem;color:#728097;margin-top:3px;line-height:1.6}.dash-attention>button>.icon{width:14px;height:14px;color:#8296ae}.dash-attention>button:hover strong{color:#1264c7}
.dash-notices{padding:0 24px 6px}.dash-notice{display:flex;gap:14px;align-items:flex-start;width:100%;padding:19px 0;text-align:left;border:0;border-top:1px solid #edf1f6;background:transparent}.dash-notice-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:#edf4fe;color:#5586c4;flex-shrink:0}.dash-notice-icon .icon{width:17px;height:17px}.dash-notice>span:nth-child(2){flex:1;min-width:0}.dash-notice small{font-size:.68rem;color:#77869b}.dash-notice strong{display:block;font-size:.87rem;font-weight:600;line-height:1.5;color:#233f65;margin-top:4px;overflow-wrap:anywhere}.dash-notice p{font-size:.76rem;color:#718198;line-height:1.65;margin:6px 0 0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;overflow-wrap:anywhere}.dash-notice>.icon{width:14px;height:14px;color:#8396b0;margin-top:18px;flex-shrink:0}.dash-notice:hover strong{color:#1264c7}
.dash-events{padding:0 24px}.dash-event{display:flex;gap:16px;align-items:center;text-align:left;width:100%;padding:18px 0;border:0;border-top:1px solid #edf1f6;background:transparent}.dash-date{width:48px;min-height:54px;flex-shrink:0;display:flex;flex-direction:column;align-items:center;justify-content:center;background:#f0f5fc;border:1px solid #e5edf8;border-radius:10px;color:#234e87}.dash-date strong{font-size:1.3rem;font-weight:650;line-height:1.2}.dash-date small{font-size:.63rem;text-transform:uppercase;letter-spacing:.08em}.dash-event>span:last-child{min-width:0}.dash-event>span:last-child>small{color:#6d85a4;font-size:.63rem;text-transform:uppercase;letter-spacing:.08em}.dash-event>span:last-child>strong{display:block;color:#244164;font-size:.82rem;font-weight:600;line-height:1.5;margin:3px 0 5px;overflow-wrap:anywhere}.dash-event-time{display:flex;gap:5px;align-items:center;font-size:.7rem;color:#73849b}.dash-event-time .icon{width:12px;height:12px}.dash-event:hover .dash-date{background:#e0ecfc}.dash-agenda-footer{display:flex;align-items:center;justify-content:space-between;width:100%;padding:16px 24px;border:0;border-top:1px solid #e8eef6;background:#f8fafd;color:#366399;font-size:.76rem;font-weight:600}.dash-agenda-footer .icon{width:16px;height:16px}.dash-agenda-footer:hover{background:#edf4fd}.dash-school-note{display:flex;gap:14px;align-items:center;padding:26px 24px;background:linear-gradient(120deg,#edf4fc,#fafcff);color:#6a83a5;font-size:.8rem;line-height:1.6}.dash-school-note>.icon{width:27px;height:27px;color:#739dd1}.dash-school-note strong{font-family:Georgia,serif;font-style:italic;color:#305985;font-size:1rem;font-weight:400}.dashboard-modern .empty-state{padding:30px 16px}.dashboard-modern button:focus-visible,.user-menu-wrap button:focus-visible{outline:3px solid #4b94ed;outline-offset:3px}
/* Conta: foto real, fallback sem eventos inline e menu operável por teclado. */
.avatar-wrapper{position:relative;display:inline-flex;width:39px;height:39px;border-radius:12px;overflow:hidden;flex-shrink:0}.avatar-wrapper>.avatar{width:100%;height:100%;border-radius:inherit}.avatar-wrapper>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.avatar-wrapper>img[hidden]{display:none}.avatar-wrapper.large-avatar{width:64px;height:64px;border-radius:18px}.avatar-upload-trigger{z-index:2}.topbar-user .topbar-avatar{width:34px;height:34px;border-radius:11px}.topbar-user{gap:9px;padding:4px 7px}.topbar-user-copy{display:block}.topbar-user-copy strong{max-width:150px;color:#193a68}.topbar-user-copy small{font-size:.63rem;margin-top:1px}.topbar-user>.icon{transform:rotate(90deg)}.topbar-user[aria-expanded=true]>.icon{transform:rotate(-90deg)}.user-dropdown{width:300px;padding:8px;border:1px solid #dce6f3;border-radius:17px;box-shadow:0 18px 55px #0a234529;top:calc(100% + 12px)}.user-dropdown-head{padding:17px 12px;margin-bottom:9px;gap:12px;background:linear-gradient(120deg,#eef5ff,#f8fbff);border:0;border-radius:11px}.dropdown-avatar{width:44px;height:44px;border:2px solid white;box-shadow:0 0 0 1px #dbe7f7}.user-dropdown-head strong{font-size:.93rem;color:#173d70}.user-dropdown-head small{font-size:.72rem;color:#6b7f9a;margin-top:4px}.user-menu-label{display:block;font-size:.6rem;color:#7a8da8;letter-spacing:.12em;font-weight:700;padding:7px 12px}.user-dropdown button{padding:12px;gap:12px;border-radius:10px;min-height:44px}.user-dropdown button>span{flex:1}.user-dropdown button strong{display:block;font-size:.8rem;font-weight:600;color:#2d486b}.user-dropdown button small{display:block;font-size:.69rem;color:#77879d;margin-top:3px}.user-dropdown button>.icon{color:#6685ad;width:18px;height:18px;flex-shrink:0}.user-dropdown button>.icon:last-child:not(:first-child){width:13px;height:13px}.user-dropdown .danger-menu-item{font-size:.79rem}.user-dropdown .danger-menu-item .icon{color:inherit}.user-dropdown .danger-menu-item:hover{background:#fff0f1;color:#a52d3b}
@media(max-width:1100px){.dash-welcome{gap:24px;padding:28px;grid-template-columns:minmax(0,1fr) 215px}.dash-metric{padding:0 18px}.dash-shortcuts>button{padding:13px;gap:9px}.dash-shortcuts small{line-height:1.5}.dash-shortcuts>button>.icon{display:none}.dash-workspace{gap:18px}}
@media(max-width:700px){.dashboard-modern{gap:18px}.dash-heading{align-items:flex-start;flex-direction:column;gap:8px}.dash-heading h1{font-size:1.7rem}.dash-today{font-size:.71rem}.dash-welcome{grid-template-columns:1fr;padding:25px;gap:24px}.dash-welcome h2{font-size:1.8rem}.dash-welcome-copy>p{font-size:.8rem}.dash-term{border-left:0;border-top:1px solid #91b7ef33;padding:20px 0 0;width:100%;position:relative}.dash-term-icon{position:absolute;right:0;top:22px}.dash-term>strong{font-size:1.15rem;padding-right:46px}.dash-term>p{margin-bottom:12px}.dash-term .dash-eyebrow{padding-right:46px}.dash-metrics{grid-template-columns:repeat(2,minmax(0,1fr));padding:0}.dash-metric{padding:18px}.dash-metric:nth-child(2){border-right:0}.dash-metric:nth-child(-n+2){border-bottom:1px solid #e6ebf2}.dash-metric>strong{font-size:1.8rem}.dash-metric-label{font-size:.7rem}.dash-metric>small{font-size:.66rem}.dash-shortcuts{grid-template-columns:1fr;gap:8px}.dash-shortcuts>button{padding:12px 15px}.dash-shortcuts>button>.icon{display:block}.dash-shortcuts strong{font-size:.81rem}.dash-workspace{grid-template-columns:1fr}.dash-section-heading{padding:20px}.dash-attention,.dash-events{padding-left:20px;padding-right:20px}.dash-notices{padding-left:20px;padding-right:20px}.dash-section-heading h2{font-size:1rem}.topbar-user-copy{display:block}.topbar-user-copy strong{max-width:95px;font-size:.75rem}.topbar-user-copy small{display:none}.topbar .breadcrumb{font-size:.73rem;max-width:165px}.topbar-left{flex:1}.topbar-actions{gap:4px}}
@media(max-width:560px){.user-dropdown{position:fixed;top:64px;left:auto;right:12px;width:min(300px,calc(100vw - 24px));max-height:calc(100dvh - 90px);overflow:auto}.topbar .breadcrumb{font-size:0}.topbar .breadcrumb strong{font-size:.75rem}.topbar .breadcrumb>span{display:none}.dash-primary{width:100%;gap:10px}.dash-welcome{padding:22px}.dash-welcome h2{font-size:1.62rem}.dash-section-heading{gap:8px}.dash-link{font-size:.67rem}.dash-eyebrow{font-size:.58rem}.dash-metric{padding:16px 14px}.dash-metric-label{gap:5px}}

/* Meu perfil: identidade, dados editáveis e proteção da conta. */
.modal.profile-modal{width:700px;max-width:calc(100vw - 24px);border-radius:24px;border-color:#dce5f1;box-shadow:0 32px 100px #0b23454d}
.profile-modal::backdrop{background:#0e234a80;backdrop-filter:blur(7px)}
.profile-modal .modal-header{padding:24px 30px 20px;border-bottom:0}
.profile-modal .modal-header h2{font-size:1.4rem;letter-spacing:-.04em}
.profile-modal .modal-header p{font-size:.85rem;color:var(--muted);margin-top:3px}
.profile-modal .modal-header .modal-close{background:#f3f6fa;border-radius:50%;width:36px;height:36px}
.profile-modal .modal-body{padding:0 30px 22px;gap:24px}
.profile-identity{padding:22px 24px 25px;border:1px solid #dae5f5;border-radius:18px;background:radial-gradient(ellipse at 100% 0,#ddeafd 0,transparent 65%),linear-gradient(120deg,#f4f8ff,#f9fbfe)}
.profile-identity-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:23px;flex-wrap:wrap}
.profile-eyebrow{font-size:.62rem;letter-spacing:.15em;font-weight:700;color:#526d93}
.profile-identity-top .badge{background:#fff9;color:#345782;border:1px solid #d4e0f2;font-size:.7rem;padding:4px 9px}
.profile-identity-main{display:flex;align-items:center;gap:22px}
.profile-identity .avatar-upload-wrap{flex-shrink:0;margin:0 0 4px}
.profile-identity .large-avatar{width:86px;height:86px;border-radius:25px;box-shadow:0 0 0 4px #fff,0 6px 20px #1c426518}
.profile-identity .avatar{background:#dbe7fb;color:#294f8f;font-size:1.8rem;margin:0}
.profile-identity .avatar-upload-trigger{width:34px;height:34px;right:-7px;bottom:-7px;border-width:3px;background:var(--primary)}
.profile-identity .avatar-upload-trigger .icon{width:16px;height:16px}
.profile-identity-copy{min-width:0}
.profile-identity-copy h3{font-size:1.45rem;line-height:1.2;color:#1b3557;overflow-wrap:anywhere}
.profile-identity-copy p{font-size:.8rem;color:#586e8b;margin-top:7px;overflow-wrap:anywhere}
.profile-edit-name{display:inline-flex;align-items:center;gap:6px;min-height:36px;padding:7px 0 0;border:0;background:transparent;color:var(--primary);font-size:.76rem;font-weight:600;text-align:left}
.profile-edit-name .icon{width:14px;height:14px}
.profile-edit-name:hover{text-decoration:underline}
.profile-section-heading{display:flex;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:10px;flex-wrap:wrap}
.profile-section-heading h3,.profile-security-heading h3{font-size:.94rem;letter-spacing:-.02em}
.profile-section-heading>span{font-size:.7rem;color:var(--muted)}
.profile-detail-row{display:flex;align-items:center;gap:13px;width:100%;padding:15px 8px;background:transparent;border:0;border-bottom:1px solid var(--line);text-align:left;transition:background .18s ease}
.profile-detail-row:hover{background:#f4f7fc}
.profile-row-icon{display:grid;place-items:center;flex-shrink:0;width:38px;height:38px;border-radius:12px;background:#f1f5fa;color:#617b9d}
.profile-row-icon .icon{width:19px;height:19px}
.profile-row-copy{flex:1;min-width:0}
.profile-row-copy small{display:block;font-size:.71rem;color:var(--muted);margin-bottom:3px}
.profile-row-copy strong{display:block;font-size:.83rem;font-weight:550;overflow-wrap:anywhere}
.profile-row-edit{font-size:.71rem;color:var(--primary);font-weight:600}
.profile-detail-row>.icon{width:13px;height:13px;color:#8194ae}
.profile-security-section{padding:18px 20px;border:1px solid var(--line);border-radius:15px;background:#fafbfd}
.profile-security-heading{display:flex;align-items:center;gap:12px}
.profile-security-icon{display:grid;place-items:center;flex-shrink:0;width:38px;height:38px;background:#eaf2f4;border-radius:12px;color:#326d72}
.profile-security-heading p{font-size:.73rem;color:var(--muted);margin-top:4px;line-height:1.5}
.profile-security-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:15px;padding-top:12px;border-top:1px solid var(--line)}
.profile-security-actions button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:36px;padding:5px 0;border:0;background:transparent;font-size:.74rem;font-weight:600;color:var(--primary)}
.profile-security-actions button:first-child{color:var(--ink)}
.profile-security-actions button:hover{text-decoration:underline}
.profile-security-actions .icon{width:15px;height:15px}
.profile-security-actions button:first-child>.icon:last-child{display:none}
.profile-privacy-note{display:flex;align-items:flex-start;gap:8px;font-size:.7rem;line-height:1.6;color:var(--muted)}
.profile-privacy-note>.icon{width:15px;height:15px;margin-top:1px}
.profile-modal .modal-footer{padding:14px 30px;background:#fff}
.profile-modal .modal-footer .btn{min-height:38px;font-size:.8rem;border-radius:10px}
@media(max-width:560px){
 .modal.profile-modal{border-radius:20px}
 .profile-modal .modal-header{padding:20px 20px 16px}
 .profile-modal .modal-body{padding:0 20px 20px;gap:22px}
 .profile-identity{padding:18px}
 .profile-identity-main{align-items:flex-start;gap:16px}
 .profile-identity .large-avatar{width:64px;height:64px;border-radius:20px}
 .profile-identity-copy h3{font-size:1.13rem}
 .profile-identity-copy p{font-size:.73rem}
 .profile-identity-top{margin-bottom:20px}
 .profile-eyebrow{font-size:.56rem;letter-spacing:.1em}
 .profile-section-heading>span{font-size:.67rem}
 .profile-row-edit{display:none}
 .profile-detail-row{padding:14px 0;gap:10px}
 .profile-security-section{padding:16px}
 .profile-security-actions{align-items:stretch;flex-direction:column;gap:4px}
 .profile-security-actions button{justify-content:space-between;min-height:40px}
 .profile-security-actions button:first-child>.icon:first-child{display:none}
 .profile-security-actions button:first-child>.icon:last-child{display:block}
 .profile-modal .modal-footer{padding:12px 20px}
}

/* v0.3.0 — app adaptativo. Mantém reflow, zoom e foco acessíveis. */
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{overflow-x:clip}
button,input,select,textarea{touch-action:manipulation}
input,select,textarea{font-size:max(1rem,16px)}
.field{min-width:0}
img{max-width:100%}
.btn,.icon-button{min-height:44px}
.icon-button{min-width:44px}
.topbar .icon-button{width:44px;height:44px}
.preview-eye{position:absolute;right:14px;bottom:14px;color:#627795;display:flex}
.bottom-nav,.mobile-sidebar-close{display:none}

/* Uma tela, duas composições: o painel editorial desaparece em tablet/celular. */
.auth-view{background:#fff}
.login-page{height:100vh;height:100dvh;min-height:100svh;grid-template-columns:minmax(0,.98fr) minmax(360px,1.02fr);overflow:clip}
.login-brand{min-height:0;padding:clamp(26px,4vw,64px);background:#122344;isolation:isolate}
.login-brand-top{gap:14px;flex:none}
.login-logo{height:70px;width:70px;flex:none;box-shadow:0 0 0 8px #ffffff06}
.login-logo img{width:64px;height:64px;object-fit:contain}
.login-brand-top strong{font-size:1.85rem;font-weight:650;color:#fff}
.login-brand-top small{font-size:.72rem;letter-spacing:.12em;color:#c4d4ed}
.login-brand-copy{margin:auto 0;padding:30px 0;max-width:550px}
.login-kicker{font-size:.67rem;letter-spacing:.12em;color:#b0c4e6;gap:10px;flex-wrap:wrap}
.login-kicker span{height:3px;width:3px;background:#90b4ff;border-radius:50%}
.login-brand h1{font-size:clamp(2.25rem,3.7vw,4.3rem);line-height:1.1;letter-spacing:-.055em;font-weight:600;margin:24px 0}
.login-brand h1 em{color:#adceff}
.login-brand-copy>p{font-size:1rem;line-height:1.65;color:#c1d1ea;max-width:345px}
.login-editorial-card{display:flex;align-items:flex-start;gap:18px;border-top:1px solid #ffffff22;padding:25px 0 0;margin-top:38px;max-width:430px}
.editorial-mark{width:45px;height:45px;display:grid;place-items:center;border:1px solid #ffffff30;border-radius:13px;color:#b9d4ff;flex:none}
.editorial-mark .icon{height:22px;width:22px}
.login-editorial-card div>span{font-size:.66rem;letter-spacing:.11em;color:#9eb6da}
.login-editorial-card strong{display:block;font-size:1.13rem;font-weight:550;margin:4px 0 6px;color:#eef4ff}
.login-editorial-card p{font-size:.84rem;line-height:1.6;color:#a7bedf;max-width:285px}
.login-brand>footer{font-size:.63rem;letter-spacing:.1em;color:#bbcee9;gap:20px;flex-wrap:wrap}
.login-brand>footer span:last-child{letter-spacing:0}
.login-blueprint{position:absolute;inset:0;z-index:-1;background-image:linear-gradient(#fff 1px,transparent 1px),linear-gradient(90deg,#fff 1px,transparent 1px);background-size:80px 80px;opacity:.025;pointer-events:none;mask-image:linear-gradient(to bottom,transparent,#000)}
.login-orbit.orbit-one{width:620px;height:620px;bottom:-370px;right:-215px;border-color:#89b6ff26;box-shadow:0 0 0 56px #89b6ff08,0 0 0 112px #89b6ff04;z-index:-1}
.login-main{min-width:0;min-height:0;overflow-y:auto;overscroll-behavior:contain;display:flex;align-items:flex-start;justify-content:center;padding:clamp(20px,4vh,48px) clamp(24px,5vw,76px);scrollbar-width:thin;scrollbar-color:#cdd8e7 transparent;background:#fff}
.login-form-wrap{width:100%;max-width:440px;min-width:0;margin:auto 0;flex:0 1 440px}
.login-mobile-brand{display:none}
.auth-eyebrow-row{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.login-heading .eyebrow{font-size:.7rem;letter-spacing:.12em;margin:0;color:#5d7290;font-weight:650}
.auth-env{display:inline-flex;align-items:center;color:#875c12;background:#fff4d9;border-radius:20px;font-size:.64rem;letter-spacing:.04em;padding:4px 8px;font-weight:700}
.login-heading h2{font-size:clamp(1.8rem,2.35vw,2.55rem);font-weight:650;letter-spacing:-.055em;line-height:1.17;margin:0 0 11px;color:#172b4c}
.login-description{font-size:.94rem;color:#60718a;line-height:1.6;margin:0 0 27px}
.login-form{gap:15px}
.login-form .field{gap:7px;margin:0;font-size:.91rem;font-weight:600;color:#354c6c}
.login-form .field input{height:51px;min-height:51px;padding:12px 15px;font-size:1rem;font-weight:400;background:#fcfdff;border:1px solid #d8e1ed;border-radius:11px;transition:border-color .15s,box-shadow .15s;color:#243b5d}
.login-form .field input::placeholder{color:#71829a;opacity:1}
.login-form .password-field input{padding-right:56px}
.password-toggle{right:4px;bottom:4px;width:44px;height:44px;min-height:44px;border-radius:9px;color:#5c708b}
.login-link-row{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin:-5px 0 -3px;min-height:26px}
.login-link-row .text-link{font-size:.88rem;min-height:32px;color:#214ab1}
.caps-hint{font-size:.75rem;color:#986310;margin-right:auto;white-space:nowrap}
.captcha-widget{min-width:0;min-height:65px}
.captcha-widget iframe{max-width:100%}
.login-submit{width:100%;height:51px;min-height:48px;border-radius:11px;justify-content:space-between;font-size:1rem;padding:12px 18px;box-shadow:0 5px 12px #1f52cb1c;background:#2454c6}
.login-submit:hover:not(:disabled){background:#1b45ad;transform:none}
.login-submit[aria-busy=true]{justify-content:center}
.login-utilities{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:14px;flex-wrap:wrap}
.login-utilities>.text-link{font-size:.85rem;min-height:38px;display:inline-flex;align-items:center;gap:7px}
.login-utilities .icon{width:16px;height:16px}
.login-privacy{font-size:.73rem;color:#5c718d;line-height:1.5;margin:16px 0 0;gap:6px;justify-content:flex-start}
.login-privacy .icon{width:13px;height:13px}
.login-form-footer{margin-top:22px;padding-top:16px;gap:12px}
.login-form-footer .text-link,.login-form-footer>span{font-size:.76rem;color:#5f738f}
.login-form-footer .text-link{min-height:26px}
.login-form-footer b{font-weight:400;margin:0 5px}
.captcha-preview{display:flex;align-items:center;gap:12px;border:1px solid #dce4ef;background:#fafcfe;padding:10px 13px;min-height:65px;border-radius:9px;color:#4b6280;font-size:.84rem}
.captcha-preview>span:nth-child(2){flex:1}
.captcha-preview small{display:block;font-size:.7rem;color:#667a95;margin-top:2px}
.preview-check{border:1px solid #cddde9;border-radius:50%;width:24px;height:24px;display:grid;place-items:center;color:#336b59}
.preview-check .icon{width:16px;height:16px}
.demo-caption{font-size:.73rem;color:#786224}
.auth-pending,.auth-setup-note{display:flex;align-items:center;gap:10px;background:#fff8e9;color:#765315;font-size:.85rem;padding:11px 12px;border-radius:9px;line-height:1.55;min-height:65px}
.auth-pending{flex-wrap:wrap;margin-bottom:14px}
.auth-pending .text-link{font-size:.85rem}
.login-form .form-error{font-size:.83rem;padding:10px 12px;margin:0;line-height:1.5}
.role-tile{min-height:106px;padding:16px;gap:12px;border-radius:13px}
.role-tile strong{font-size:1rem;color:#29415f}
.role-tile small{font-size:.88rem;line-height:1.5;color:#5f738f}
.role-symbol{width:35px;height:35px;border-radius:10px;background:#edf3ff;color:#3f62ac}
.role-symbol .icon{width:20px;height:20px}
.role-tile>.icon{display:block}
.mfa-page{min-height:100svh;padding:max(20px,env(safe-area-inset-top)) 20px max(20px,env(safe-area-inset-bottom));overflow-y:auto}
.mfa-card{max-width:500px;padding:28px;border-radius:20px}
.mfa-card>p{color:#5c6e88;line-height:1.65}
.mfa-card .mfa-help{color:#596f8d}
.mfa-enroll{margin:12px 0}
.mfa-enroll>small{color:#7c5f29;font-size:.8rem;line-height:1.55}
.mfa-enroll img{height:170px;width:170px}
.mfa-card input[name=code]{letter-spacing:.32em;min-height:48px;font-size:1.6rem}
.install-heading{display:flex;gap:16px;align-items:center}
.install-heading img{width:58px;height:58px;object-fit:contain;flex:none}
.install-heading p{color:var(--muted);font-size:.94rem;margin-top:5px}
.install-steps{padding-left:22px;margin:0;color:#485f7d;line-height:1.8}
.install-steps li+li{margin-top:9px}
.install-tip{font-size:.9rem;color:#566f8f;background:#f3f7fc;padding:13px;border-radius:10px}
.install-tip strong{color:#344e72}
.pwa-update{position:fixed;right:18px;bottom:18px;z-index:90;max-width:min(430px,calc(100vw - 32px));display:flex;gap:10px;align-items:center;border:1px solid #bacde8;padding:12px 16px;background:#fff;box-shadow:0 8px 35px #17335d24;border-radius:14px;color:#365274}
.pwa-update span{font-size:.88rem;flex:1}
.pwa-update button{font-size:.85rem}
.network-state{position:fixed;top:8px;left:50%;transform:translateX(-50%);z-index:100;padding:8px 14px;border:1px solid #f4cc75;background:#fff5db;color:#725215;border-radius:20px;font-size:.83rem;box-shadow:0 4px 16px #15294b12;max-width:calc(100vw - 20px);text-align:center}

/* Compactação por altura sem reduzir o texto dos campos abaixo de 16px. */
@media(max-height:780px){
 .login-main{padding-top:20px;padding-bottom:20px}
 .login-description{margin-bottom:18px}
 .login-heading h2{font-size:2rem}
 .auth-eyebrow-row{margin-bottom:9px}
 .login-form{gap:11px}
 .login-form .field input{min-height:48px;height:48px}
 .login-submit{height:48px}
 .login-utilities{margin-top:9px}
 .login-privacy{margin-top:9px}
 .login-form-footer{margin-top:14px;padding-top:10px}
 .login-editorial-card{margin-top:26px;padding-top:20px}
 .login-brand-copy{padding:20px 0}
 .login-brand h1{font-size:clamp(2.3rem,3.5vw,3.7rem)}
}
@media(max-width:960px){
 .login-page{display:flex;justify-content:center;grid-template-columns:none;background:#f4f7fc}
 .login-brand{display:none}
 .login-main{width:100%;padding:max(22px,env(safe-area-inset-top)) max(26px,env(safe-area-inset-left)) max(20px,env(safe-area-inset-bottom)) max(26px,env(safe-area-inset-right));background:#fff}
 .login-form-wrap{max-width:440px}
 .login-mobile-brand{display:flex;gap:12px;align-items:center;margin-bottom:24px}
 .login-mobile-brand img{width:46px;height:46px;object-fit:contain;flex:none}
 .login-mobile-brand strong{display:block;font-size:1.4rem;letter-spacing:-.035em;line-height:1.15;font-weight:650;color:#1b3154}
 .login-mobile-brand small{font-size:.62rem;letter-spacing:.1em;color:#627b9b;display:block;margin-top:4px}
 .login-heading h2{font-size:2rem}
 .login-heading .eyebrow{font-size:.66rem}
 .login-description{font-size:.89rem}
 .login-privacy{font-size:.73rem}
 .login-link-row .text-link{font-size:.87rem}
}
@media(min-width:600px) and (max-width:960px) and (min-height:820px){
 .login-page{padding:32px;background:#f2f5fb}
 .login-main{align-self:center;height:auto;max-height:100%;max-width:540px;padding:40px 44px;border:1px solid #dee6f2;border-radius:24px;box-shadow:0 14px 55px #23457309}
}
@media(max-width:960px) and (max-height:740px){
 .login-main{padding-top:max(16px,env(safe-area-inset-top));padding-bottom:max(14px,env(safe-area-inset-bottom))}
 .login-mobile-brand{margin-bottom:16px}
 .login-mobile-brand img{height:40px;width:40px}
 .login-mobile-brand strong{font-size:1.25rem}
 .login-heading h2{font-size:1.75rem;margin-bottom:6px}
 .login-description{margin-bottom:15px;font-size:.86rem}
 .auth-eyebrow-row{margin-bottom:7px}
 .login-form{gap:10px}
 .login-form .field{gap:5px;font-size:.86rem}
 .login-privacy{margin-top:7px}
 .login-form-footer{margin-top:10px;padding-top:7px}
 .login-utilities{margin-top:7px}
 .login-utilities .text-link{min-height:34px;font-size:.8rem}
}
@media(max-height:620px){
 .login-main{padding-top:max(12px,env(safe-area-inset-top));padding-bottom:max(12px,env(safe-area-inset-bottom))}
 .login-mobile-brand{margin-bottom:12px}
 .login-mobile-brand img{height:34px;width:34px}
 .login-mobile-brand strong{font-size:1.2rem}
 .login-heading h2{font-size:1.65rem;margin-bottom:12px}
 .login-description,.login-heading .eyebrow,.login-privacy{display:none}
 .auth-eyebrow-row{position:absolute;right:25px;margin-top:-41px}
 .login-form{gap:8px}
 .login-form .field input{height:44px;min-height:44px}
 .password-toggle{bottom:0;right:2px}
 .login-submit{height:46px;min-height:44px}
 .login-utilities{margin-top:5px}
 .login-form-footer{margin-top:5px;padding-top:6px}
 .login-brand-copy>p{display:none}
 .login-editorial-card{margin-top:24px}
}
@media(max-height:460px){
 .login-main{padding-top:12px;padding-bottom:12px;overflow-y:auto}
 .login-page{overflow:visible;height:auto;min-height:100dvh;align-items:stretch}
 .login-main{min-height:100dvh}
 .login-mobile-brand{margin-bottom:8px}
 .login-brand h1{font-size:2rem}
 .login-editorial-card{display:none}
 .login-brand-copy{padding:12px 0}
 .login-brand{min-height:100dvh}
 .mfa-card{padding:20px}
}

/* A navegação rápida não compete com o conteúdo nem com modais. */
@media(max-width:1024px){
 .bottom-nav{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));position:fixed;inset:auto 0 0 0;z-index:24;background:#fffffff7;border-top:1px solid #dfe7f1;padding:5px max(4px,env(safe-area-inset-right)) max(5px,env(safe-area-inset-bottom)) max(4px,env(safe-area-inset-left));backdrop-filter:blur(12px)}
 .bottom-nav button{min-width:0;min-height:55px;display:flex;flex-direction:column;gap:3px;align-items:center;justify-content:center;padding:5px 0;background:none;border:0;border-radius:10px;color:#647794}
 .bottom-nav button span{font-size:.68rem;font-weight:650;line-height:1.25}
 .bottom-nav .icon{width:21px;height:21px}
 .bottom-nav button.active{background:#eef3ff;color:#2454c6}
 .main-shell #main-content{padding-bottom:calc(82px + env(safe-area-inset-bottom))}
 .app-footer{padding-bottom:10px}
 .sidebar{height:100vh;height:100dvh;width:min(320px,calc(100vw - 42px));overscroll-behavior:contain}
 .mobile-sidebar-close{display:flex;position:absolute;top:12px;right:7px;min-width:36px;width:36px;min-height:36px;height:36px;color:#d1dff4}
 .sidebar .brand{margin-top:24px;margin-right:30px}
 .sidebar .brand strong{font-size:1.25rem}
 .sidebar .brand small{font-size:.59rem}
 .sidebar .logo-wrap{width:42px;height:42px}
 .sidebar .logo-wrap img{width:37px;height:37px}
 .sidebar-profile{min-height:54px}
 .sidebar-profile strong{font-size:.93rem}
 .sidebar .nav-link{min-height:44px;font-size:.94rem}
 .sidebar-bottom{padding-bottom:max(14px,env(safe-area-inset-bottom))}
 .sidebar-open{overflow:hidden}
 .pwa-update{bottom:calc(82px + env(safe-area-inset-bottom));left:16px;right:16px;margin:auto}
 .toast-region{bottom:calc(82px + env(safe-area-inset-bottom));right:16px;left:16px;max-width:460px;width:auto;margin-left:auto}
 .topbar{padding-top:env(safe-area-inset-top);height:calc(68px + env(safe-area-inset-top))}
 .topbar-actions{gap:5px}
 .topbar-divider{display:none}
 .topbar-left{gap:7px}
 .page-header{gap:14px}
 .page-header h1{font-size:clamp(1.4rem,5.2vw,1.95rem)}
}
@media(max-width:600px){
 .modal{max-width:calc(100vw - 20px);max-height:calc(100dvh - 20px);width:calc(100vw - 20px);border-radius:17px;overscroll-behavior:contain}
 .modal-header{padding:16px 18px;gap:8px}
 .modal-header h2{font-size:1.25rem}
 .modal-header p{font-size:.86rem;line-height:1.5}
 .modal-body{padding:18px;gap:16px}
 .modal-footer{padding:12px 18px max(12px,env(safe-area-inset-bottom));gap:8px}
 .modal-footer .btn{min-height:46px;white-space:normal;font-size:.92rem}
 .role-grid{grid-template-columns:1fr}
 .role-tile{min-height:80px;padding:12px;align-items:center}
 .role-tile strong{margin-top:0}
 .role-tile small{margin-top:3px}
 .role-tile>.icon{margin:0}
 .topbar .search-trigger,.notification-trigger{display:none}
 .breadcrumb{font-size:.86rem;min-width:0}
 .breadcrumb strong{display:inline;white-space:nowrap;text-overflow:ellipsis;overflow:hidden;max-width:160px}
 .topbar-left{flex:1}
 .main-shell #main-content{padding-left:16px;padding-right:16px}
 .demo-banner{font-size:.79rem;padding:9px 16px;gap:8px}
 .demo-banner>div>span{line-height:1.5}
 .demo-banner button{font-size:.77rem;min-height:36px;flex:none}
 .session-bar{padding:9px 16px;font-size:.77rem;flex-wrap:wrap;gap:6px}
 .session-bar span{font-size:.7rem}
 .table-scroll{overscroll-behavior-inline:contain;scrollbar-width:thin}
 .btn-small{min-height:40px}
 .student-card .btn-small{min-height:44px}
 .mfa-card{padding:22px}
 .mfa-card .mfa-help{font-size:.82rem;line-height:1.6}
 .login-main{padding-left:max(22px,env(safe-area-inset-left));padding-right:max(22px,env(safe-area-inset-right))}
}
@media(max-width:360px){
 .login-main{padding-left:17px;padding-right:17px}
 .login-utilities{gap:6px}
 .login-utilities .text-link{font-size:.77rem}
 .login-form-footer{gap:5px}
 .login-heading h2{font-size:1.7rem}
 .topbar{padding-left:9px;padding-right:9px}
 .breadcrumb strong{max-width:124px}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
@media print{.bottom-nav,.pwa-update,.network-state,.install-control{display:none!important}}
/* Indicador de ambiente participa do fluxo; nunca cobre a identificação da escola. */
@media(max-height:620px){
 .auth-eyebrow-row{position:static;margin:0 0 8px;justify-content:flex-start}
 .auth-eyebrow-row:not(:has(.auth-env)){display:none}
 .auth-env{font-size:.6rem;padding:3px 7px}
}
/* Celular deitado: formulário de um lado, identificação e ajuda do outro. */
@media(min-width:600px) and (max-width:960px) and (max-height:500px){
 .login-page{height:100dvh;min-height:100dvh;overflow:clip}
 .login-main{height:100dvh;min-height:0;padding:14px 26px;overflow-y:auto}
 .login-form-wrap{display:grid;grid-template-columns:minmax(200px,.85fr) minmax(270px,1.15fr);column-gap:34px;row-gap:6px;max-width:820px;flex:1;margin:auto 0;align-items:start}
 .login-mobile-brand{grid-column:1;grid-row:1;margin-bottom:7px}
 .login-heading{grid-column:1;grid-row:2}
 .login-heading h2{font-size:1.6rem;max-width:230px;margin:0 0 6px}
 .login-heading .login-description{display:none}
 .login-form{grid-column:2;grid-row:1/6;gap:7px}
 .login-form .field{gap:4px;font-size:.8rem}
 .login-form .field input{min-height:44px;height:44px}
 .login-link-row{min-height:25px;margin:-3px 0}
 .login-link-row .text-link{min-height:25px;font-size:.8rem}
 .login-utilities{grid-column:1;grid-row:3;align-items:flex-start;flex-direction:column;gap:0;margin-top:2px}
 .login-utilities .text-link{min-height:30px;font-size:.78rem}
 .login-form-footer{grid-column:1;grid-row:4;flex-wrap:wrap;align-items:flex-start;margin-top:5px;padding-top:5px}
 .login-privacy{display:none}
 .auth-pending{grid-column:1/3;grid-row:1;position:relative}
 .captcha-preview{padding:7px 10px}
}

/* ========================================================================== */
/* v0.3.0 — LOGIN CMJ INTEGRA | conceito visual institucional + blade motion */
/* ========================================================================== */

/* CMJ Integra 0.3.2 — login em camadas independentes, sem recorte do formulário. */
body.auth-view{background:#fff}
.access-shell{--space:12px;--control:50px;position:relative;isolation:isolate;width:100%;height:100vh;height:100dvh;min-height:0;overflow:hidden;background:radial-gradient(ellipse at 100% 100%,#eaf4ff 0,transparent 50%),#fff;color:#102a58}
.access-shell button,.access-shell input,.access-shell select{font-family:inherit}.access-shell button{touch-action:manipulation}
.access-band{position:absolute;inset:0;z-index:0;clip-path:polygon(0 0,58% 0,48% 100%,0 100%);background:radial-gradient(ellipse at 45% 16%,#123f9280 0,transparent 52%),linear-gradient(125deg,#061438 0%,#082859 44%,#0a3898 100%);pointer-events:none}
.access-band:before{content:"";position:absolute;inset:0;background:linear-gradient(124deg,transparent 14%,#347eff0c 14% 29%,transparent 29% 69%,#2a65cd09 69%),radial-gradient(ellipse at 15% 100%,#1749ae99,transparent 48%)}
.access-band:after{content:"";position:absolute;left:-15%;bottom:-68%;width:65%;aspect-ratio:1;border:1px solid #8dadff13;border-radius:50%;box-shadow:0 0 0 58px #5988ff07,0 0 0 116px #5988ff04}
.access-edge{position:absolute;inset:0;z-index:1;pointer-events:none;clip-path:polygon(58% 0,58.4% 0,48.4% 100%,48% 100%);background:linear-gradient(180deg,#57b6ff20,#80d6ff 34%,#287aff 68%,#57b6ff00);filter:drop-shadow(0 0 13px #308aff)}
.access-shell[data-side=right] .access-band{clip-path:polygon(52% 0,100% 0,100% 100%,42% 100%)}.access-shell[data-side=right] .access-edge{clip-path:polygon(51.6% 0,52% 0,42% 100%,41.6% 100%)}
.access-shell[data-transition=cover] .access-band,.access-shell[data-transition=reveal] .access-band{z-index:20;will-change:clip-path}.access-shell[data-transition=cover] .access-edge,.access-shell[data-transition=reveal] .access-edge{opacity:0}
.access-hero{position:absolute;inset:0 auto 0 0;width:55%;height:100%;z-index:2;pointer-events:none;color:#fff;padding:clamp(26px,4.5vh,52px) clamp(24px,3.7vw,62px);overflow:hidden}
.access-shell[data-side=right] .access-hero{left:48%;width:52%;padding-left:5vw}
.access-brand{display:flex;align-items:center;gap:19px;position:relative;z-index:3}.access-brand>img{width:clamp(65px,6.7vw,100px);height:auto;border-radius:50%;background:#fff;box-shadow:0 0 0 1px #aec7ff55,0 10px 30px #030a2e36;flex:none}
.access-brand strong{display:block;font-weight:350;font-size:clamp(1.9rem,3.3vw,3.5rem);letter-spacing:-.06em;line-height:1.1;white-space:nowrap;color:#fff}.access-brand strong b{font-weight:750;letter-spacing:-.05em}
.access-brand small{font-size:clamp(.78rem,1vw,1rem);display:block;color:#d5e4ff;line-height:1.45}.access-brand-line{display:block;width:92px;height:3px;background:linear-gradient(90deg,#46c8ff,#2962ff);border-radius:5px;margin:12px 0;box-shadow:0 0 16px #235cf370}
.access-hero-copy{position:absolute;z-index:3;left:55%;top:30%;right:3%;max-width:250px}.access-overline{display:block;font-size:.6rem;letter-spacing:.15em;color:#b6d4fd;margin-bottom:13px}
.access-hero-copy h2{font-weight:450;letter-spacing:-.025em;line-height:1.3;font-size:clamp(1.05rem,1.55vw,1.55rem);color:#f1f7ff}.access-hero-copy em{font-style:normal;color:#80ccff;font-weight:600}.access-hero-copy p{font-family:Georgia,'Times New Roman',serif;font-style:italic;font-size:clamp(1rem,1.4vw,1.35rem);line-height:1.45;color:#99bdf1;margin:25px 0 0;transform:rotate(-5deg)}
.access-art{position:absolute;z-index:2;left:1.5vw;right:0;bottom:19px;height:calc(100% - 155px);pointer-events:none}.access-teacher{display:block;width:100%;height:100%;object-fit:contain;object-position:left bottom;filter:drop-shadow(0 18px 23px #00072524);mask-image:linear-gradient(90deg,transparent,#000 5%,#000 97%,transparent),linear-gradient(180deg,#000 93%,transparent 100%);mask-composite:intersect}
.access-shell[data-side=right] .access-art{left:1vw;right:1vw}.access-shell[data-side=right] .access-hero-copy{left:59%;right:3%;top:30%}
.access-hero-caption{position:absolute;bottom:21px;left:3.7vw;right:5.5vw;display:flex;align-items:center;gap:16px;z-index:4;color:#afc9f6;font-size:.69rem;letter-spacing:.02em}.access-hero-caption span{display:flex;align-items:center;gap:7px;white-space:nowrap}.access-hero-caption .icon{width:14px;height:14px;color:#86bcfa}
#main-content.access-main{position:relative;z-index:4;width:45%;height:100%;min-height:0;margin-left:55%;padding:clamp(18px,3vh,36px) clamp(24px,4.4vw,76px) clamp(16px,2.5vh,30px) clamp(22px,2.7vw,46px);display:flex;align-items:flex-start;justify-content:center;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:#ccdaf1 transparent}
.access-shell[data-side=right] #main-content.access-main{margin-left:0;width:45%;padding-left:clamp(24px,4vw,70px);padding-right:clamp(20px,2vw,36px)}
.access-content{width:100%;max-width:450px;min-width:0;flex:none;margin:auto 0}.access-topline{display:flex;align-items:center;justify-content:space-between;min-height:30px;margin-bottom:21px;gap:10px}.access-environment{font-size:.625rem;font-weight:750;letter-spacing:.055em;color:#855e17;background:#fff5dd;padding:4px 8px;border-radius:16px;white-space:nowrap;line-height:1.4}.access-environment:empty{visibility:hidden}
.access-protection{display:inline-flex;align-items:center;gap:6px;border:1px solid #d7e6f6;border-radius:8px;background:#f7fbff;padding:6px 9px;font-size:.7rem;font-weight:550;color:#285492;min-height:30px;white-space:nowrap}.access-protection .icon{width:15px;height:15px;color:#148459}
.access-heading{margin-bottom:24px}.access-welcome{font-size:1.1rem;font-weight:450;color:#214779;display:block;line-height:1.4;margin:0 0 3px}.access-heading h1{font-size:clamp(2.1rem,3.2vw,3rem);font-weight:400;letter-spacing:-.055em;line-height:1.15;color:#09265a;margin:0}.access-heading h1:focus{outline:none}.access-heading h1 b{font-weight:780;letter-spacing:-.055em}.access-heading h1 em{font-style:normal;color:#1559ed}.access-heading p{font-size:.93rem;line-height:1.55;color:#60799b;margin-top:10px}.access-shell[data-mode=login] .access-heading p{margin-top:7px;color:#47658e}
.access-form{display:flex;flex-direction:column;gap:var(--space);margin:0}.access-field{display:flex;flex-direction:column;gap:6px;margin:0;min-width:0}.access-label{font-size:.84rem;font-weight:600;line-height:1.35;color:#2b4670}
.access-input-wrap{position:relative;min-width:0;height:var(--control);display:flex;align-items:center;border:1px solid #cbdaf1;border-radius:11px;background:#ffffffeb;transition:border-color .18s,box-shadow .18s}.access-input-wrap:focus-within{border-color:#3977ed;box-shadow:0 0 0 4px #3778eb10}.access-input-wrap>input{display:block;flex:1;min-width:0;width:100%;height:100%;border:0;border-radius:11px;background:transparent;box-shadow:none!important;outline:none!important;font-size:1rem;font-weight:400;color:#183766;padding:0 14px 0 44px;line-height:normal}.access-input-wrap>input::placeholder{color:#6b83a5;opacity:1}.access-input-wrap:has(.access-eye)>input{padding-right:47px}
.access-input-symbol{position:absolute;left:14px;top:50%;transform:translateY(-50%);color:#5379b5;display:flex;pointer-events:none}.access-input-symbol .icon{width:18px;height:18px}.access-eye{position:absolute;right:4px;top:3px;bottom:3px;width:40px;padding:0;border:0;border-radius:8px;background:transparent;color:#5174a6;display:grid;place-items:center}.access-eye:hover{background:#eef4ff}.access-eye .icon{width:19px;height:19px}
.access-select{width:100%;min-height:var(--control);font-size:1rem;border:1px solid #cbdaf1;border-radius:11px;padding:8px 12px;color:#183766;background:#fff}.access-options{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px;min-height:30px;margin:-2px 0}.access-remember{display:flex;align-items:center;gap:7px;font-size:.79rem;color:#476289;white-space:nowrap;cursor:pointer;min-height:30px}.access-remember input{width:17px;height:17px;min-width:17px;margin:0;accent-color:#145bed;cursor:pointer}.access-link{border:0;background:none;padding:5px 0;color:#1558d2;font-size:.79rem;font-weight:600;line-height:1.4;text-decoration:none;min-height:30px}.access-link:hover{text-decoration:underline;text-underline-offset:3px}.access-caps{font-size:.78rem;color:#946013;line-height:1.4}
.access-verification{display:flex;align-items:center;flex-direction:column;gap:3px;min-width:0;width:100%}.access-captcha-slot{width:100%;max-width:100%;min-height:0;display:flex;justify-content:center;overflow:visible}.access-captcha-slot[data-test=true]{min-height:85px}.access-captcha{width:100%;min-width:0;text-align:center;display:flex;justify-content:center;align-items:center;flex-direction:column}.access-captcha iframe{max-width:none;border:0}.access-captcha-status{font-size:.68rem;color:#607597;text-align:center;line-height:1.4}.access-shell[data-test-captcha=true] .access-verification[data-verified=true] .access-captcha-status{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}.access-shell[data-test-captcha=true] .access-verification[data-verified=true]{gap:0}.access-captcha-retry{border:0;background:none;padding:3px;color:#164fac;font-size:.78rem;text-decoration:underline}
.access-primary{display:flex;align-items:center;justify-content:center;gap:12px;position:relative;height:50px;min-height:46px;width:100%;border:0;border-radius:12px;padding:12px 18px;background:linear-gradient(106deg,#0e52dc 0%,#185dff 65%,#3478ff 100%);box-shadow:0 7px 16px #1258df22;color:#fff;font-size:1rem;line-height:1.35;font-weight:650;transition:box-shadow .18s,filter .18s,transform .18s}.access-primary>.icon{position:absolute;right:17px;width:19px;height:19px}.access-primary:hover:not(:disabled){filter:brightness(1.05);box-shadow:0 9px 20px #1559e138;transform:translateY(-1px)}.access-primary:active:not(:disabled){transform:translateY(0)}
.access-divider{position:relative;display:flex;align-items:center;justify-content:center;height:32px;color:#6680a4;font-size:.74rem;gap:12px}.access-divider:before,.access-divider:after{content:"";height:1px;flex:1;background:#e0e8f5}.access-actions{display:grid;gap:9px}.access-action{display:grid;grid-template-columns:34px 1fr 17px;align-items:center;gap:11px;text-align:left;border:1px solid #d5e2f6;border-radius:11px;background:#ffffffd6;min-height:53px;padding:8px 12px;color:#124388;transition:border-color .18s,background .18s,transform .18s;min-width:0}.access-action:hover{border-color:#8baff0;background:#f4f8ff;transform:translateX(2px)}.access-action-icon{width:33px;height:33px;background:#eef4ff;border-radius:10px;display:grid;place-items:center;color:#1e64eb;flex:none}.access-action-icon .icon{width:18px;height:18px}.access-action>span:nth-child(2){min-width:0}.access-action strong{display:block;font-size:.88rem;line-height:1.3;font-weight:620;color:#16427d}.access-action small{display:block;font-size:.7rem;line-height:1.45;color:#647c9d;margin-top:2px}.access-action>.icon:last-child{width:16px;height:16px;color:#668bc4}
.access-footer{display:flex;justify-content:space-between;align-items:center;gap:9px;margin-top:19px;border-top:1px solid #e3ebf7;padding-top:12px;font-size:.69rem;line-height:1.4;color:#7183a1;min-height:31px}.access-footer>button{border:0;background:none;padding:4px 0;font-size:inherit;color:#516d95;min-height:24px}.access-footer>button:hover{text-decoration:underline}
.access-notice{padding:10px 12px;display:flex;align-items:center;flex-wrap:wrap;gap:8px;background:#fff5df;color:#825a20;border-radius:9px;font-size:.84rem;margin:0 0 12px;line-height:1.5}.access-notice button{border:0;background:none;color:#174abc;text-decoration:underline}.access-error{font-size:.84rem;line-height:1.5;color:#a72b3a;background:#fff2f3;border:1px solid #f2d4d8;padding:9px 12px;border-radius:9px;overflow-wrap:anywhere}
.access-start-options{display:grid;gap:14px;margin:26px 0}.access-start-options .access-action{min-height:90px;grid-template-columns:44px 1fr 18px;padding:16px;gap:14px}.access-start-options .access-action-icon{width:44px;height:44px;border-radius:13px}.access-start-options .access-action strong{font-size:1rem}.access-start-options .access-action small{font-size:.85rem;margin-top:5px}
.access-back{display:flex;align-items:center;justify-content:center;gap:10px;border:1px solid #cadaf4;border-radius:11px;background:#fff;color:#1a54bb;width:100%;min-height:46px;padding:10px;margin-top:22px;font-size:.9rem;font-weight:550}.access-back:hover{background:#f2f7ff}.access-back .icon{width:17px;height:17px}.access-alone{display:block;margin:12px auto 0;text-align:center;font-size:.84rem}.access-context-note{font-size:.76rem;line-height:1.65;color:#7285a3;display:flex;gap:9px;align-items:flex-start;margin-top:20px}.access-context-note .icon{width:16px;height:16px;margin-top:3px;flex:none;color:#507cbd}
@media(min-width:761px) and (max-height:840px){
 .access-shell{--space:9px;--control:46px}#main-content.access-main{padding-top:17px;padding-bottom:15px}.access-topline{margin-bottom:13px;min-height:27px}.access-heading{margin-bottom:17px}.access-welcome{font-size:1rem}.access-heading h1{font-size:2.4rem}.access-heading p{font-size:.85rem;margin-top:5px}.access-action{min-height:44px;padding:6px 10px;grid-template-columns:30px 1fr 16px}.access-action-icon{width:29px;height:29px;border-radius:8px}.access-actions{gap:6px}.access-actions .access-action small{display:none}.access-primary{height:46px}.access-divider{height:26px}.access-footer{margin-top:12px;padding-top:8px;min-height:28px}.access-hero{padding-top:25px}.access-brand>img{width:76px}.access-art{height:calc(100% - 125px)}.access-start-options{gap:10px;margin:20px 0}.access-start-options .access-action{min-height:78px;padding:13px}.access-start-options .access-action small{font-size:.8rem}.access-back{margin-top:16px}.access-context-note{margin-top:14px}
}
@media(min-width:761px) and (max-height:625px){
 .access-shell{--space:7px;--control:44px}#main-content.access-main{padding-top:12px;padding-bottom:10px}.access-topline{margin-bottom:7px;min-height:27px}.access-heading{margin-bottom:10px}.access-welcome{font-size:.89rem}.access-heading h1{font-size:2.2rem}.access-shell[data-mode=login] .access-heading p{display:none}.access-protection{padding:4px 7px;min-height:27px}.access-heading p{font-size:.83rem}.access-primary{height:44px;min-height:44px}.access-options{min-height:28px}.access-action{min-height:40px;padding:5px 9px;grid-template-columns:28px 1fr 15px}.access-action-icon{width:27px;height:27px}.access-action strong{font-size:.84rem}.access-divider{height:20px}.access-actions{gap:5px}.access-footer{margin-top:8px;padding-top:5px;font-size:.66rem;min-height:24px}.access-brand>img{width:68px}.access-brand strong{font-size:2.55rem}.access-brand-line{margin:9px 0;width:80px}.access-brand small{font-size:.8rem}.access-art{height:calc(100% - 129px);bottom:18px}.access-hero-copy p{margin-top:15px}.access-overline{font-size:.54rem}.access-hero-caption{bottom:14px;font-size:.63rem}.access-start-options{margin:16px 0;gap:9px}.access-start-options .access-action{min-height:72px}.access-context-note{margin-top:12px}
}
@media(min-width:761px) and (max-width:1100px){
 .access-hero{padding-left:24px;padding-right:12px}.access-brand{gap:13px}.access-brand>img{width:66px}.access-brand strong{font-size:2rem}.access-brand small{font-size:.74rem}.access-hero-copy{left:50%;right:7%;top:31%}.access-overline{display:none}.access-hero-copy h2{font-size:1.07rem}.access-hero-copy p{font-size:1rem}.access-shell[data-side=right] .access-hero{padding-left:35px}.access-shell[data-side=right] .access-hero-copy{left:57%;top:32%}#main-content.access-main{padding-left:17px;padding-right:19px}.access-shell[data-side=right] #main-content.access-main{padding-left:23px;padding-right:17px}.access-hero-caption{left:25px;right:45px}.access-heading h1{font-size:2.15rem}.access-options{gap:4px}.access-remember,.access-options .access-link{font-size:.72rem}.access-art{left:0;height:calc(100% - 157px)}
}
@media(max-width:760px), (max-width:1024px) and (orientation:portrait){
 .access-shell{--hero-height:200px;--space:10px;--control:48px;background:#062558}.access-band,.access-shell[data-side=right] .access-band{clip-path:none;inset:0 0 auto;height:var(--hero-height)}.access-edge{display:none}.access-hero,.access-shell[data-side=right] .access-hero{width:100%;height:var(--hero-height);left:0;top:0;padding:20px 25px 0}.access-brand{gap:12px}.access-brand>img{width:52px}.access-brand strong{font-size:1.8rem}.access-brand small{font-size:.72rem}.access-brand-line{width:58px;height:2px;margin:7px 0}.access-hero-copy,.access-shell[data-side=right] .access-hero-copy{left:25px;right:auto;top:108px;width:51%;max-width:245px}.access-overline,.access-hero-copy p{display:none}.access-hero-copy h2{font-size:1.05rem;line-height:1.36;letter-spacing:-.015em}.access-art,.access-shell[data-side=right] .access-art{left:auto;right:-3px;bottom:0;height:calc(var(--hero-height) - 62px);width:52%}.access-teacher{object-position:right bottom;mask-image:linear-gradient(180deg,#000 92%,transparent 100%)}.access-hero-caption{display:none}
 #main-content.access-main,.access-shell[data-side=right] #main-content.access-main{width:100%;margin-left:0;margin-top:calc(var(--hero-height) - 18px);height:calc(100% - var(--hero-height) + 18px);padding:19px max(20px,env(safe-area-inset-right)) max(12px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left));background:#fff;border-radius:24px 24px 0 0;min-height:0}.access-content{max-width:450px;margin:0 auto}.access-topline{margin-bottom:10px;min-height:25px}.access-environment{font-size:.55rem;padding:3px 7px}.access-protection{font-size:.65rem;min-height:26px;padding:4px 7px}.access-heading{margin-bottom:15px}.access-welcome{font-size:.9rem}.access-heading h1{font-size:2rem}.access-heading p{font-size:.85rem;margin-top:7px}.access-shell[data-mode=login] .access-heading p{display:none}.access-options{min-height:28px}.access-remember,.access-options .access-link{font-size:.75rem}.access-primary{height:46px;min-height:44px}.access-actions{gap:7px}.access-action{min-height:43px;padding:6px 10px;grid-template-columns:28px 1fr 16px;gap:9px}.access-action-icon{width:28px;height:28px;border-radius:8px}.access-action strong{font-size:.84rem}.access-actions .access-action small{display:none}.access-divider{height:23px}.access-footer{margin-top:12px;padding-top:7px;font-size:.67rem;min-height:25px}.access-captcha-status{font-size:.65rem}.access-shell:not([data-mode=login]){--hero-height:155px}.access-shell:not([data-mode=login]) .access-hero-copy{top:86px}.access-shell:not([data-mode=login]) .access-hero-copy h2{font-size:.83rem}.access-shell:not([data-mode=login]) .access-art{height:100px}.access-start-options{margin:20px 0;gap:11px}.access-start-options .access-action{min-height:90px}
}
@media(max-width:760px) and (max-height:830px){
 .access-shell{--hero-height:155px;--control:46px;--space:8px}.access-hero,.access-shell[data-side=right] .access-hero{padding-top:14px}.access-brand>img{width:45px}.access-brand strong{font-size:1.62rem}.access-brand small{font-size:.64rem}.access-brand-line{margin:5px 0}.access-hero-copy{top:83px}.access-hero-copy h2{font-size:.88rem}.access-art{height:105px}#main-content.access-main{padding-top:14px}.access-topline{margin-bottom:7px}.access-heading{margin-bottom:12px}.access-welcome{font-size:.84rem}.access-heading h1{font-size:1.85rem}.access-actions{gap:5px}.access-action{min-height:41px}.access-footer{margin-top:9px}
}
@media(max-width:760px) and (max-height:720px){
 .access-shell{--hero-height:105px;--control:44px;--space:7px}.access-hero-copy,.access-shell[data-side=right] .access-hero-copy{display:none}.access-brand>img{width:42px}.access-brand strong{font-size:1.55rem}.access-brand small{font-size:.62rem}.access-art,.access-shell[data-side=right] .access-art{height:92px;width:135px;right:-4px}#main-content.access-main,.access-shell[data-side=right] #main-content.access-main{padding:12px 16px 10px;border-radius:20px 20px 0 0}.access-topline{margin-bottom:5px;min-height:25px}.access-heading{margin-bottom:10px}.access-welcome{font-size:.8rem}.access-heading h1{font-size:1.7rem}.access-shell[data-mode=login] .access-actions{grid-template-columns:1fr 1fr;gap:6px}.access-shell[data-mode=login] .access-actions .access-action{grid-template-columns:22px 1fr;gap:5px;min-height:43px;padding:5px 7px}.access-shell[data-mode=login] .access-actions .access-action>.icon:last-child{display:none}.access-shell[data-mode=login] .access-actions .access-action-icon{width:23px;height:26px;background:none}.access-shell[data-mode=login] .access-actions .access-action strong{font-size:.75rem;line-height:1.3}.access-shell[data-mode=login] .access-actions .install-control{grid-column:1/-1;min-height:38px;grid-template-columns:23px 1fr;justify-items:start}.access-shell:not([data-mode=login]){--hero-height:105px}.access-start-options .access-action{min-height:78px;padding:12px}.access-start-options{margin:16px 0;gap:9px}.access-context-note{margin-top:12px}.access-back{margin-top:14px}
}
@media(max-width:360px){#main-content.access-main,.access-shell[data-side=right] #main-content.access-main{padding-left:10px;padding-right:10px}.access-brand{gap:8px}.access-hero{padding-left:15px}.access-brand strong{font-size:1.42rem}.access-remember,.access-options .access-link{font-size:.69rem}.access-remember{gap:5px}.access-remember input{width:16px;height:16px;min-width:16px}.access-shell[data-mode=login] .access-actions .access-action strong{font-size:.72rem}}
@media(max-width:760px) and (max-height:600px){
 .access-shell{--hero-height:73px;--control:42px;--space:6px}.access-hero,.access-shell[data-side=right] .access-hero{padding-top:9px}.access-brand>img{width:37px}.access-brand strong{font-size:1.38rem}.access-brand small{display:none}.access-brand-line{margin:6px 0 0;height:2px}.access-art,.access-shell[data-side=right] .access-art{height:66px;width:91px;right:13px}#main-content.access-main,.access-shell[data-side=right] #main-content.access-main{padding-top:9px}.access-topline{margin-bottom:5px;min-height:23px}.access-protection{min-height:23px;padding:3px 6px}.access-heading{margin-bottom:9px}.access-shell[data-mode=login] .access-welcome{display:none}.access-heading h1{font-size:1.55rem}.access-options{min-height:26px}.access-primary{height:43px;min-height:43px}.access-divider{height:18px}.access-footer{margin-top:7px;padding-top:4px;min-height:23px}.access-captcha-status{font-size:.61rem}.access-shell:not([data-mode=login]){--hero-height:73px}
}
@media(min-width:761px) and (max-height:470px){
 .access-shell{--space:6px;--control:43px}.access-hero{width:36%;padding:18px}.access-brand>img{width:44px}.access-brand strong{font-size:1.45rem}.access-brand{gap:10px}.access-brand small{font-size:.65rem}.access-brand-line{margin:6px 0;height:2px}.access-hero-copy{display:none}.access-art{height:calc(100% - 110px);left:0}.access-band{clip-path:polygon(0 0,36% 0,30% 100%,0 100%)}.access-edge{display:none}#main-content.access-main{width:66%;margin-left:34%;padding:8px 18px 5px}.access-content{max-width:570px}.access-topline{margin-bottom:5px}.access-shell[data-mode=login] #access-screen{display:grid;grid-template-columns:minmax(130px,1fr) minmax(300px,1.5fr);column-gap:12px;align-items:start}.access-shell[data-mode=login] .access-heading{grid-column:1;grid-row:1;margin:0 0 10px}.access-heading h1{font-size:1.7rem}.access-welcome{font-size:.8rem}.access-shell[data-mode=login] .access-form{grid-column:2;grid-row:1/4}.access-shell[data-mode=login] .access-actions{grid-column:1;grid-row:2}.access-shell[data-mode=login] .access-divider{display:none}.access-options{flex-wrap:wrap;gap:0;min-height:36px}.access-options .access-link{min-height:23px}.access-remember{min-height:24px}.access-actions .access-action{grid-template-columns:23px 1fr;gap:5px;padding:6px;min-height:43px}.access-actions .access-action>.icon:last-child{display:none}.access-actions .access-action strong{font-size:.74rem}.access-actions .access-action-icon{width:23px;height:23px;background:none}.access-shell[data-side=right] #main-content.access-main{width:62%;padding:12px 20px}.access-shell[data-side=right] .access-hero{width:38%;left:62%;padding:20px}.access-shell[data-side=right] .access-band{clip-path:polygon(63% 0,100% 0,100% 100%,57% 100%)}.access-start-options .access-action{min-height:67px}.access-start-options{gap:7px;margin:12px 0}.access-back{margin-top:12px}.access-context-note{margin-top:10px}
}
@media(prefers-reduced-motion:reduce){.access-shell *,.access-shell *:before,.access-shell *:after{animation:none!important;transition:none!important;scroll-behavior:auto!important}}
@media(min-width:761px) and (max-width:1024px) and (orientation:portrait){
 .access-shell{--hero-height:310px}.access-hero,.access-shell[data-side=right] .access-hero{padding:30px 40px 0}.access-brand>img{width:68px}.access-brand strong{font-size:2.45rem}.access-brand small{font-size:.85rem}.access-hero-copy,.access-shell[data-side=right] .access-hero-copy{left:40px;top:152px;width:47%;max-width:320px}.access-hero-copy h2{font-size:1.45rem;line-height:1.4}.access-hero-copy p{display:none}.access-art,.access-shell[data-side=right] .access-art{right:35px;width:49%;height:247px;bottom:0}#main-content.access-main,.access-shell[data-side=right] #main-content.access-main{padding:26px 40px 24px}.access-content{max-width:460px;margin:auto}.access-shell:not([data-mode=login]){--hero-height:245px}.access-shell:not([data-mode=login]) .access-art{height:187px}.access-shell:not([data-mode=login]) .access-hero-copy{top:138px}.access-shell:not([data-mode=login]) .access-hero-copy h2{font-size:1.12rem}
}
@media(max-width:760px){.access-start-options{margin:16px 0;gap:10px}.access-start-options .access-action{grid-template-columns:36px 1fr 16px;gap:10px;padding:12px;min-height:78px}.access-start-options .access-action-icon{width:36px;height:36px}.access-start-options .access-action strong{font-size:.92rem}.access-start-options .access-action small{font-size:.78rem;line-height:1.4}}
@media(max-width:760px) and (max-height:600px){.access-start-options{margin:12px 0;gap:8px}.access-start-options .access-action{min-height:55px;padding:8px 10px}.access-start-options .access-action small{display:none}.access-context-note{font-size:.72rem;line-height:1.5;margin-top:10px}}
@media(max-width:760px) and (max-height:720px){.access-shell[data-mode=start] .access-heading p{font-size:.8rem;line-height:1.4}.access-shell[data-mode=start] .access-start-options .access-action{padding:9px 10px;min-height:68px}.access-shell[data-mode=start] .access-back{margin-top:11px}.access-shell[data-mode=start] .access-context-note{margin-top:10px;line-height:1.4}.access-shell:not([data-mode=login]){--hero-height:73px}.access-shell:not([data-mode=login]) .access-hero{padding-top:9px}.access-shell:not([data-mode=login]) .access-brand>img{width:37px}.access-shell:not([data-mode=login]) .access-brand strong{font-size:1.38rem}.access-shell:not([data-mode=login]) .access-brand small{display:none}.access-shell:not([data-mode=login]) .access-brand-line{margin:6px 0 0;height:2px}.access-shell:not([data-mode=login]) .access-art{height:66px;width:91px;right:13px}}
@media(max-width:760px) and (max-height:600px){.access-shell:not([data-mode=login]) .access-heading p{font-size:.78rem;line-height:1.4;margin-top:6px}.access-shell:not([data-mode=login]) .access-back{margin-top:10px;min-height:42px;padding:8px}.access-alone{margin-top:7px;font-size:.78rem;min-height:28px}.access-field{gap:4px}.access-label{font-size:.8rem}}

/* Organização acadêmica: estilos locais, sem alterar login, MFA ou diário legado. */
.academic-setup{max-width:1440px;margin:0 auto}.academic-setup p{overflow-wrap:anywhere}.academic-scope{display:flex;gap:12px;padding:15px 18px;border:1px solid #dce6f1;border-left:3px solid var(--primary);background:#f0f5fc;border-radius:9px;margin-bottom:24px;color:var(--ink)}.academic-scope>span{display:flex;gap:5px;flex-direction:column}.academic-scope>span>span{font-size:.92rem;color:var(--muted)}.academic-scope>.icon{margin-top:3px}.academic-overview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin:0 0 26px}.academic-overview article{border:1px solid var(--line);background:var(--white);padding:18px 22px;border-radius:12px;display:flex;flex-direction:column;gap:2px}.academic-overview article>span{color:var(--muted);font-size:.92rem}.academic-overview strong{font-size:2.1rem;line-height:1.3;letter-spacing:-.06em}.academic-overview small{color:var(--muted);font-size:.85rem}.academic-toolbar{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-bottom:22px;flex-wrap:wrap}.academic-tabs{display:flex;gap:4px;flex-wrap:wrap;border-bottom:1px solid var(--line)}.academic-tabs button{background:none;border:0;border-bottom:3px solid transparent;padding:12px 14px;color:var(--muted);font-weight:650;font-size:.95rem}.academic-tabs .selected{color:var(--primary);border-bottom-color:var(--primary)}.academic-year-filter{display:flex;align-items:end;gap:10px}.academic-year-filter .field{margin:0;min-width:140px}.academic-year-filter .field>span{font-size:.8rem}.academic-year-filter select{min-height:41px}.academic-year-filter>.btn{margin-bottom:1px}.academic-matrix-grid,.academic-stage-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.academic-matrix-card{padding:23px;display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-width:0}.academic-matrix-top{display:flex;align-items:center;justify-content:space-between;width:100%;margin-bottom:6px}.academic-version{font-size:.8rem;color:var(--muted);font-weight:750;letter-spacing:.08em;border:1px solid var(--line);border-radius:5px;padding:4px 8px}.academic-matrix-card>small{font-size:.84rem;color:var(--muted)}.academic-matrix-card h2{font-size:1.3rem;overflow-wrap:anywhere}.academic-matrix-date{display:flex;align-items:center;gap:7px;font-size:.87rem;margin-top:5px;color:var(--muted)}.academic-matrix-date .icon{width:16px;height:16px}.academic-matrix-card>.muted{font-size:.85rem}.academic-card-actions{display:flex;flex-wrap:wrap;align-items:center;gap:12px;width:100%;padding-top:18px;margin-top:auto}.academic-card-actions .text-button{font-size:.85rem}.academic-next{padding:22px 0;color:var(--muted);max-width:980px;margin-top:12px}.academic-next>div{display:flex;align-items:center;gap:8px;margin-bottom:6px}.academic-next>p{font-size:.9rem}.academic-stage-card{padding:22px;min-width:0}.academic-stage-card header{display:flex;justify-content:space-between;gap:15px;margin-bottom:16px}.academic-stage-card header small{font-size:.8rem;color:var(--muted)}.academic-stage-card h2{font-size:1.2rem;overflow-wrap:anywhere}.academic-grade-list{display:flex;flex-direction:column;gap:6px}.academic-grade-list>button{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid var(--line);background:var(--canvas);border-radius:7px;padding:11px 12px;text-align:left}.academic-grade-list>button>span{overflow-wrap:anywhere;min-width:0}.academic-grade-list .icon{height:16px;width:16px}.academic-section-heading{margin:8px 0 20px}.academic-section-heading p{font-size:.9rem;color:var(--muted);margin-top:6px}.academic-heading-actions{display:flex;justify-content:space-between;align-items:start;gap:16px}.academic-wizard{display:flex;gap:10px;border-bottom:1px solid var(--line);padding-bottom:18px;margin-bottom:22px}.academic-wizard button{flex:1;background:none;border:0;color:var(--muted);display:flex;align-items:center;gap:9px;text-align:left;font-size:.86rem;font-weight:650}.academic-wizard button>span{height:28px;width:28px;background:var(--canvas);border:1px solid var(--line);display:inline-flex;align-items:center;justify-content:center;border-radius:50%;flex-shrink:0}.academic-wizard .current{color:var(--primary)}.academic-wizard .current>span{background:var(--primary);border-color:var(--primary);color:#fff}.academic-wizard-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:26px;padding-top:18px;border-top:1px solid var(--line)}.academic-wizard-footer>span{font-size:.82rem;color:var(--muted)}.academic-subsection{margin:22px 0 0;padding-top:18px;border-top:1px solid var(--line)}.academic-subsection>h3{margin-bottom:16px;font-size:1.02rem}.academic-hour-preview{color:var(--muted);font-size:.85rem;margin:8px 0}.academic-item{display:flex;align-items:start;gap:12px;padding:16px 0;border-bottom:1px solid var(--line)}.academic-item-order{font-size:.8rem;font-weight:750;color:var(--primary);background:#edf2ff;padding:4px 8px;border-radius:5px;margin-top:6px}.academic-item-copy{flex:1;min-width:0}.academic-item-copy h3{font-size:1.05rem;overflow-wrap:anywhere}.academic-item-copy p,.academic-item-copy small{font-size:.83rem;color:var(--muted);overflow-wrap:anywhere}.academic-item-copy>small:first-child{font-size:.73rem;letter-spacing:.04em}.academic-item-actions{display:flex;gap:2px}.academic-item-actions>.icon-button{width:32px;height:32px}.academic-total{border:1px solid var(--line);padding:17px 20px;border-radius:10px;margin-bottom:18px;display:flex;flex-direction:column;gap:3px;background:var(--canvas)}.academic-total>span,.academic-total>small{font-size:.85rem;color:var(--muted)}.academic-total strong{font-size:1.8rem;letter-spacing:-.05em}.academic-review{border:1px solid #e9d3a5;border-radius:9px;padding:16px;margin:16px 0;background:#fffcf5}.academic-review.is-complete{border-color:#c6e2d9;background:#f5faf7}.academic-review-title{display:flex;align-items:start;gap:10px}.academic-review-title>.icon{margin-top:3px}.academic-review h3{font-size:1rem}.academic-review p{font-size:.86rem;color:var(--muted);margin-top:4px}.academic-review ul{padding-left:23px;margin:12px 0 0;font-size:.87rem}.academic-review li{margin:6px 0;overflow-wrap:anywhere}.academic-detail-top{display:flex;gap:14px;align-items:center;flex-wrap:wrap;margin-bottom:18px}.academic-detail-top>p{font-size:.86rem;color:var(--muted)}.academic-policy{padding:14px 0;border-bottom:1px solid var(--line);overflow-wrap:anywhere}.academic-policy p,.academic-policy small{color:var(--muted);font-size:.85rem}.academic-policy dl>div{display:flex;gap:12px;font-size:.86rem}.academic-policy dd{margin:0}.academic-history{display:flex;flex-direction:column;gap:16px}.academic-history article{border-left:2px solid var(--line);padding-left:14px;display:flex;flex-direction:column;gap:3px}.academic-history small,.academic-history p{font-size:.83rem;color:var(--muted);overflow-wrap:anywhere}
@media(min-width:1600px){.academic-matrix-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){.academic-matrix-grid,.academic-stage-grid{grid-template-columns:1fr}.academic-heading-actions{flex-wrap:wrap}.academic-toolbar{align-items:stretch}.academic-year-filter{flex:1}.academic-year-filter .field{flex:1;min-width:0}.academic-year-filter .btn{flex-shrink:0}}
@media(max-width:560px){.academic-overview{gap:7px;margin-bottom:18px}.academic-overview article{padding:12px 10px;border-radius:8px}.academic-overview article>span{font-size:.75rem}.academic-overview small{font-size:.69rem}.academic-overview strong{font-size:1.7rem}.academic-matrix-card{padding:18px}.academic-scope{padding:12px;gap:9px}.academic-scope>span>span{font-size:.8rem}.academic-scope strong{font-size:.87rem}.academic-tabs{width:100%}.academic-tabs button{font-size:.84rem;padding:10px}.academic-wizard{gap:5px}.academic-wizard button{font-size:.73rem;flex-direction:column;align-items:flex-start;padding:0;gap:5px}.academic-item-actions{flex-direction:column}.academic-item{gap:8px}.academic-item-copy h3{font-size:.96rem}.academic-item-order{font-size:.7rem;padding:4px}.academic-wizard-footer{gap:6px}.academic-wizard-footer .btn{font-size:.8rem;padding:8px 10px}.academic-wizard-footer>span{font-size:.72rem}.academic-next p{font-size:.84rem}.academic-year-filter .btn{font-size:.82rem;padding:8px}.academic-stage-card{padding:17px}.academic-setup .page-actions>.btn{white-space:normal}}

/* Estado explícito de instalação: legível inclusive no celular. */
.academic-readiness { max-width: 850px; }
.academic-readiness code { overflow-wrap: anywhere; white-space: normal; }
.academic-schema-summary { display: flex; flex-wrap: wrap; gap: 16px 40px; margin: 20px 0; }
.academic-schema-summary dt { font-size: .8rem; color: var(--text-secondary, #526174); }
.academic-schema-summary dd { margin: 4px 0 0; font-weight: 700; }
.class-organization { display: grid; gap: 24px; min-width: 0; }
.class-organization .panel { min-width: 0; overflow: hidden; }
.class-organization table { width: 100%; border-collapse: collapse; }
.class-organization th, .class-organization td { padding: 16px 20px; text-align: left; vertical-align: top; border-bottom: 1px solid var(--border, #e1e7ef); }
.class-organization caption { text-align: left; padding: 20px; font-weight: 700; }
.class-organization .panel-header { padding: 20px; }
.org-line { display: block; margin-top: 4px; }
.org-actions { display: flex; flex-wrap: wrap; gap: 12px; align-items: center; }
.org-heading { display: flex; justify-content: space-between; gap: 20px; flex-wrap: wrap; }
.org-heading p, .org-note { color: var(--muted, #576b85); }
.org-note { padding: 0 20px; font-size: 13px; }
.org-offer-filter { max-width: 720px; }
@media (max-width: 600px) {
 .class-organization th, .class-organization td { padding: 12px; min-width: 140px; }
 .class-organization .table-scroll { overflow-x: auto; }
 .org-actions { align-items: flex-start; }
}
/* Calendário operacional: dias compactos, horários e sessões em tabelas. */
.academic-calendar { display:grid; gap:20px; min-width:0; }
.calendar-filters { margin:0; }
.calendar-choices { display:flex; flex-wrap:wrap; gap:12px 20px; border:1px solid var(--border, #ddd); border-radius:8px; padding:16px; margin:12px 0; }
.calendar-choices label { display:flex; align-items:center; gap:6px; }
.calendar-totals { display:flex; flex-wrap:wrap; gap:20px 32px; padding:0 24px; }
.calendar-totals > div { flex:1 1 150px; }
.calendar-totals dt { font-size:13px; color:var(--text-muted, #666); }
.calendar-totals dd { margin:4px 0 0; font-size:22px; font-weight:700; }
.calendar-days { display:grid; grid-template-columns:repeat(auto-fit,minmax(140px,1fr)); gap:1px; padding:0 20px 20px; }
.calendar-day { display:flex; flex-direction:column; align-items:flex-start; gap:5px; padding:12px; border-bottom:1px solid var(--border, #ddd); }
.calendar-day span { font-size:12px; color:var(--text-muted, #666); }
.calendar-day strong { font-size:13px; }
.calendar-day.is-school-day { border-left:3px solid var(--primary, #176b5b); }
@media(max-width:600px) { .calendar-totals { gap:16px; padding:0 16px; } .calendar-totals > div { flex-basis:110px; } .calendar-days { padding:0 8px 12px; grid-template-columns:repeat(2,minmax(0,1fr)); } }
.curricular-diary{display:grid;gap:20px;min-width:0}
.academic-closing{display:grid;gap:20px;min-width:0}
.academic-closing .panel{min-width:0;overflow:hidden}
.academic-closing table{min-width:850px}
.closing-filters,.closing-summary{padding:20px 24px}
.closing-summary h3{margin-bottom:10px}
.closing-summary p{margin:8px 0}
.closing-summary .org-actions{margin-top:14px}
.closing-instruments{display:grid;gap:12px;margin:16px 0 24px}
.closing-instruments>div{display:flex;justify-content:space-between;gap:20px;align-items:center;border-bottom:1px solid var(--line);padding:12px 0}
.closing-instruments>div>.field{max-width:150px}
.closing-pending{max-width:330px;margin:0 0 6px;color:var(--muted)}
@media(max-width:600px){.closing-filters{grid-template-columns:1fr}.closing-filters,.closing-summary{padding:16px}.academic-closing .panel-header{flex-wrap:wrap}.closing-instruments>div{flex-wrap:wrap}}
.diary-filters{align-items:end}
.diary-record-picker{padding:20px 24px 0}
.diary-record-heading{display:flex;justify-content:space-between;align-items:start;flex-wrap:wrap;gap:16px;padding:20px 24px}
.diary-record-heading>div:first-child{flex:1;min-width:200px}
.diary-record-heading h3{margin:0 0 8px}
.diary-record-heading p{margin:6px 0}
.diary-prose{white-space:pre-wrap;overflow-wrap:anywhere}
.curricular-diary .table-scroll table{min-width:680px}
.curricular-attendance{min-width:820px}
.curricular-attendance select{min-width:155px}
.curricular-attendance input[type=number]{width:100px}
.curricular-attendance input[type=text]{min-width:180px}
@media(max-width:600px){.diary-record-picker,.diary-record-heading{padding:16px}.diary-filters{grid-template-columns:1fr}.diary-record-heading>div:first-child{min-width:0;flex-basis:100%}}
.annual-review{display:grid;gap:24px;min-width:0}
.annual-review>.panel{min-width:0}
.annual-table{min-width:900px}
.annual-table th,.annual-table td{min-width:145px}
.annual-table th{white-space:normal}
.annual-table th .org-line{font-size:.75rem;font-weight:400}
.annual-table th:first-child,.annual-table td:first-child{min-width:170px}
.annual-table th:nth-last-child(2),.annual-table td:nth-last-child(2){min-width:240px}
@media(max-width:640px){.annual-review .panel-header{align-items:flex-start;flex-wrap:wrap}}
