/* Shared Ham101 design contract. Load after page and component styles. */
:root{
 --ham-paper:#e8ebd8;--ham-ink:#17221e;--ham-teal:#195e5b;
 --ham-amber:#e9ba62;--ham-chassis:#191e1c;--ham-line:#a4b099;
 --ham-body:Atkinson,'Segoe UI',sans-serif;--ham-heading:RadioCondensed,Manrope,sans-serif;
 --ham-space-1:4px;--ham-space-2:8px;--ham-space-3:12px;--ham-space-4:16px;--ham-space-6:24px;--ham-space-8:32px;
 --ham-title:clamp(1.8rem,3vw,2.6rem);--ham-section:clamp(1.35rem,2vw,1.7rem);--ham-radius:8px;
}
.radio-console{font-family:var(--ham-body)}
.radio-console #main{color:var(--ham-ink)}
.radio-console #main .page-heading h1,.reference-console #main>header h1{font-family:var(--ham-heading);font-size:var(--ham-title)!important;line-height:1.12;letter-spacing:0;margin:0 0 var(--ham-space-3)!important}
.radio-console #main .page-heading p,.reference-console #main>header>p{font-family:var(--ham-body);font-size:1rem!important;line-height:1.5!important;max-width:65ch;margin:0!important}
.radio-console #main .page-heading,.reference-console #main>header{padding:var(--ham-space-6)!important}
.radio-console #main>section>h2,.radio-console #main .chapter-heading{font-family:var(--ham-heading);font-size:var(--ham-section);line-height:1.2}
.radio-console #main p.source-note,.radio-console #main p.review-date{margin:var(--ham-space-8) 0 var(--ham-space-3);padding-top:var(--ham-space-4);border-top:1px solid var(--ham-line);font:400 .82em/1.5 var(--ham-body)}
.radio-console #main details.guide-disclosure{border-radius:var(--ham-radius)}
.radio-console #main details.guide-disclosure>summary{padding:var(--ham-space-4);font-weight:700;min-height:44px;cursor:pointer}
.radio-console .site-footer{display:flex;flex-wrap:wrap;gap:var(--ham-space-3) var(--ham-space-6);align-items:center;padding:var(--ham-space-6) var(--ham-space-3);margin-top:var(--ham-space-4);font:400 .8rem/1.5 var(--ham-body);color:#e0e5de;background:none;border:0}
.radio-console .site-footer p{margin:0}.radio-console .site-footer a{color:#e0e5de;min-height:44px;align-content:center}
@media(max-width:1000px){:root{--ham-title:1.65rem;--ham-section:1.4rem}.radio-console #main .page-heading,.reference-console #main>header{padding:var(--ham-space-4)!important}.radio-console #main .page-heading p,.reference-console #main>header>p{font-size:.9rem!important}}
@media print{.radio-console .site-footer{display:none}.radio-console #main .page-heading h1,.reference-console #main>header h1{font-size:24pt!important}}

/* Shared accessibility entry point, available without sound or dial gestures. */
.radio-console .accessibility-help{grid-column:1/-1;flex-basis:100%;width:100%;margin:0;padding:0;border:0;background:none;box-shadow:none;color:#e9eedf;font:400 .75rem/1.5 Atkinson,sans-serif}
.radio-console .accessibility-help summary{min-height:36px;padding:4px 0;cursor:pointer;color:#ffe0a0;font:700 .7rem/1.5 Atkinson,sans-serif}
.radio-console .accessibility-help>div{max-width:70ch;padding:12px 0}
.radio-console .accessibility-help p{margin:0 0 12px;font:inherit;color:inherit}
.radio-console .accessibility-help a{color:#ffe0a0}
.radio-console .accessibility-help button{background:#e9ba62;color:#17221e;border:1px solid #ffe0a0;border-radius:5px;min-height:44px;padding:8px 14px;margin-bottom:12px;font:700 .8rem Atkinson,sans-serif}
.radio-console :is(a,button,input,select,textarea,summary):focus-visible{outline:3px solid #e9ba62;outline-offset:3px}
.radio-console #main :is(a,button,input,select,textarea,summary):focus-visible{outline-color:#195e5b}
.radio-console .skip:focus{position:fixed;top:8px;left:8px;z-index:10000;padding:12px 18px;background:#fff4d5;color:#17221e;transform:none;clip-path:none;width:auto;height:auto}
.radio-console .skip-audio:focus{top:64px}
@media(forced-colors:active){.radio-console :is(a,button,input,select,textarea,summary):focus-visible{outline:3px solid Highlight}.radio-console button[aria-pressed=true]{outline:2px solid Highlight}}
@media print{.accessibility-help,.skip-audio{display:none!important}}

/* One document scroll surface: never crop long guides inside a viewport chassis. */
@media screen{
 body.radio-console:not(.reference-console),body.radio-console.reference-console{display:block;height:auto;min-height:100dvh;overflow:visible}
 .radio-console .console-workspace,.radio-console .reference-chassis{height:auto;min-height:0;max-height:none;overflow:visible;align-items:start}
 .radio-console .console-workspace>main,.radio-console .reference-chassis>.desk-reference{height:auto;min-height:0;max-height:none;overflow:visible;align-self:start}
 .radio-console>.masthead,.radio-console>.main-nav{position:relative;top:auto}
 .radio-console #main [id],.radio-console #main [tabindex]{scroll-margin-top:24px}
 .radio-console .console-workspace>.function-keys,.radio-console .reference-chassis>.reference-keys{height:auto;min-height:0;max-height:none;overflow:visible;align-self:start}
 .radio-console .console-workspace>.radio-controls,.radio-console .reference-chassis>.radio-controls{height:auto;min-height:0;max-height:none;overflow:visible;align-self:start}
}
@media screen and (min-width:1001px) and (min-height:800px){
 .radio-console .console-workspace>.function-keys,.radio-console .reference-chassis>.reference-keys,.radio-console .console-workspace>.radio-controls,.radio-console .reference-chassis>.radio-controls{position:sticky;top:16px;max-height:calc(100dvh - 32px);overflow-y:auto;overflow-x:hidden}
}
@media screen and (max-height:799px),screen and (max-width:1000px){
 .radio-console .console-workspace>.function-keys,.radio-console .reference-chassis>.reference-keys,.radio-console .console-workspace>.radio-controls,.radio-console .reference-chassis>.radio-controls{position:static;max-height:none}
}
@media screen{.radio-console:not(.reference-console)>.site-footer{display:flex}}

/* Consistent rounded labels, including multi-line tags on narrow screens. */
.radio-console :is(.tag,.band-pill,.gateway-tag,.license-badge){display:inline-flex;align-items:center;max-width:100%;padding:.3em .65em;border-radius:8px;line-height:1.4;white-space:normal;overflow-wrap:anywhere;vertical-align:middle}
/* Shared question rows and quiet end-of-page editorial notes. */
.radio-console #main .page-questions{margin:1.5rem 0 0!important;padding:1.1rem 0 0;border-top:1px solid #a6b4a3}
.radio-console #main .page-questions>h2{margin:0 0 .9rem;padding:0;background:none;color:#164d50;font:700 1.25rem/1.35 Atkinson,'Segoe UI',sans-serif}
.radio-console #main .page-questions>details{margin:0;border:0;border-bottom:1px solid #b5c2af;border-radius:0;background:#e3eadb;padding:0}
.radio-console #main .page-questions>details:nth-of-type(even){background:#f1f3e9}
.radio-console #main .page-questions summary{display:list-item;list-style:disclosure-closed;cursor:pointer;padding:.9rem 1.1rem;font-weight:700;line-height:1.5;color:#164d50;min-height:44px;box-sizing:border-box}
.radio-console #main .page-questions details[open]>summary{list-style:disclosure-open;border-bottom:1px solid #c4cebd}
.radio-console #main .page-questions summary:hover{background:#d7e3d1}
.radio-console #main .page-questions summary:focus-visible{outline:3px solid #986417;outline-offset:-3px}
.radio-console #main .page-questions details>p{margin:0;padding:.8rem 1.1rem 0;max-width:70ch;line-height:1.65}
.radio-console #main .page-questions details>p:last-child{padding-bottom:1rem}
.radio-console #main .page-review{margin:1.2rem 0 0;padding:.8rem 0 0;border-top:1px solid #b5c2af;font-size:.82rem;line-height:1.5}
.radio-console #main .page-review p.source-note,.radio-console #main .page-review p.review-date{margin:0 0 .6rem!important;padding:0;border:0;font:inherit}
.radio-console #main .page-questions summary{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;list-style:none}
.radio-console #main .page-questions summary::-webkit-details-marker{display:none}
.radio-console #main .page-questions summary::after{content:"";flex:0 0 18px;width:18px;height:18px;margin-top:.2em;background:center/18px no-repeat url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='m6 9 6 6 6-6' fill='none' stroke='%23164d50' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")}
.radio-console #main .page-questions details[open]>summary::after{transform:rotate(180deg)}

/* Shared recommendations: purposeful destinations with useful context. */
.radio-console .resource-recommendations{margin:1.5rem 0;padding:0;background:none;border:0}
.radio-console .resource-recommendations h2{margin:0 0 .65rem}
.radio-console .resource-recommendations ul{list-style:none;margin:0;padding:0;display:block}
.radio-console .resource-recommendations li{margin:0;padding:0;border-bottom:1px solid #b5c2af}
.radio-console .resource-recommendations li:nth-child(odd){background:#e3eadb}
.radio-console .resource-recommendations li:nth-child(even){background:#edf0e3}
.radio-console .resource-recommendations li a{display:grid;grid-template-columns:minmax(0,1fr) 20px;gap:.3rem 1rem;align-items:center;margin:0;padding:1rem;border:0;border-radius:0;background:none;text-decoration:none;min-height:44px;color:#164d50}
.resource-recommendations strong{font-size:1rem;text-decoration:underline;text-underline-offset:.2em}
.resource-recommendations a span{grid-column:1;font-size:.9rem;line-height:1.5;font-weight:400;color:#243b3b}
.resource-recommendations svg{grid-column:2;grid-row:1/3;width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:1.8}
.radio-console .resource-recommendations a:hover{background:#d5e2d6}
.radio-console .resource-recommendations a:focus-visible{outline:3px solid #005a62;outline-offset:-3px}

/* Compact hardware utility keys; disclosures overlay rather than stretch the chassis. */
.radio-console .masthead-tools{display:flex;flex-direction:column;gap:6px;flex:0 0 auto;position:relative;align-self:center;min-width:190px}
.radio-console .masthead-tools .header-actions{margin:0;width:100%}
.radio-utilities{display:flex;gap:6px;position:relative}
.radio-console .radio-utilities details{position:static;flex:1;width:auto;min-width:0;margin:0;padding:0;border:0;background:none;box-shadow:none}
.radio-console .radio-utilities summary{display:flex;align-items:center;justify-content:center;gap:5px;min-height:38px;padding:6px 9px;list-style:none;white-space:nowrap;border:1px solid #858778;border-radius:6px;background:linear-gradient(#454940,#20251f);box-shadow:inset 0 2px 2px #ffffff55,0 2px 3px #0008;color:#f5efd9;font:700 12px/1.2 Atkinson,sans-serif;cursor:pointer}
.radio-utilities summary::-webkit-details-marker{display:none}.radio-utilities summary svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8}
.radio-console .radio-utilities details[open]>summary{color:#ffe09b;border-color:#e6b858;background:linear-gradient(#655333,#302b20)}
.radio-console .radio-utilities .utility-panel{position:absolute;z-index:350;top:calc(100% + 8px);right:0;width:min(440px,90vw);max-width:none;max-height:65vh;overflow:auto;overscroll-behavior:contain;margin:0;padding:18px;background:#0c202b;color:#d8edf4;border:2px solid #79887e;border-radius:8px;box-shadow:inset 0 0 0 3px #172e35,0 8px 18px #0009;font:400 15px/1.5 Atkinson,sans-serif}
.radio-utilities .utility-panel h2{margin:0 0 10px!important;padding:0!important;background:none!important;color:#ffe09b!important;font:700 20px/1.2 Atkinson,sans-serif!important}
.radio-utilities .utility-panel p,.radio-utilities .utility-panel label,.radio-utilities .utility-panel dt,.radio-utilities .utility-panel dd{color:inherit;font:inherit}
.radio-utilities .utility-panel a{color:#ffe09b}.radio-utilities .utility-panel p{margin:8px 0}.radio-utilities .utility-panel .callsign-attribution{font-size:12px}
.radio-utilities .callsign-entry input{background:#06151b;color:#c6f1dc;border:2px solid #687b73;border-radius:4px;box-shadow:inset 0 2px 5px #000;font:700 22px/1.3 Atkinson,sans-serif;letter-spacing:.06em}
.radio-utilities .callsign-entry button{background:linear-gradient(#ffe3a0,#ba8c37);border:1px solid #ffe4a9;border-radius:5px;color:#17241f;box-shadow:inset 0 2px 2px #fff8,0 2px 3px #0008;font:700 13px/1.2 Atkinson,sans-serif;padding:10px 14px}
.radio-utilities :focus-visible{outline:3px solid #ffe09b!important;outline-offset:3px}
@media(max-width:1000px){.radio-console .masthead-tools{grid-column:1/-1;display:flex;flex-direction:row;flex-wrap:wrap;align-items:center;justify-content:space-between;width:100%;min-width:0}.radio-console .masthead-tools .header-actions{width:auto!important;flex:1}.radio-utilities{flex:1;justify-content:flex-end}.radio-console .radio-utilities summary{min-height:44px}.radio-console .radio-utilities .utility-panel{position:fixed;top:15vh;right:5vw;width:90vw;max-height:75vh}.radio-utilities .callsign-entry{flex-direction:row}}
@media print{.radio-utilities{display:none!important}}
/* Layout audit: align the license and utility bank, reserve real icon space. */
.radio-console .masthead-tools{width:260px;min-width:260px;gap:8px}
.radio-console .masthead-tools .header-actions{display:flex;justify-content:stretch}
.radio-console .masthead-tools .license-switch{flex:1;width:100%;min-width:0;box-sizing:border-box}
.radio-console .masthead-tools .license-switch select{min-width:0;width:100%}
.radio-utilities{display:grid;grid-template-columns:1fr 1fr;width:100%;gap:8px}
.radio-console .radio-utilities summary{min-height:44px;padding:8px;gap:6px}
.radio-console .radio-utilities summary svg{display:block;flex:0 0 18px;width:18px;height:18px;min-width:18px}
@media(max-width:1000px){.radio-console .masthead-tools{width:100%;min-width:0;display:grid;grid-template-columns:minmax(0,1fr);gap:6px}.radio-console .masthead-tools .header-actions{width:100%!important}.radio-console .masthead-tools .header-actions:empty{display:none}.radio-utilities{justify-content:stretch}.radio-console .radio-utilities summary{font-size:13px}}
.radio-console .radio-utilities>details{grid-column:auto;grid-row:auto}.radio-console .masthead-tools>.header-actions{grid-column:1/-1;grid-row:1}.radio-console .masthead-tools>.radio-utilities{grid-column:1/-1;grid-row:2}
