:root{--navy:#0c2340;--ink:#102a35;--blue:#3475a3;--cyan:#4386b5;--gold:#b8860b;--paper:#f7f5ef;--muted:#5f6d73;--line:#dcdedb;--serif:"Source Serif 4",Georgia,serif;--sans:"DM Sans",system-ui,sans-serif}
body{font-family:var(--sans);color:var(--ink);background:var(--paper);padding:0 28px 60px}
.viewer-nav{height:72px;max-width:1800px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line)}
.viewer-brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:var(--navy)}
.viewer-brand-mark{width:46px;height:46px;object-fit:contain;border-radius:9px}
.viewer-brand-lockup{display:block;width:184px;height:auto;max-height:58px;object-fit:contain}
.viewer-brand>span:last-child{display:flex;flex-direction:column;line-height:1.15}.viewer-brand strong{font-size:15px}.viewer-brand small{font-size:9px;text-transform:uppercase;letter-spacing:.13em;color:var(--muted);margin-top:3px}
.viewer-nav nav{display:flex;gap:26px}.viewer-nav nav a{font-size:13px;font-weight:600;color:#52636f;text-decoration:none}.viewer-nav nav a:hover{color:var(--blue)}
.viewer-heading{max-width:1800px;margin:0 auto;padding:48px 0 28px;display:flex;justify-content:space-between;align-items:end;gap:40px}
.viewer-eyebrow{color:var(--gold);font-size:13px;text-transform:uppercase;letter-spacing:.13em;font-weight:700}.viewer-heading h1{font:600 clamp(2.5rem,5vw,4.5rem)/1 var(--serif);letter-spacing:-.045em;color:var(--navy);margin:12px 0 0}.viewer-heading p{max-width:650px;color:var(--muted);line-height:1.65;font-size:15px;margin:0 0 5px}
.controls{max-width:1800px;margin:0 auto 18px;padding:15px;background:#e9eef0;border-radius:10px;gap:7px}
.btn{font:600 13px var(--sans);color:#40525e;border:1px solid #c8d4d8;border-radius:6px;padding:8px 13px;transition:.15s ease}.btn:hover{border-color:#7da8b7;color:var(--blue)}.btn.active{background:var(--blue);border-color:var(--blue);box-shadow:0 5px 13px rgba(27,103,165,.18)}.btn.secondary{background:rgba(255,255,255,.62)}
#wrap{gap:18px}.panel{border:1px solid var(--line);border-radius:11px;padding:12px;box-shadow:0 10px 35px rgba(7,27,45,.045)}
#side{position:sticky;top:16px;height:calc(100dvh - 32px);box-sizing:border-box;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.search{margin:2px 0 12px}.search input{font:14px var(--sans);border:1px solid #cbd8dc;border-radius:6px;padding:10px 12px;outline:none}.search input:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(27,103,165,.1)}
#side.viewport-pinned{position:fixed;top:16px;right:max(1rem,calc((100vw - 1800px)/2));width:390px;z-index:30}
#checklist{border:0;border-radius:6px;background:#f7f9f9;padding:10px}.folder>div.title{font-size:12px;letter-spacing:.02em;color:#263b49}.folder .count{font-size:11px}.item{font-size:12px}.item label{line-height:1.35}.hint{border-top:1px solid var(--line);padding:14px 5px 3px;margin-top:12px;font-size:11px;color:#71808a}.chartcard{border-color:var(--line);border-radius:8px}.chartcard .title{font:600 13px var(--sans);color:#2b4250;background:#fafcfc;padding:11px 14px}.chart{height:min(100vh,980px)}.chart-toolbar{font-family:var(--sans)}
@media(max-width:900px){body{padding:0 16px 40px}.viewer-nav nav{display:none}.viewer-heading{display:block;padding-top:34px}.controls{overflow-x:auto;flex-wrap:nowrap}.btn{flex:0 0 auto}#wrap{grid-template-columns:1fr}#side,#side.viewport-pinned{position:static;grid-row:1;width:auto;height:auto;overflow:visible;scrollbar-gutter:auto}.chart{height:75vh}}
@media(max-width:520px){.viewer-heading h1{font-size:2.65rem}.viewer-heading p{font-size:14px}.viewer-brand small{display:none}}
.viewer-footer{max-width:1800px;margin:64px auto -60px;padding:54px max(28px,calc((100vw - 1800px)/2)) 26px;background:var(--navy);color:#aebbc5}.viewer-footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:70px}.viewer-footer-grid>div{display:flex;flex-direction:column;gap:8px}.viewer-footer-grid strong{font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:#fff;margin-bottom:8px}.viewer-footer-grid a{color:#c8d4dc;text-decoration:none;font-size:14px}.viewer-footer-grid p{max-width:490px}.viewer-footer-logo{display:block;width:min(340px,100%)}.viewer-footer-logo img{display:block;width:100%;border-radius:10px}.viewer-footer-bottom{margin-top:44px;padding-top:20px;border-top:1px solid #29405c;display:flex;justify-content:space-between;font-size:12px}
@media(max-width:850px){.viewer-footer-grid{grid-template-columns:1fr;gap:35px}.viewer-footer-bottom{flex-direction:column;gap:8px}}
