:root{--navy:#082e50;--ink:#13334a;--yellow:#ffd447;--cyan:#09b3c7;--paper:#f3f7fa;--muted:#607582;--line:#d9e3e9}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:system-ui,-apple-system,"Segoe UI",sans-serif;line-height:1.6}a{color:inherit;text-underline-offset:4px}button,input,select,textarea{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer}img{max-width:100%;display:block}h1,h2,h3,p{margin-top:0}h1{font-size:clamp(2rem,4vw,3.5rem);line-height:1.13;letter-spacing:-.045em;margin-bottom:22px}h2{line-height:1.2}h3{line-height:1.35}.shell{width:min(1180px,calc(100% - 40px));margin:auto}.section{padding:55px 0 80px}.site-header{background:rgba(255,255,255,.97);border-bottom:1px solid var(--line);position:relative;z-index:10}.nav{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:18px 0}.nav nav{display:flex;gap:23px;align-items:center;font-size:14px;font-weight:650}.nav nav>a{text-decoration:none}.brand{display:inline-flex;align-items:baseline;font-size:32px;font-weight:900;letter-spacing:-.06em;text-decoration:none;line-height:1}.brand span{color:#007d94}.brand small{font-size:11px;margin-left:7px;letter-spacing:0;color:var(--muted)}.button{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:15px 22px;min-height:50px;background:var(--navy);color:#fff;border:1px solid transparent;border-radius:12px;text-decoration:none;font-weight:750;line-height:1.3}.button:hover{background:#145475}.button-secondary{background:#fff;color:var(--navy);border-color:var(--line)}.button-secondary:hover{background:#eef7fa}.button-small{min-height:42px;font-size:13px;padding:10px 16px}.text-button{background:none;color:inherit;border:0;text-decoration:underline;padding:6px}.eyebrow{font-size:12px;font-weight:850;text-transform:uppercase;letter-spacing:.13em;color:#007e91}.panel{padding:28px;background:#fff;border:1px solid var(--line);border-radius:19px;margin-bottom:24px;min-width:0}.alert{padding:15px 18px;margin:18px 0;border-radius:12px;overflow-wrap:anywhere}.alert-error{background:#fff0ef;color:#9b332c;border:1px solid #f7d4d0}.alert-success{background:#e4f6ec;color:#166944;border:1px solid #c5e9d6}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px}.field{display:flex;flex-direction:column;gap:7px;min-width:0;font-size:14px;font-weight:650}.field input,.field select,.field textarea{width:100%;min-height:51px;padding:12px 14px;background:#fff;border:1px solid #bfcdd7;border-radius:10px;color:var(--ink);font-size:16px;font-weight:400}.field textarea{min-height:100px;resize:vertical}.field small,.form-help{font-size:12px;color:var(--muted);font-weight:400}.field input:focus,.field select:focus,.field textarea:focus{outline:3px solid #a8dfe8;border-color:#098399}fieldset{margin:0 0 26px;padding:0;border:0}legend{font-weight:800;font-size:20px;margin-bottom:14px}.registration-shell{max-width:960px}.login-shell{max-width:620px}.registration-form{display:grid;gap:19px}.audience-options{display:grid;grid-template-columns:1fr 1fr;gap:14px}.choice-card{display:flex;gap:13px;padding:17px;border:1px solid var(--line);border-radius:13px;background:#fff;cursor:pointer;align-items:flex-start;min-height:65px}.choice-card:has(input:checked){background:#effaff;border-color:#0896ae;box-shadow:0 0 0 2px #d7f0f4}.choice-card input{accent-color:#008ba2;width:22px;height:22px;flex:0 0 auto;margin-top:3px}.choice-card small,.talk-choice strong{display:block}.choice-card small{color:var(--muted);font-size:13px;font-weight:400}.talk-choice strong{margin:5px 0}.talk-choices{display:grid;gap:13px;margin-top:20px}.student-fields{padding:20px;border-radius:12px;background:#f1f7fa}.student-fields[hidden]{display:none}.privacy-note{color:var(--muted);font-size:13px}.participant-heading{display:flex;justify-content:space-between;align-items:start;gap:20px}.talk-summary{padding:19px;border:1px solid var(--line);border-radius:12px}.attendance-status{font-size:13px;padding:6px 11px;border-radius:8px;width:fit-content;font-weight:700;background:#eef2f7}.status-validated{background:#e1f5e9;color:#147342}.status-requested{background:#fff1ce;color:#805b00}.status-rejected{background:#ffe5e3;color:#96352c}.site-footer{background:var(--navy);color:#dce6ef;padding:48px 0;font-size:13px}.site-footer .brand{color:#fff}.site-footer .brand span{color:var(--yellow)}.site-footer p{margin-top:14px;color:#b8cbd8}.footer-grid{display:grid;grid-template-columns:1.3fr 1fr .7fr;gap:35px}.admin-nav{display:flex;flex-wrap:wrap;align-items:center;gap:16px;padding:20px 0;border-bottom:1px solid var(--line);font-size:13px;font-weight:700}.admin-nav form{margin-left:auto}.filters{display:flex;flex-wrap:wrap;gap:14px;align-items:end}.filters .field{flex:1;min-width:160px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;font-size:11px;color:var(--muted);text-transform:uppercase;padding:12px;border-bottom:1px solid var(--line)}td{padding:15px 12px;border-bottom:1px solid var(--line);vertical-align:top}td small{display:block;color:var(--muted)}.metric-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin:24px 0}.metric{background:#fff;padding:20px;border:1px solid var(--line);border-radius:15px}.metric strong{display:block;font-size:31px}.metric span{font-size:12px;color:var(--muted)}.badge{display:inline-block;padding:4px 9px;border-radius:8px;background:#edf3fa;font-size:12px;font-weight:700}.inline-form{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.inline-form select{max-width:180px;min-height:44px;padding:8px;border:1px solid var(--line);border-radius:9px}.empty{padding:35px;text-align:center;color:var(--muted)}.skip-link{position:absolute;top:-100px;left:10px;background:#fff;padding:10px;z-index:99}.skip-link:focus{top:10px}.qr-panel{text-align:center}.qr-panel #qr{display:flex;justify-content:center;background:#fff;padding:25px;border-radius:20px;margin:25px auto;max-width:400px}.qr-code-text{font:800 clamp(25px,5vw,50px) monospace;letter-spacing:.1em}.qr-screen{background:var(--navy);color:#fff;min-height:100vh;padding:35px 0}.qr-screen .shell{max-width:1000px}.qr-screen .eyebrow{color:var(--yellow)}.qr-screen .button{background:var(--yellow);color:var(--navy)}.two-columns{display:grid;grid-template-columns:1fr 1fr;gap:24px}.notes-strip{padding:10px 14px;border-left:3px solid var(--cyan);background:#edf8fa;border-radius:6px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}dialog{width:min(700px,calc(100% - 24px));max-height:90vh;border:0;border-radius:18px;padding:25px;overflow:auto}dialog::backdrop{background:#082e50bb}video{width:100%;max-height:380px;border-radius:14px;background:#111}.camera-wrap[hidden]{display:none}details summary{cursor:pointer;font-weight:750}details>div{margin-top:20px}
@media(max-width:700px){.shell{width:calc(100% - 28px)}.section{padding:35px 0 50px}.nav{gap:12px;flex-wrap:wrap}.nav nav{gap:12px;font-size:12px;width:100%;justify-content:space-between}.brand{font-size:29px}.panel{padding:20px 17px}.form-grid,.audience-options,.two-columns,.footer-grid{grid-template-columns:1fr}.metric-grid{grid-template-columns:1fr 1fr}.participant-heading{display:block}.filters{display:grid;grid-template-columns:1fr}.filters .field{min-width:0}.button{min-height:52px}.student-fields{padding:15px}.admin-nav{gap:11px}.admin-nav form{margin-left:0}.qr-panel #qr{padding:16px}.choice-card{padding:14px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
.brand-image{align-items:center;flex-shrink:0;line-height:0;width:190px;max-width:100%}
.brand-image img{display:block;width:100%;height:auto;object-fit:contain}
.site-footer .brand-image{width:220px;background:#fff;padding:12px;border-radius:10px}
@media(max-width:700px){.brand-image{width:165px}.site-footer .brand-image{width:210px}}
[hidden]{display:none!important}
.registration-steps{display:flex;gap:12px;padding:0;list-style:none;margin:25px 0}
.registration-steps li{flex:1;background:#e6edf2;border-radius:10px;padding:12px 16px;font-size:14px;font-weight:750;color:#526575}
.registration-steps .active{background:var(--navy);color:#fff}.registration-steps .complete{background:#dcf4eb;color:#166944}
.student-identity{padding:22px;background:#edf8fa;border:1px solid #c5e4eb;border-radius:14px;margin-bottom:24px}
.student-identity h2{font-size:clamp(21px,3vw,30px);overflow-wrap:anywhere;line-height:1.25}.student-identity .eyebrow{margin-bottom:10px}
.student-course-list{display:grid;gap:10px}.student-course-list>div{padding:12px 15px;background:#fff;border-radius:10px;border-left:4px solid var(--cyan)}
.student-course-list small{display:block;color:var(--muted);margin-top:3px}
.talk-choice>span>small:first-child,.talk-date{display:inline-block;width:fit-content;max-width:100%;padding:7px 12px;background:#fff1bc;color:#15344b;border-radius:8px;font-size:19px;font-weight:850;line-height:1.4;margin:0 0 12px;letter-spacing:.01em}
.participant-card-grid,.staff-card-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:25px 0}
.participant-card,.staff-card{padding:25px;background:#fff;border:1px solid var(--line);border-radius:18px;min-width:0;overflow-wrap:anywhere}
.participant-card h2{font-size:24px;line-height:1.25}.participant-card .button{margin-top:18px}.participant-section-title{margin:35px 0 0}
.presence-action{background:linear-gradient(135deg,#0a536d,#082e50);color:#fff;text-decoration:none;border:0;display:flex;flex-direction:column;align-items:flex-start;gap:10px;box-shadow:0 12px 24px #082e5020}
.presence-action svg{width:64px;height:64px;color:var(--yellow)}.presence-action .eyebrow{color:#b0eff3;margin:0}.presence-action h2{margin:0}.presence-action p{color:#d1e3ee;margin:0}.presence-action>strong{color:var(--yellow);margin-top:auto;padding-top:15px}
@media(max-width:700px){.participant-card-grid,.staff-card-grid{grid-template-columns:1fr;gap:14px}.participant-card,.staff-card{padding:22px}.talk-choice>span>small:first-child,.talk-date{font-size:20px}}
.coordination-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin:30px 0}
.coordination-card{display:flex;flex-direction:column;gap:15px;background:#fff;border:1px solid var(--line);border-top:5px solid var(--cyan);padding:28px;border-radius:20px;text-decoration:none;box-shadow:0 8px 24px #082e500a;transition:transform .2s}
.coordination-card:hover{transform:translateY(-3px)}.coordination-card:nth-child(2){border-top-color:var(--yellow)}.coordination-card:nth-child(3){border-top-color:#7257b2}
.coordination-icon{display:grid;place-items:center;width:62px;height:62px;background:#e6f7f9;color:#007e91;border-radius:17px;font-size:36px;line-height:1}
.coordination-card:nth-child(2) .coordination-icon{background:#fff3c8;color:#8a6000}.coordination-card:nth-child(3) .coordination-icon{background:#eee8fa;color:#64439b}
.coordination-card h2{font-size:25px;margin:0}.coordination-card p{color:var(--muted);font-size:15px;margin:0}.coordination-card .eyebrow{margin:0;font-size:10px}.coordination-card>strong{margin-top:auto;padding-top:10px}
.attendance-list-heading{display:flex;align-items:center;justify-content:space-between;gap:15px;flex-wrap:wrap}.attendance-list-heading h2{margin-bottom:10px}.attendance-class-list{display:grid;gap:12px}
.attendance-student{display:flex;align-items:center;justify-content:space-between;gap:18px;border:1px solid var(--line);border-radius:13px;padding:18px;background:#fff}
.attendance-student>div:first-of-type{min-width:0}.attendance-student strong{display:block;font-size:16px;overflow-wrap:anywhere}.attendance-student small{display:block;color:var(--muted);font-size:12px;margin:4px 0 8px}
.attendance-student [data-attendance-control]{flex-shrink:0;display:grid;gap:8px}.attendance-feedback{font-size:12px;margin:8px 0 0;color:#166944}.attendance-feedback:empty{display:none}.attendance-feedback.error{color:#9b332c}
.presence-toggle{display:flex;align-items:center;gap:9px;position:relative;min-height:48px;font-size:14px;font-weight:750;cursor:pointer}
.presence-toggle input{position:absolute;left:0;top:0;width:52px;height:48px;opacity:0;cursor:pointer;margin:0}
.presence-toggle>span{width:52px;height:30px;border-radius:20px;background:#8b99a5;padding:4px;transition:background .2s;pointer-events:none}
.presence-toggle>span::after{content:"";display:block;width:22px;height:22px;border-radius:50%;background:#fff;transition:transform .2s;box-shadow:0 1px 3px #0003}
.presence-toggle input:checked+span{background:#178654}.presence-toggle input:checked+span::after{transform:translateX(22px)}.presence-toggle input:focus-visible+span{outline:3px solid #008da6;outline-offset:4px}.presence-toggle input:disabled+span{opacity:.5}
.has-attendance-js .attendance-fallback{display:none}
@media(max-width:850px){.coordination-cards{grid-template-columns:1fr}.coordination-card{padding:24px}.attendance-student{align-items:flex-start;flex-direction:column;gap:8px}.attendance-student [data-attendance-control]{align-self:flex-end}.attendance-student .button{white-space:normal}}
/* Chamada densa: RM, nome e situação na mesma linha quando possível. */
.attendance-class-list{gap:6px}.attendance-student{padding:8px 12px;border-radius:9px;gap:12px;position:relative;min-height:52px}
.attendance-student .attendance-identity{flex:1;display:flex;align-items:center;gap:12px;flex-wrap:wrap;min-width:0}
.attendance-student .attendance-rm{margin:0;flex:none;font-size:12px;font-variant-numeric:tabular-nums}
.attendance-student strong{font-size:14px;line-height:1.35}.attendance-student .badge{font-size:11px;padding:3px 8px}
.attendance-student .presence-toggle{min-height:36px;font-size:12px}.attendance-student .presence-toggle input{height:36px}.attendance-student .button-small{min-height:36px;padding:8px 11px;font-size:12px}
.has-attendance-js .attendance-student .attendance-feedback:not(.error){position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0)}
.attendance-student .attendance-feedback.error{flex-basis:100%;margin:0}
.participant-lecture-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.participant-lecture-card{display:flex;flex-direction:column;align-items:flex-start;gap:10px;padding:18px;border:1px solid var(--line);border-radius:13px;background:#fff;min-width:0}
.participant-lecture-card .talk-date{font-size:16px;padding:5px 9px;margin:0}.participant-lecture-card h3{font-size:18px;line-height:1.3;margin:0}.participant-lecture-card .lecture-speaker{font-size:13px;color:var(--muted);margin:0}
.participant-lecture-card [data-attendance-control]{margin-top:auto;padding-top:4px}.participant-lecture-card .presence-toggle{min-height:44px}.participant-lecture-card .attendance-feedback{margin:0}.participant-lecture-card .form-help{margin:0}
.lecture-notes{width:100%;font-size:12px;border-top:1px solid var(--line);padding-top:8px;color:var(--muted)}.lecture-notes p{white-space:normal;overflow-wrap:anywhere;margin:8px 0 0}
@media(max-width:1050px){.participant-lecture-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:850px){.attendance-student{flex-direction:row;align-items:center;gap:8px}.attendance-student .attendance-identity{gap:5px 9px}.attendance-student .attendance-identity strong{flex-basis:100%;order:2}.attendance-student .attendance-rm{order:0}.attendance-student [data-attendance-status]{order:1}.attendance-student .attendance-feedback{order:3}.attendance-student [data-attendance-control]{align-self:center;max-width:160px}.attendance-student .button-small{font-size:11px;max-width:160px}.participant-lecture-grid{grid-template-columns:1fr}}
.coordination-cards{grid-template-columns:repeat(2,minmax(0,1fr))}.coordination-card:nth-child(4){border-top-color:#087d66}.coordination-card:nth-child(4) .coordination-icon{background:#e0f4eb;color:#087d66}
.qr-generator-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}
.qr-generator-card{border:1px solid var(--line);border-radius:17px;padding:22px;background:#fff;min-width:0;text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px}
.qr-generator-card h3{font-size:22px;max-width:620px;margin:0}.qr-generator-card .eyebrow{margin:0}.qr-generator-card .inline-form{justify-content:center}.qr-generator-card .button{margin:0}
.qr-lifetime-frame{padding:9px;border-radius:14px;background:#eaf2f5;width:min(294px,100%);border:1px solid #d0e1e7}
.qr-canvas{background:#fff;padding:9px;min-height:40px;border-radius:9px;display:flex;align-items:center;justify-content:center}
.qr-canvas canvas,.qr-canvas img{width:100%!important;height:auto!important;max-width:256px;aspect-ratio:1}
.qr-lifetime-track{height:10px;margin-top:9px;overflow:hidden;border-radius:8px;background:#cfdee4}.qr-lifetime-track span{display:block;background:#138b65;height:100%;width:100%;transform:scaleX(0);transform-origin:left;transition:transform .25s linear,background .25s}.qr-lifetime-track.expiring span{background:#d75a31}
.qr-generator-card .qr-code-text{font-size:clamp(28px,4vw,48px);letter-spacing:.12em;line-height:1.3;margin:0}.qr-generator-card .qr-countdown{margin:0;font-size:14px;color:var(--muted)}.qr-error:empty{display:none}.qr-error{color:#9b332c;font-size:13px;margin:0}
.qr-generator-card:fullscreen{padding:30px;background:#fff;justify-content:center;overflow:auto}.qr-generator-card:fullscreen .qr-lifetime-frame{width:min(60vh,650px)}.qr-generator-card:fullscreen .qr-canvas img,.qr-generator-card:fullscreen .qr-canvas canvas{max-width:100%}.qr-generator-card:fullscreen .qr-code-text{font-size:clamp(32px,8vw,80px)}
@media(max-width:850px){.coordination-cards,.qr-generator-grid{grid-template-columns:1fr}.qr-generator-card{padding:16px}.qr-day-block{padding:18px}}
.qr-access-help{overflow-wrap:anywhere}
.coordination-report-card{background:linear-gradient(135deg,#082e50,#0e566b);color:#fff;border-top-color:var(--yellow)}
.coordination-report-card .eyebrow,.coordination-report-card>strong{color:var(--yellow)}.coordination-report-card p{color:#d2e6ee}.coordination-report-card .coordination-icon{background:#ffffff16;color:var(--yellow)}
.report-lecture-list{display:grid;gap:7px;min-width:230px;max-width:440px;list-style:none;padding:0;margin:0}
.report-lecture-list li{padding:7px 10px;border-left:3px solid #bddbe3;background:#f4f8fb;border-radius:5px}
.report-lecture-list strong{display:block;font-size:12px;line-height:1.4}.report-lecture-list .report-lecture-meta{display:flex;align-items:center;gap:5px 10px;flex-wrap:wrap;font-size:11px;color:var(--muted);margin-top:3px}
.report-lecture-meta .badge{font-size:10px;padding:2px 6px}.report-lecture-list details{font-size:10px;color:var(--muted);margin-top:4px}.report-lecture-list details p{margin:5px 0 0}
