:root{font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#21344d;background:#f3f6fb;--line:#e3e9f2;--blue:#1777bc}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer;border:1px solid var(--line);background:white;color:inherit;border-radius:8px;padding:10px 14px;font-size:14px;font-weight:600}button:hover{background:#edf3ff}button:focus-visible,a:focus-visible{outline:3px solid #70c0ec;outline-offset:2px}.primary{background:var(--blue);color:white;border-color:var(--blue)}.primary:hover{background:#116cae}button:disabled{opacity:.6;cursor:wait}[hidden]{display:none!important}a{color:inherit;text-decoration:none}.brand{display:flex;align-items:center;gap:10px;min-height:80px;font-size:30px;font-weight:850;letter-spacing:-1.5px}.brand small{display:block;font-size:11px;letter-spacing:3px;font-weight:600;margin-top:2px}.mark{font-size:49px;font-weight:400;color:var(--blue)}#sidebar{width:244px;position:fixed;inset:0 auto 0 0;background:#f8fafc;border-right:1px solid var(--line);display:flex;flex-direction:column;padding:20px 14px;z-index:30}nav{flex:1;overflow-y:auto;margin-top:16px}nav h2{font-size:10px;text-transform:uppercase;letter-spacing:1.6px;color:#8490a2;margin:24px 12px 8px}nav a{font-size:13px;display:block;padding:11px 12px;border-radius:8px;margin:2px 0;line-height:1.35}nav a:hover{background:#e9eff8}nav .active{background:#e8edf3;font-weight:650}#signout{border:0;border-top:1px solid var(--line);border-radius:0;background:transparent;color:#6c7d94;text-align:left;margin-top:15px;font-size:12px}.workspace{margin-left:244px;min-height:100dvh;display:flex;flex-direction:column}header{height:76px;background:white;border-bottom:1px solid var(--line);display:flex;align-items:center;padding:0 28px;gap:16px;position:sticky;top:0;z-index:10}header small{display:block;font-size:12px;color:#77849c;margin-top:4px}#menu{border:0;font-size:20px}#mode{margin-left:auto}.badge{font-size:11px;padding:6px 10px;background:#eef4ff;color:var(--blue);border-radius:5px}main{padding:28px;width:100%;max-width:1600px;margin:auto;flex:1;min-width:0}.heading{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:24px}.heading h1{font-size:24px;letter-spacing:-.6px;margin:0}.subtitle,.muted{color:#748199;font-size:14px;line-height:1.6}.subtitle{margin:7px 0 0}h2{font-size:16px}h3{font-size:14px}.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin-bottom:24px}.card{background:white;border:1px solid var(--line);border-radius:12px;padding:20px;min-width:0}.stat strong{display:block;font-size:27px;margin:12px 0}.stat span{font-size:13px;color:#748199}.grid,.report-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}.module-card{display:block;text-align:left;line-height:1.6}.module-card strong{display:block;font-size:15px}.module-card span{font-size:13px;color:#748199;display:block;margin-top:5px}.note{background:#edf3ff;color:#486185;border-radius:8px;padding:13px;font-size:13px;line-height:1.6;margin-bottom:20px}.toolbar{display:flex;gap:10px;flex-wrap:wrap;margin-bottom:18px}.toolbar input{flex:1;min-width:0}.fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}label{font-size:13px;font-weight:600;display:flex;flex-direction:column;gap:8px;min-width:0}input,select,textarea{border:1px solid #dce3ed;border-radius:8px;padding:11px 12px;background:white;color:#21344d;font-size:14px;min-width:0;width:100%;max-width:100%}input:focus,textarea:focus,select:focus{outline:2px solid #9ebcff;border-color:var(--blue)}textarea{min-height:115px;resize:vertical}.wide{grid-column:1/-1}.form-footer{display:flex;justify-content:flex-end;gap:10px;margin-top:24px}.table-wrap{background:white;border:1px solid var(--line);border-radius:10px;max-width:100%;overflow-wrap:anywhere}table{width:100%;border-collapse:collapse;font-size:13px;table-layout:fixed}th{text-align:left;color:#76839b;background:#fafbfd;font-weight:600;padding:13px 16px}td{padding:14px 16px;border-top:1px solid var(--line);vertical-align:top;overflow-wrap:anywhere}.actions{display:flex;gap:6px;flex-wrap:wrap}.actions button{padding:7px 9px;font-size:12px}.danger{color:#b42332}.empty{text-align:center;padding:35px 15px;color:#748199;font-size:14px}.tonos-footer{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:11px;border-top:1px solid var(--line);margin:20px 28px 0;padding:16px 0 20px;color:#858d9b;font-size:12px}.tonos-footer img{width:110px;height:auto}.tonos-footer strong{font-size:12px;border-left:1px solid #d9e0ea;padding-left:11px}.report-option{text-align:left;padding:18px;background:white;border-radius:12px;line-height:1.6}.report-option strong,.report-option span{display:block}.report-option span{font-size:13px;color:#748199;margin-top:7px}.report-group{margin-bottom:24px}.report-group h2{margin-bottom:12px}dialog{border:0;border-radius:14px;padding:26px;width:calc(100% - 32px);max-width:640px;max-height:90dvh;overflow-y:auto;color:#21344d}dialog::backdrop{background:#0b1a3666}#toast{position:fixed;bottom:20px;right:20px;z-index:60;background:#122b48;color:white;padding:15px;border-radius:10px;max-width:calc(100vw - 40px);overflow-wrap:anywhere;font-size:14px}#shade{position:fixed;inset:0;border:0;border-radius:0;background:#101e3666;z-index:29}.eyebrow{font-size:11px;letter-spacing:2.5px;font-weight:750;color:var(--blue);margin:0 0 18px}.access-layout{display:grid;grid-template-columns:1fr 1fr;min-height:100dvh}.story{background:#122b48;color:white;padding:64px clamp(36px,6vw,110px) 30px;display:flex;flex-direction:column;justify-content:space-between;gap:55px;width:auto;position:static}.story .brand .mark{color:#70c0ec}.story .eyebrow{color:#70c0ec}.story h1{font-size:clamp(36px,3.6vw,56px);line-height:1.13;letter-spacing:-1.8px;margin:0 0 20px}.story p{color:#adc3d8;line-height:1.7}.access-main{background:white;padding:60px 35px 28px;display:flex;align-items:center;justify-content:center;max-width:none;height:100%;min-height:100dvh}.access-content{width:100%;max-width:410px}.access-content>.brand{justify-content:center;margin:0 auto 45px}.access-content h1{font-size:30px;letter-spacing:-.8px}.access-content form{display:grid;gap:20px;margin:26px 0 12px}.text-button{border:0;background:transparent;font-size:13px;padding-left:0}.access-content .tonos-footer{margin:30px 0 0}.company{margin:14px 0;padding:18px;border:1px solid var(--line);border-radius:12px}.company h2{margin-top:0}#message{color:#a13c2f;font-size:13px;overflow-wrap:anywhere}.login{background:white}.report-meta{margin-bottom:16px;color:#748199;font-size:13px}
@media(max-width:1100px){.stats{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){#sidebar{transform:translateX(-100%);transition:transform .15s}.mobile-open #sidebar{transform:translateX(0)}.workspace{margin-left:0}header{padding:0 14px;height:66px;gap:10px}header strong{font-size:14px}main{padding:20px 14px}.heading{align-items:flex-start;flex-wrap:wrap}.heading h1{font-size:21px}.grid,.report-options,.fields{grid-template-columns:minmax(0,1fr)}.stats{gap:10px}.card{padding:16px}.stat strong{font-size:23px}.wide{grid-column:auto}.toolbar{display:grid;grid-template-columns:minmax(0,1fr);width:100%}.toolbar>*{width:100%}.tonos-footer{margin:20px 14px 0;gap:8px}.tonos-footer span:last-of-type{flex-basis:100%;text-align:center}.tonos-footer strong{border:0;padding:0}table,tbody{display:block;width:100%}thead{display:none}tr{display:block;padding:12px;border-top:1px solid var(--line)}tr:first-child{border-top:0}td{display:grid;grid-template-columns:100px minmax(0,1fr);padding:8px 0;border:0;gap:8px;width:100%}td:before{content:attr(data-label);font-weight:600;color:#748199}td .actions{grid-column:2;min-width:0}.access-layout{display:block}.story{display:none}.access-main{padding:38px 24px 24px}.access-content h1{font-size:27px}dialog{padding:20px}.form-footer{flex-wrap:wrap}.form-footer button{flex:1}}
@media print{#sidebar,header,.tonos-footer,.toolbar,.heading>button,.note,#toast,dialog,.actions{display:none!important}.workspace{margin:0}main{padding:0;max-width:none}.table-wrap{border:0}body{background:white}.report-meta{color:#333}.heading{display:block}table{display:table;table-layout:auto}thead{display:table-header-group}tbody{display:table-row-group}tr{display:table-row;break-inside:avoid}td{display:table-cell;border-top:1px solid #ccc}td:before{content:none}th:last-child,td:last-child{display:none}h1{font-size:20px}@page{margin:15mm}}

/* Menus recolhidos: cada grupo e cada item ocupam uma linha. */
nav .nav-group{margin:3px 0}nav .nav-group summary{display:flex;align-items:center;justify-content:space-between;gap:8px;list-style:none;cursor:pointer;padding:12px;border-radius:8px;font-size:13px;font-weight:650;white-space:nowrap}nav .nav-group summary::-webkit-details-marker{display:none}nav .nav-group summary::after{content:'›';font-size:19px;color:#8490a2;line-height:1;flex-shrink:0}nav .nav-group[open] summary::after{transform:rotate(90deg)}nav .nav-group summary:hover{background:#e9eff8}nav .nav-group summary:focus-visible{outline:3px solid #70c0ec;outline-offset:-3px}nav .nav-submenu{padding:0 0 5px 8px}nav .nav-submenu a{font-size:12px;padding:10px 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.4}nav>a{white-space:nowrap}

/* Logo aprovada: mesmo arquivo, composição para fundos claro e azul. */
.brand{display:block;position:relative;width:216px;max-width:100%;aspect-ratio:1760/510;height:auto;min-height:0;overflow:hidden;flex-shrink:0;margin:4px 0 10px}.brand img{position:absolute;width:123.4%;max-width:none;left:-12.5%;top:-18%;height:auto;filter:url(#masonic-light-logo)}.story .brand{width:280px}.story .brand img{filter:url(#masonic-dark-logo)}.access-content>.brand{width:230px;margin:10px auto 45px}.report-logo{width:230px;margin-bottom:22px}@media(max-width:760px){.access-content>.brand{width:215px}}@media print{.report-logo{display:block!important;width:210px;break-inside:avoid}}
/* Proposta visual V0.2.0: navegação azul e espaços de trabalho claros. */
#sidebar{background:#122b48;color:#e8f0f8;border-right:0}#sidebar .brand img{filter:url(#masonic-dark-logo)}nav a:hover,nav .nav-group summary:hover{background:#213e5d}nav .active{background:#285679;color:#fff}nav .nav-submenu{border-left:1px solid #36546f;margin-left:12px}#signout{color:#bbccdd;border-color:#36546f}header{box-shadow:0 2px 10px #122b4805}.welcome{background:linear-gradient(110deg,#122b48,#235c83);border-radius:16px;color:white;padding:28px;margin:22px 0 30px}.welcome .eyebrow{color:#a7d9f5}.welcome h2{font-size:24px;max-width:700px;line-height:1.4}.quick{background:#fff;color:#173951;border-radius:8px;padding:12px 16px;font-size:13px;font-weight:650}.module-card{border-left:3px solid #2a83b9;transition:box-shadow .15s}.module-card:hover{box-shadow:0 5px 18px #17395110}.card{margin-bottom:12px}.stats .card,.grid .card{margin-bottom:0}.stat strong{overflow-wrap:anywhere}dialog{max-width:820px}dialog section{margin:14px 0}#formError{color:#a13c2f;line-height:1.5}@media(max-width:760px){.welcome{padding:20px}.welcome h2{font-size:21px}.quick{width:100%}}

.overview-ledger{background:white;border:1px solid var(--line);border-radius:12px;padding:0 28px}.overview-section{padding:24px 0;border-bottom:1px solid var(--line)}.overview-section:last-child{border:0}.overview-title{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}.overview-title h2{margin:0;font-size:16px}.overview-title a,.overview-title>span{font-size:12px;color:#748199}.overview-title a{color:var(--blue)}.overview-line{display:grid;grid-template-columns:minmax(0,1fr) auto 16px;gap:16px;align-items:center;padding:14px 0;border-bottom:1px solid #f0f3f7;font-size:14px}.overview-line:last-child{border:0}.overview-line:hover{color:var(--blue)}.overview-line strong{font-weight:600}.next-session{font-size:20px;margin:18px 0 8px}.overview-footnote{font-size:12px}@media(max-width:760px){.overview-ledger{padding:0 16px}.overview-title{align-items:flex-start;flex-wrap:wrap}.overview-line{gap:8px;font-size:13px}.overview-line strong{max-width:130px;overflow-wrap:anywhere}}

/* Altura consistente por tipo de ação; conteúdo centralizado. */
button{min-height:42px;line-height:1.2;display:inline-flex;align-items:center;justify-content:center;padding:10px 16px}.actions{align-items:center}.actions button{min-height:36px;padding:8px 12px}.toolbar{align-items:end}.toolbar>button{height:42px}.toolbar input,.toolbar select{height:42px}.form-footer{align-items:center}.form-footer button{min-width:140px;height:42px}.heading>button{height:42px}.report-option{display:block;min-height:120px}#signout{justify-content:flex-start}.text-button{min-height:36px}#shade{display:block}
.calendar-shell{background:white;border:1px solid var(--line);border-radius:12px;padding:20px;margin-bottom:28px}.calendar-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.calendar-top h2{text-transform:capitalize;margin:0}.calendar-top .actions button{width:48px;height:36px}.calendar-top .actions button[data-calendar-today]{width:70px}.calendar-help{font-size:12px}.calendar-week,.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px}.calendar-week span{text-align:center;padding:10px 0;font-size:12px;color:#748199}.calendar-grid{background:var(--line);border:1px solid var(--line);border-radius:8px;overflow:hidden}.calendar-cell,.calendar-blank{background:white;min-height:110px;min-width:0;padding:6px}.calendar-blank{background:#f8fafc}.calendar-day{border:0;min-height:30px;width:30px;height:30px;padding:0;font-size:13px}.today .calendar-day{background:var(--blue);color:white;border-radius:50%}.calendar-event{display:block;width:100%;min-height:28px;text-align:left;font-size:11px;line-height:1.3;padding:5px;border:0;background:#e9f3fb;color:#1e5981;margin-top:4px;overflow-wrap:anywhere}.calendar-event.cancelled{background:#fff0f0;color:#a13c2f;text-decoration:line-through}.calendar-event i{display:none}.calendar-mobile-list{display:none}.calendar-agenda-row{display:flex;width:100%;justify-content:flex-start;text-align:left;gap:12px;border:0;border-bottom:1px solid var(--line);border-radius:0;flex-wrap:wrap}.calendar-agenda-row span,.calendar-agenda-row small{font-size:12px;color:#748199}.calendar-agenda-row strong{font-size:13px}
@media(max-width:760px){.calendar-shell{padding:12px}.calendar-top{flex-wrap:wrap}.calendar-cell,.calendar-blank{min-height:64px;padding:3px}.calendar-day{width:28px;height:28px;min-height:28px}.calendar-events{display:flex;flex-wrap:wrap}.calendar-event{padding:0;min-height:12px;height:12px;width:12px;margin:1px;background:transparent}.calendar-event span{display:none}.calendar-event i{display:block;font-style:normal;font-size:20px;line-height:10px}.calendar-mobile-list{display:block;margin-top:18px}.calendar-agenda-row{display:grid;gap:6px}.calendar-week span{font-size:11px}.toolbar>button{width:100%}.form-footer button{min-width:0;flex:1}.actions button{min-height:36px}}
/* Ações de registros alinhadas em pares com dimensões iguais. */
td .actions{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}td .actions button{width:100%;min-height:42px;height:auto;padding:8px 6px}.calendar-top .actions{display:flex}.form-footer button{flex:0 1 160px}@media(max-width:760px){.form-footer button{flex:1}}
.file-action{display:inline-flex;align-items:center;justify-content:center;height:42px;min-width:140px;padding:10px 16px;border:1px solid var(--line);border-radius:8px;font-size:14px;font-weight:600}.file-action:hover{background:#edf3ff}#pdfForm{margin-top:24px}input[type=file]{overflow:hidden}
header>div{min-width:0;flex:1}header strong,header small{overflow-wrap:anywhere}header #menu,header .badge{flex-shrink:0}header #mode{margin-left:0}
.document-text{white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.8}.attendance-person{margin:12px 0}.attendance-person label{margin-top:10px}.test-guide{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:18px}.test-guide h2{font-size:18px}.test-guide label{margin-top:10px}.operation-toolbar{margin-top:12px}@media(max-width:760px){.test-guide{grid-template-columns:1fr}.operation-toolbar button{width:100%}}
