/* AVA Digital Towers shell, based on the AVA Siting Dashboard. */
body { background:var(--bg); }
.hub-icons { position:absolute; width:0; height:0; overflow:hidden; }
.hub-icon { width:20px; height:20px; flex-shrink:0; fill:none; stroke:currentColor; stroke-width:1.65; stroke-linecap:round; stroke-linejoin:round; vertical-align:middle; }
.hub-skip { position:fixed; top:-100px; left:16px; z-index:2000; padding:12px 20px; background:var(--accent); color:var(--text); border-radius:8px; }
.hub-skip:focus { top:16px; }
.hub-sidebar { position:fixed; inset:0 auto 0 0; z-index:1000; display:flex; flex-direction:column; width:248px; padding:32px 19px 0; overflow-y:auto; border-right:1px solid var(--border); background:var(--sidebar); color:var(--muted); }
.hub-brand { display:flex; align-items:center; gap:9px; padding:0 11px; width:fit-content; color:var(--text); text-decoration:none; }
.hub-brand>svg { width:39px; height:37px; color:var(--accent); }
.hub-brand>span { font-size:31px; line-height:1; font-weight:780; letter-spacing:1.8px; }
.hub-brand small { display:block; margin-top:9px; color:var(--muted); font-size:8px; font-weight:500; letter-spacing:2.1px; }
.hub-workspace { display:flex; align-items:center; gap:10px; padding:14px 11px; margin:34px 0 30px; border:1px solid var(--border); border-radius:10px; background:var(--field); }
.hub-workspace-symbol { display:grid; place-items:center; width:33px; height:35px; border-radius:8px; color:var(--accent-secondary); background:var(--violet-soft); }
.hub-workspace strong,.hub-workspace small { display:block; }
.hub-workspace strong { color:var(--text); font-size:12px; font-weight:550; }
.hub-workspace small { margin-top:5px; color:var(--muted); font-size:9px; }
.hub-nav-label { margin:0 13px 12px; color:var(--muted); font-size:9px; letter-spacing:1.6px; }
.hub-nav { display:grid; gap:7px; }
.hub-nav>a { display:flex; align-items:center; gap:13px; min-height:47px; padding:11px 14px; border-radius:8px; color:var(--muted); font-size:12px; text-decoration:none; transition:background .15s; }
.hub-nav>a:hover { background:var(--surface-hover); color:var(--text); }
.hub-nav>a.is-active { background:var(--accent-soft); color:var(--accent); }
.hub-nav .hub-icon { width:18px; height:18px; }
.hub-nav .hub-nav-lock { margin-left:auto; width:13px; height:13px; opacity:.7; }
.hub-nav i { display:none; margin-left:auto; width:5px; height:5px; background:var(--accent); border-radius:50%; }
.hub-nav .is-active i { display:block; }
.hub-sidebar-bottom { margin-top:auto; padding-top:80px; }
.hub-settings-link { display:flex; align-items:center; gap:11px; margin:0 4px 16px; padding:12px 10px; border-radius:8px; color:var(--muted); font-size:11px; text-decoration:none; }
.hub-settings-link:hover { color:var(--text); background:var(--surface-hover); }
.hub-settings-link.is-active { color:var(--accent); background:var(--accent-soft); }
.hub-settings-link .hub-icon { width:16px; height:16px; }
.has-account .hub-sidebar-note { display:none; }
.has-account .hub-sidebar-bottom { padding-top:36px; }
.hub-sidebar-note { margin:0 4px 27px; padding:20px 17px; border:1px solid var(--border); border-radius:12px; background:radial-gradient(ellipse at 100% 0%,#50406750,transparent 80%),var(--surface); }
.hub-note-icon { display:grid; place-items:center; width:29px; height:29px; margin-bottom:13px; border-radius:8px; background:var(--violet-soft); color:var(--accent-secondary); }
.hub-note-icon svg { width:17px; }
.hub-sidebar-note strong { color:var(--text); font-size:15px; line-height:1.6; font-weight:550; }
.hub-sidebar-note p { margin:11px 0 0; color:var(--muted); font-size:10px; line-height:1.7; }
.hub-profile { display:flex; align-items:center; gap:10px; padding:20px 6px; border-top:1px solid var(--border-soft); color:var(--text); text-decoration:none; }
.hub-profile-avatar { display:grid; place-items:center; flex:none; width:33px; height:33px; border-radius:10px; background:var(--violet-soft); color:var(--accent-secondary); font-weight:650; }
.hub-profile strong { display:block; max-width:148px; overflow:hidden; text-overflow:ellipsis; font-size:11px; font-weight:550; }
.hub-profile small { display:flex; align-items:center; gap:6px; margin-top:4px; color:var(--muted); font-size:9px; }
.hub-profile i { width:5px; height:5px; border-radius:50%; background:var(--accent); }
.hub-shell { display:flex; flex-direction:column; min-height:100dvh; margin-left:248px; color:var(--text); }
.hub-topbar { display:flex; align-items:center; justify-content:space-between; min-height:76px; padding:0 38px; border-bottom:1px solid var(--border-soft); background:var(--surface); }
.hub-breadcrumb { display:flex; align-items:center; gap:17px; font-size:11px; }
.hub-breadcrumb>span { color:var(--muted); }
.hub-breadcrumb>b { color:var(--border); font-weight:400; }
.hub-breadcrumb>strong { font-weight:550; }
.hub-account-link { display:flex; align-items:center; gap:9px; color:var(--muted); font-size:11px; text-decoration:none; }
.hub-account-link>.hub-icon { width:14px; height:14px; color:var(--accent-secondary); }
#hub-account-label { max-width:160px; overflow:hidden; text-overflow:ellipsis; }
#hub-avatar { display:grid; place-items:center; width:32px; height:32px; margin-left:7px; border:3px solid var(--surface); outline:1px solid var(--border); border-radius:50%; background:var(--violet-soft); color:var(--accent-secondary); font-weight:600; }
#hub-menu { display:none; }
#hub-content { flex:1; min-width:0; }
#hub-content:focus { outline:none; }
.hub-page,.launcher { color-scheme:dark; color:var(--text); }
.hub-page { max-width:1530px; margin:auto; padding:36px 38px 28px; }
.hub-page-heading { display:flex; align-items:center; justify-content:space-between; gap:24px; margin-bottom:29px; }
.hub-eyebrow { margin:0 0 9px; color:var(--muted); font-size:9px; line-height:1.5; font-weight:650; letter-spacing:1.65px; }
.hub-page-heading h1 { margin:0; font-size:clamp(25px,2.5vw,36px); font-weight:650; letter-spacing:-1.15px; }
.hub-page-heading p:last-child { margin:10px 0 0; color:var(--muted); font-size:12px; }
.hub-page h1:focus,.launcher h1:focus,.siting-page h1:focus { outline:none; }
.hub-outline-badge { display:flex; align-items:center; gap:7px; flex:none; padding:8px 10px; border:1px solid var(--border); border-radius:7px; color:var(--muted); font-size:10px; }
.hub-outline-badge i { width:5px; height:5px; background:var(--success); border-radius:50%; }
.hub-hero { position:relative; min-height:307px; overflow:hidden; isolation:isolate; border-radius:17px; background:radial-gradient(ellipse at 95% 0%,#403b723d,transparent 55%),var(--surface); color:var(--text); }
.hub-hero::before { content:""; position:absolute; inset:0; z-index:-1; opacity:.2; background-image:linear-gradient(#6d8aac25 1px,transparent 1px),linear-gradient(90deg,#6d8aac25 1px,transparent 1px); background-size:35px 35px; mask-image:linear-gradient(90deg,transparent 25%,#000); }
.hub-hero-content { position:relative; z-index:2; width:60%; padding:32px 35px; }
.hub-hero-eyebrow { display:flex; align-items:center; gap:7px; margin:0; color:var(--muted); font-size:8px; letter-spacing:1.45px; }
.hub-hero-eyebrow svg { width:13px; height:13px; color:var(--accent); }
.hub-hero h2 { margin:19px 0 0; font-size:clamp(28px,2.7vw,39px); line-height:1.2; letter-spacing:-1.2px; font-weight:550; }
.hub-hero h2 span { color:var(--accent); }
.hub-hero-content>p:not(.hub-hero-eyebrow) { margin:14px 0 20px; color:var(--muted); font-size:11px; line-height:1.9; }
.hub-button { display:inline-flex; align-items:center; justify-content:space-between; gap:22px; min-height:39px; padding:9px 14px; border:1px solid transparent; border-radius:7px; font-size:11px; font-weight:600; text-decoration:none; }
.hub-button .hub-icon { width:16px; height:16px; }
.hub-button-lime { background:var(--accent); color:var(--on-accent); }
.hub-button-lime:hover { background:var(--accent-strong); }
.hub-hero-art { position:absolute; right:-8px; top:-29px; z-index:1; width:56%; height:124%; object-fit:contain; pointer-events:none; }
.hub-hero-coordinate { position:absolute; top:22px; right:24px; color:var(--muted); font-size:7px; letter-spacing:1.5px; }
.hub-hero-caption { position:absolute; bottom:20px; right:24px; display:flex; align-items:center; gap:7px; color:var(--muted); font-size:7px; letter-spacing:1.4px; }
.hub-hero-caption i { width:4px; height:4px; background:var(--accent); border-radius:50%; }
.hub-section-heading { display:flex; justify-content:space-between; align-items:center; margin:31px 0 18px; gap:20px; }
.hub-section-heading h2 { margin:0 0 5px; font-size:18px; font-weight:600; letter-spacing:-.4px; }
.hub-section-heading p { margin:0; color:var(--muted); font-size:11px; }
.hub-section-heading>span { color:var(--muted); font-size:8px; letter-spacing:1.2px; }
.hub-tool-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:21px; }
.hub-tool-card { display:block; min-width:0; padding:24px; border:1px solid var(--border); border-radius:14px; background:var(--surface); color:var(--text); text-decoration:none; box-shadow:0 4px 16px #0002; transition:box-shadow .15s,border-color .15s; }
.hub-tool-card:hover { border-color:var(--accent-secondary); box-shadow:0 6px 25px #0003; }
.hub-card-top { display:flex; align-items:center; justify-content:space-between; gap:15px; }
.hub-icon-tile { display:inline-grid; place-items:center; width:43px; height:43px; border-radius:12px; }
.hub-icon-tile>.hub-icon { width:24px; height:24px; }
.hub-tile-mint { background:var(--success-soft); color:var(--success); }
.hub-tile-violet { background:var(--violet-soft); color:var(--accent-secondary); }
.hub-card-badge { display:inline-flex; align-items:center; gap:5px; padding:4px 8px; border-radius:5px; background:var(--violet-soft); color:var(--accent-secondary); font-size:9px; }
.hub-card-badge>.hub-icon { width:11px; height:11px; }
.hub-badge-public { background:var(--success-soft); color:var(--success); }
.hub-tool-card h3 { margin:19px 0 8px; font-size:20px; font-weight:600; letter-spacing:-.5px; }
.hub-tool-card>p { max-width:390px; margin:0; color:var(--muted); font-size:12px; line-height:1.8; }
.hub-feature-tags { display:flex; flex-wrap:wrap; gap:6px; margin:20px 0 24px; }
.hub-feature-tags span { padding:4px 7px; border:1px solid var(--border-soft); border-radius:5px; color:var(--muted); font-size:9px; }
.hub-card-action { display:flex; align-items:center; justify-content:space-between; padding-top:16px; border-top:1px solid var(--border-soft); color:var(--accent); font-size:11px; font-weight:550; }
.hub-card-action>.hub-icon { width:17px; height:17px; }
.hub-get-started { display:grid; grid-template-columns:1fr 1.3fr; align-items:center; gap:45px; margin-top:25px; padding:26px 28px; border:1px solid var(--border); border-radius:14px; background:var(--surface); }
.hub-get-started h2 { max-width:250px; margin:0 0 10px; font-size:21px; line-height:1.35; font-weight:550; letter-spacing:-.5px; }
.hub-start-intro>p:last-child { margin:0; max-width:250px; color:var(--muted); font-size:11px; line-height:1.8; }
.hub-get-started ol { display:grid; gap:18px; margin:0; padding:0; list-style:none; }
.hub-get-started li { display:flex; gap:13px; align-items:flex-start; }
.hub-get-started li>span { display:grid; place-items:center; flex:none; width:26px; height:26px; border:1px solid var(--border); border-radius:50%; color:var(--accent-secondary); font-size:9px; }
.hub-get-started h3 { margin:0 0 3px; font-size:11px; font-weight:600; }
.hub-get-started li p { margin:0; color:var(--muted); font-size:10px; line-height:1.6; }
.hub-footer { display:flex; align-items:center; justify-content:space-between; gap:20px; margin:12px 38px 0; padding:23px 0; border-top:1px solid var(--border-soft); color:var(--muted); font-size:9px; }
.hub-footer>span:first-child { letter-spacing:1.2px; font-size:8px; }
.hub-footer strong { color:var(--text); font-size:13px; letter-spacing:1.4px; }
.hub-footer b { padding:0 10px; color:var(--border); font-weight:400; }
.hub-footer>span:last-child { display:flex; align-items:center; gap:9px; }
.hub-footer i { width:4px; height:4px; border-radius:50%; background:var(--success); }
.hub-back-link { display:inline-block; margin:0 0 35px; color:var(--accent-secondary); text-decoration:none; font-size:11px; }
.hub-auth-layout { display:grid; grid-template-columns:minmax(0,1fr) minmax(310px,410px); align-items:start; gap:65px; max-width:1000px; padding:20px 0 60px; margin:auto; }
.hub-auth-intro>.hub-icon-tile { margin-bottom:24px; }
.hub-auth-intro h1 { margin:12px 0 17px; font-size:clamp(28px,3.3vw,42px); line-height:1.2; letter-spacing:-1.3px; font-weight:600; }
.hub-auth-intro>p:not(.hub-eyebrow) { color:var(--muted); font-size:12px; line-height:1.9; max-width:360px; }
.hub-auth-intro ul { display:grid; gap:15px; margin:27px 0; padding:0; list-style:none; }
.hub-auth-intro li { display:flex; align-items:center; gap:9px; color:var(--muted); font-size:11px; }
.hub-auth-intro li>.hub-icon { width:15px; height:15px; color:var(--success); }
.hub-auth-intro .hub-auth-note { padding-top:20px; border-top:1px solid var(--border-soft); font-size:11px; }
#auth-account-mount .ava-account-card { padding:28px; border-radius:15px; box-shadow:0 8px 35px #0002; }
.launcher { max-width:1530px; padding:36px 38px; }
.launcher-header h1 { font-size:32px; }
.launcher .airport-preview { background:var(--field); }
.launcher .workspace-access { background:var(--accent-soft); border-color:var(--accent-border); }
.hub-page button,.launcher button { background:var(--surface-raised); color:var(--text); }
.hub-page button:hover:not(:disabled),.launcher button:hover:not(:disabled) { background:var(--surface-hover); border-color:var(--accent-border); color:var(--text); }
.hub-page .primary,.launcher .primary { background:var(--accent); border-color:var(--accent); color:var(--on-accent); }
.hub-page .primary:hover:not(:disabled),.launcher .primary:hover:not(:disabled) { background:var(--accent-strong); border-color:var(--accent-strong); color:var(--on-accent); }
.hub-page .ava-account-status[data-kind="error"],.launcher .ava-account-status[data-kind="error"] { color:var(--danger); }
.hub-page .ava-account-status[data-kind="success"],.launcher .ava-account-status[data-kind="success"] { color:var(--success); }
.hub-page .ava-auth-tabs button[aria-pressed="true"] { background:var(--violet-soft); color:var(--accent-secondary); }
.launcher .ava-danger-button { color:var(--danger); background:var(--danger-soft); border-color:var(--danger); }
.hub-page input:focus,.launcher input:focus,.launcher select:focus { border-color:var(--accent); box-shadow:0 0 0 3px var(--focus-ring); }
.siting-page { background:var(--bg); color:var(--text); max-width:none; }
.in-siting-workspace #hub-content { background:var(--bg); }
.in-siting-workspace .hub-footer { display:none; }
.in-siting-workspace .siting-workspace { height:calc(100dvh - 254px); }
.in-siting-workspace .siting-workspace { grid-template-columns:minmax(0,1fr) 370px; }
.hub-backdrop { display:none; }
.hub-airport-documents { margin-top:28px; padding:23px; border:1px solid var(--border); border-radius:14px; background:var(--surface); }
.hub-airport-documents h3 { margin:0 0 7px; font-size:17px; font-weight:600; }
.hub-airport-document-status { margin:0; color:var(--muted); font-size:12px; line-height:1.7; }
.hub-airport-document-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; margin-top:17px; }
.hub-airport-document-link { display:flex; align-items:flex-start; gap:12px; min-width:0; padding:16px; border:1px solid var(--border); border-radius:10px; background:var(--field); color:var(--text); text-decoration:none; }
.hub-airport-document-link:hover { border-color:var(--accent-secondary); }
.hub-airport-document-link>.ava-files-icon { flex:none; width:21px; height:21px; color:var(--accent-secondary); }
.hub-airport-document-link>span:first-of-type { min-width:0; }
.hub-airport-document-link strong { display:block; margin:1px 0 6px; font-size:12px; font-weight:600; }
.hub-airport-document-link small { display:block; font-size:10px; line-height:1.7; color:var(--muted); }
.hub-airport-document-link .hub-airport-document-note { margin-top:6px; }
.hub-airport-document-open { flex:none; margin-left:auto; color:var(--accent); font-size:10px; white-space:nowrap; }
.hub-airport-documents>button { margin-top:12px; }
body.assignment-survey .hub-sidebar,body.assignment-survey .hub-topbar,body.assignment-survey .hub-footer,body.assignment-survey .hub-backdrop { display:none; }
body.assignment-survey .hub-shell { margin-left:0; }
body.assignment-survey #survey-page { max-width:1040px; margin-inline:auto; }
body.assignment-survey #survey-page>.hub-page-heading { display:none; }
@media(min-width:1550px) { .hub-hero { min-height:340px; } .hub-hero-content { padding:40px; } }
@media(max-width:1200px) {
  .hub-page,.launcher { padding:30px 26px; }
  .hub-topbar { padding:0 26px; }
  .hub-footer { margin-left:26px; margin-right:26px; }
  .hub-outline-badge { display:none; }
  .hub-auth-layout { gap:35px; grid-template-columns:minmax(0,1fr) minmax(300px,380px); }
  .hub-hero-content { padding:30px; }
  .hub-hero-art { right:-28px; width:56%; }
  .in-siting-workspace .siting-workspace { grid-template-columns:minmax(0,1fr) 330px; }
  .in-siting-workspace .site-header { flex-wrap:wrap; }
  .in-siting-workspace #preset-toolbar { order:3; flex-basis:100%; margin-left:0; padding-top:10px; border-top:1px solid var(--border-soft); }
  .in-siting-workspace .site-header .pill-button { margin-left:auto; }
}
@media(min-width:761px) and (max-width:1050px) {
  .in-siting-workspace .siting-workspace { height:auto; grid-template-columns:minmax(0,1fr); }
  .in-siting-workspace .map-shell { min-height:420px; }
  .in-siting-workspace .settings-card { max-height:700px; }
  .hub-auth-layout { grid-template-columns:minmax(0,1fr); max-width:470px; gap:20px; }
  .hub-auth-intro ul { display:none; }
  .hub-get-started { grid-template-columns:1fr; gap:22px; }
}
@media(max-width:960px) {
  .hub-airport-document-links { grid-template-columns:minmax(0,1fr); }
  .hub-hero h2 { font-size:30px; }
  .hub-hero-art { right:-65px; opacity:.75; }
  .hub-hero-content { width:80%; }
  .hub-hero-coordinate { display:none; }
  .hub-hero-caption { font-size:6px; letter-spacing:1px; }
  .hub-tool-grid { grid-template-columns:1fr; gap:16px; }
}
@media(max-width:760px) {
  .hub-sidebar { width:248px; transform:translateX(-100%); visibility:hidden; transition:transform .2s,visibility .2s; }
  .hub-sidebar.is-open { transform:translateX(0); visibility:visible; }
  .hub-backdrop:not([hidden]) { display:block; position:fixed; inset:0; z-index:999; width:100%; height:100%; border:0; border-radius:0; background:#0b142e88; }
  .hub-shell { margin-left:0; }
  #hub-menu { display:grid; place-items:center; padding:4px; min-height:32px; width:32px; background:transparent; border:0; color:var(--muted); }
  .hub-topbar { min-height:64px; padding:0 18px; }
  .hub-breadcrumb { gap:11px; }
  .hub-breadcrumb>span,.hub-breadcrumb>b { display:none; }
  .hub-page,.launcher { padding:26px 20px; }
  .hub-page-heading { margin-bottom:24px; }
  .hub-page-heading h1 { font-size:29px; }
  .hub-page-heading p:last-child { font-size:12px; line-height:1.8; }
  .hub-tool-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .hub-tool-card { padding:20px; }
  .hub-card-top { align-items:flex-start; }
  .hub-card-badge { font-size:8px; }
  .hub-section-heading>span { display:none; }
  .hub-get-started { gap:24px; padding:24px; }
  .hub-auth-layout { grid-template-columns:minmax(0,1fr); max-width:470px; gap:22px; padding:0; }
  .hub-auth-intro h1 { font-size:34px; }
  .hub-auth-intro ul { display:none; }
  .hub-auth-intro .hub-auth-note { margin-bottom:0; }
  .hub-back-link { margin-bottom:24px; }
  .hub-footer { margin-left:20px; margin-right:20px; }
  .in-siting-workspace .siting-workspace { height:auto; grid-template-columns:minmax(0,1fr); }
}
@media(max-width:520px) {
  .hub-airport-documents { padding:18px; }
  .hub-airport-document-link { flex-wrap:wrap; padding:13px; }
  .hub-airport-document-link>span:first-of-type { flex:1; }
  .hub-airport-document-open { width:100%; margin-left:33px; }
  .hub-page,.launcher { padding:25px 16px; }
  .hub-topbar { padding:0 14px; }
  .hub-hero { min-height:365px; }
  .hub-hero-content { padding:25px; width:100%; }
  .hub-hero h2 { font-size:32px; }
  .hub-hero-content>p:not(.hub-hero-eyebrow) { max-width:220px; font-size:10px; }
  .hub-hero-art { width:85%; height:70%; top:auto; bottom:-34px; right:-90px; opacity:.6; z-index:-1; }
  .hub-hero-caption { bottom:17px; right:19px; font-size:6px; }
  .hub-tool-grid { grid-template-columns:minmax(0,1fr); }
  .hub-get-started { grid-template-columns:minmax(0,1fr); padding:22px; }
  .hub-footer>span:last-child { display:none; }
  .hub-page-heading h1 { font-size:27px; }
  #auth-account-mount .ava-account-card { padding:22px; }
  .hub-auth-intro>.hub-icon-tile { display:none; }
}
@media(prefers-reduced-motion:reduce) { .hub-sidebar,.hub-nav>a,.hub-tool-card { transition:none; } }
