@font-face{font-family:"DM Sans";src:url(../fonts/dm-sans.ttf) format("truetype");font-weight:100 1000;font-display:swap}
:root{--navy:#16394f;--ink:#243d50;--muted:#536a79;--teal:#1d6676;--line:#d4e1e7;--wash:#f3f7f9;font-family:"DM Sans",system-ui,sans-serif;font-size:16px;line-height:1.55;color:var(--ink);background:#fff}
*{box-sizing:border-box}
body{margin:0}
a{color:#245e79;text-underline-offset:.18em;text-decoration-thickness:1px}
a:focus-visible,select:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid #bd7c21;outline-offset:3px}
h1,h2,h3,p,ul,ol,figure{margin:0}h1,h2,h3{color:var(--navy);line-height:1.18}
h1{font-weight:670;letter-spacing:-.048em}h2{font-size:1.36rem;font-weight:660;letter-spacing:-.025em}h3{font-size:1rem;font-weight:630}
.shell{width:min(1230px,calc(100% - clamp(28px,8vw,100px)));margin-inline:auto}
.site-header{border-bottom:1px solid var(--line)}.header-row,.brand,.header-row nav,.footer,.breadcrumb,.bench-actions{display:flex;align-items:center}
.header-row{gap:clamp(16px,4vw,54px);min-height:62px}.header-row nav{gap:clamp(12px,2.8vw,30px)}
.header-row a,.footer a,.breadcrumb a,.pager a{text-decoration:none}.header-row nav a{font-size:.87rem;color:var(--muted);padding:12px 0}.header-row nav a[aria-current],.header-row nav a:hover,.footer a:hover,.breadcrumb a:hover,.pager a:hover{text-decoration:underline;color:var(--navy)}
.brand{color:var(--navy);gap:6px;font-weight:740;letter-spacing:-.04em;font-size:1.2rem}.brand span{margin-left:-6px;color:#577d92}
.campus{margin-inline-start:auto;white-space:nowrap;font-size:.81rem;color:var(--muted);font-weight:600}.campus b{color:#a1b4c0;margin:0 .35em}
.skip{position:absolute;left:.75rem;top:-200px;background:white;padding:.5em;z-index:2}.skip:focus{top:.5rem}main:focus{outline:none}
.course-cover{margin:clamp(18px,3vw,34px) 0 27px;border-radius:14px;padding:clamp(22px,4.5vw,52px);background:linear-gradient(115deg,#16374f 15%,#123744 85%);color:#e5f0f5;display:grid;grid-template-columns:1.35fr minmax(225px,.75fr);gap:clamp(18px,4vw,64px);align-items:center}
.eyebrow{font:650 .77rem/1.4 ui-monospace,Consolas,monospace;letter-spacing:.065em;color:var(--teal)}
.course-cover .eyebrow{color:#a8dacf}.course-cover h1{margin:.23em 0;font-size:clamp(2.1rem,4.3vw,3.6rem);color:white;line-height:1.05}
.cover-intro{color:#d6e7eb;max-width:60ch;font-size:1.03rem}.cover-action,.bench-primary,.bench-secondary{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:8px 14px;border-radius:6px;text-decoration:none;font-size:.89rem;font-weight:630}
.cover-action{margin-top:19px;color:#173645;background:#d0ede4}.cover-action:hover{background:#e4f7ef}
.sampling{border:1px solid #456c7b;border-radius:10px;padding:12px 14px 11px;background:#133144}.sampling svg{display:block;width:100%;height:auto}
.sampling figcaption{margin:.05rem .4rem 0;color:#b8d5dc;font-size:.77rem}.sample-grid path{stroke:#2e5366;stroke-width:.8;fill:none}.sample-signal{fill:none;stroke:#7cd8d7;stroke-width:2}.sample-stem{stroke:#7196a5;stroke-width:.8}.sample-point{fill:#def3ec;stroke:#4b948c;stroke-width:1.2}.sample-axis{fill:none;stroke:#9bb8c4;stroke-width:1}.sample-tick{fill:#c9dee4;font:10px ui-monospace,monospace}
.comparison{margin:-6px 0 24px;border:1px solid var(--line);border-radius:8px}.comparison summary{cursor:pointer;color:var(--navy);font-weight:650;padding:10px 14px}.comparison-table{overflow:auto}.comparison table{width:100%;border-collapse:collapse;text-align:left;font-size:.91rem}.comparison th,.comparison td{padding:9px 14px;text-align:left;vertical-align:top;border-top:1px solid var(--line)}.comparison thead{background:var(--wash)}.comparison tbody th{width:22%;font-weight:620}.comparison td:nth-child(2){width:32%}
.lesson-plan h2{margin-bottom:15px;font-size:1.55rem}.catalog{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:0;list-style:none}
.catalog li{min-width:0}.catalog a{border:1px solid var(--line);border-radius:9px;display:flex;align-items:baseline;gap:12px;height:100%;padding:15px 16px;text-decoration:none;color:var(--ink)}.catalog a:hover{background:var(--wash);border-color:#a8c6d0}
.number{flex:none;font:600 .78rem ui-monospace,Consolas,monospace;color:var(--teal);font-variant-numeric:tabular-nums}.catalog .number{border-radius:5px;background:#eaf3f5;padding:4px 6px}
.catalog-copy h3{font-size:1.05rem}.catalog-copy p{margin-top:.42em;font-size:.91rem;line-height:1.47;color:var(--muted)}.catalog-arrow{margin-inline-start:auto;color:var(--teal)}
.breadcrumb{gap:.65em;margin:18px 0;font-size:.82rem;color:var(--muted)}
.lesson-layout{display:grid;grid-template-columns:minmax(190px,250px) minmax(0,1fr);gap:clamp(18px,4vw,50px);align-items:start}.lesson-nav{position:sticky;top:10px;border:1px solid var(--line);background:#f7fafb;border-radius:9px;padding:9px}
.nav-title{padding:5px 8px 9px;color:var(--muted);font-weight:600;font-size:.84rem}.side-link{display:flex;align-items:baseline;gap:9px;padding:8px 9px;line-height:1.3;text-decoration:none;color:var(--ink);border-radius:4px;font-size:.86rem}.side-link[aria-current]{color:var(--navy);font-weight:650;background:#e6f0f4;box-shadow:inset 3px 0 #49849b}.side-link:hover{background:#e9f2f6}
.jump{display:none}.lesson-content{max-width:920px;min-width:0}.lesson-header h1{margin:.22em 0;font-size:clamp(1.85rem,3.3vw,2.8rem)}.lesson-lead{color:var(--muted);font-size:1.05rem;max-width:75ch}.hardware{margin:.45rem 0 0;color:var(--teal);font-size:.82rem;font-weight:620}.bench-actions{flex-wrap:wrap;margin:15px 0 22px;gap:8px}
.bench-actions>a::after{content:"↗";margin-left:.45em;font-size:.84em}.bench-primary{color:#fff;background:#23536f;border:1px solid #23536f}.bench-primary:hover{background:#143e59}.bench-secondary{color:#275a74;background:white;border:1px solid #afc7d2}.bench-secondary:hover{background:#f1f7fa}
.report-jump{background:none;border:none;color:#275a74;text-decoration:underline;text-underline-offset:.18em;min-height:42px;padding:8px;font:inherit;font-size:.88rem;cursor:pointer}.sizing,.lesson-wiring,.wiring-figure{margin-top:14px}.lesson-wiring{border:1px solid var(--line);border-radius:6px}.lesson-wiring>summary{cursor:pointer;padding:10px 14px;color:var(--navy);font-weight:650}.lesson-wiring[open]>summary{border-bottom:1px solid var(--line)}.wiring-body{overflow:auto}.wiring-figure img{display:block;width:100%;height:auto}.wiring-figure figcaption{font-size:.88rem;color:var(--muted)}
.lesson-content>section:not(#instrumentReport){margin:18px 0;padding:17px 20px;border:1px solid var(--line);border-radius:8px}.lesson-content section h2{margin-bottom:.72em}.goals,.submission{background:var(--wash)}
.goals ul,.procedure,.references ul{padding-left:1.35em}.goals li+li,.procedure li+li,.references li+li{margin-top:.48em}.signal-chain{display:flex;align-items:stretch;flex-wrap:wrap;gap:9px 19px;list-style:none;padding:0}
.signal-chain li{position:relative;align-content:center;background:#e9f3f5;border:1px solid #bfd7dc;border-radius:5px;padding:6px 10px;line-height:1.4;color:#204f60;font-size:.87rem;max-width:100%;overflow-wrap:anywhere}
.signal-chain li:not(:last-child)::after{content:"→";position:absolute;left:calc(100% + 3px);top:50%;transform:translateY(-50%);color:#537d88}
.theory p+p,.submission h3{margin-top:.9em}.procedure li::marker{font-variant-numeric:tabular-nums;font-weight:680;color:var(--teal)}.expected{border-inline-start:3px solid #58909a;background:#f2f7f8;padding:10px 13px;margin-top:16px}.expected h3,.submission h3{margin-bottom:.25em}
.references p{font-size:.9rem;color:var(--muted)}.pager{display:flex;justify-content:space-between;align-items:center;gap:12px;border-top:1px solid var(--line);margin-top:20px}.pager a{padding:12px 0;font-weight:630}.pager a:last-child{margin-inline-start:auto}
.footer{border-top:1px solid var(--line);justify-content:space-between;gap:12px;margin-top:38px;padding-block:15px 24px;color:var(--muted);font-size:.8rem}
@media(max-width:820px){.lesson-layout{grid-template-columns:minmax(170px,210px) minmax(0,1fr);gap:20px}.course-cover{grid-template-columns:1.3fr minmax(185px,.75fr);padding:23px}.catalog{gap:10px}.catalog a{padding:12px;gap:8px}.campus{display:none}}
@media(max-width:650px){.header-row{gap:16px;justify-content:space-between}.header-row nav{gap:11px}.header-row nav a{font-size:.82rem}.catalog,.lesson-layout{grid-template-columns:1fr}.lesson-layout{gap:15px}.lesson-nav{position:static;padding:8px 10px}.side-rows{display:none}.jump{display:flex;flex-wrap:wrap;align-items:center;gap:6px;min-width:0;font-size:.8rem;color:var(--muted)}.jump select{min-height:42px;min-width:0;max-width:100%;flex:1 1 140px;color:var(--navy);border:1px solid var(--line);background:#fff;border-radius:5px;padding:5px 7px;font:inherit;font-weight:650}.course-cover{grid-template-columns:1fr;gap:16px;padding:22px 18px}.sampling{width:min(100%,335px)}.catalog-copy p{font-size:.91rem}.lesson-content>section:not(#instrumentReport){padding:14px}.signal-chain{flex-direction:column;align-items:flex-start;gap:18px}.signal-chain li:not(:last-child)::after{content:"↓";top:100%;left:12px;transform:none}.footer{align-items:flex-start;flex-wrap:wrap}}
@media print{.site-header,.lesson-nav,.breadcrumb,.pager,.bench-actions,.footer,.skip{display:none}.shell,.lesson-content{width:100%;max-width:none}.lesson-layout{display:block}.lesson-content>section:not(#instrumentReport){break-inside:avoid}.course-cover{background:white;color:var(--ink)}}

@media(max-width:520px){.comparison thead{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}.comparison tbody,.comparison tbody tr,.comparison tbody th,.comparison tbody td{display:block;width:auto}.comparison tbody tr{padding:10px 14px;border-top:1px solid var(--line)}.comparison th,.comparison td{padding:3px 0;border:0}.comparison tbody td::before{display:block;color:var(--muted);font-size:.75rem;font-weight:650}.comparison tbody td:nth-child(2)::before{content:"Quando escolher"}.comparison tbody td:nth-child(3)::before{content:"Limite a verificar"}}

@media(max-width:540px){
  .header-row{flex-wrap:wrap;gap:2px 14px;padding-block:8px}
  .header-row nav{flex-wrap:wrap;gap:4px 14px}
  .header-row nav a{padding:4px 0}
}
