/* Shared site chrome. Tool-specific layout and status styles stay in styles.css. */
:root{--shell-radius:10px;--shell-shadow:0 12px 32px rgba(22,26,29,.11)}
.shell{min-height:100vh;min-height:100svh;display:flex;flex-direction:column}
.shell>main{flex:1;min-width:0;outline:none}
.site-head,body.is-home .site-head{position:relative;z-index:30;flex:none;margin:0 0 24px;border-bottom:1px solid var(--line)}
.site-topbar{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:76px;padding:9px 0;position:relative}
.site-topbar .site-brand{order:0;display:flex;flex:none;align-self:center;margin:0}
.site-topbar .site-brand .brand-logo-img{width:auto;max-width:none;height:54px;object-fit:contain;border-radius:0}
.tool-nav{display:flex;align-items:center;gap:8px;min-width:0}
.nav-group{position:relative}
.nav-trigger,.nav-direct,.site-menu-toggle{display:inline-flex;align-items:center;justify-content:center;gap:9px;min-height:44px;padding:0 14px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--muted);font:650 .86rem var(--sans);text-decoration:none;white-space:nowrap;cursor:pointer}
.nav-trigger::after{content:"";width:6px;height:6px;margin-top:-3px;border:solid currentColor;border-width:0 1.5px 1.5px 0;transform:rotate(45deg)}
.nav-trigger[aria-expanded="true"]::after{transform:rotate(225deg);margin-top:3px}
.nav-trigger:hover,.nav-direct:hover,.nav-trigger[aria-expanded="true"]{background:var(--panel-2);color:var(--text)}
.nav-trigger.is-current,.nav-direct.active{color:var(--accent);background:var(--accent-2);border-color:#d5e9df}
.nav-direct{margin-left:8px;color:var(--accent)}
.tool-menu{position:absolute;right:0;top:calc(100% + 8px);z-index:40;width:280px;padding:7px;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shell-shadow);display:grid;gap:3px}
.tool-menu[hidden]{display:none}
.tool-menu a{display:flex;flex-direction:column;justify-content:center;gap:3px;min-height:58px;padding:10px 12px;border-radius:7px;text-decoration:none;color:var(--text)}
.tool-menu a>span{font-size:.87rem;font-weight:700}
.tool-menu a>small{font-size:.72rem;line-height:1.35;color:var(--muted)}
.tool-menu a:hover,.tool-menu a:focus-visible{background:var(--panel-2)}
.tool-menu a.active{background:var(--accent-2);color:var(--accent)}
.tool-menu a.active>small{color:var(--accent)}
.site-menu-toggle{display:none;border-color:var(--line-strong);background:var(--panel);color:var(--text)}
.menu-icon{width:15px;height:10px;border-top:1.5px solid currentColor;border-bottom:1.5px solid currentColor;position:relative}
.menu-icon::after{content:"";position:absolute;top:3px;left:0;width:15px;border-top:1.5px solid currentColor}
.skip-link{position:absolute;top:8px;left:12px;z-index:200;transform:translateY(-150%);padding:10px 14px;border-radius:7px;background:var(--text);color:white}
.skip-link:focus{transform:translateY(0)}
:where(a,button,summary,select,[role="button"],input[type="checkbox"],input[type="radio"],input[type="range"]){cursor:pointer}
:where(a,button,summary):focus-visible{outline:2px solid var(--accent);outline-offset:3px}
button:disabled,input:disabled,select:disabled{cursor:not-allowed}

/* One shared title rhythm; calculator-specific sizing remains authoritative. */
.page-title{padding:0 0 18px}
.page-title h1{font-size:clamp(1.7rem,3vw,2.15rem);line-height:1.15;letter-spacing:-.035em}
.page-title .tool-kicker{font-size:.65rem;margin-bottom:5px;letter-spacing:.09em}
.page-title p:not(.tool-kicker){font-size:.91rem;line-height:1.5;margin-top:7px;max-width:760px}
.tool-card{border-radius:var(--shell-radius)}
.result-panel{border-radius:var(--shell-radius)}
.button{font-weight:700}
body.is-home .dashboard{padding:3px 0 28px}
body.is-home .dashboard-hero{margin:0 0 22px;gap:24px;align-items:start}
body.is-home .dashboard-copy{margin:0}
body.is-home .dashboard h1{font-size:clamp(2.2rem,4.2vw,3.3rem);line-height:1.1;letter-spacing:-.04em}
body.is-home .lede{font-size:.96rem;line-height:1.6;max-width:660px}
.dash-card{border-radius:var(--shell-radius)}
.about-copy h1{font-size:clamp(2rem,3.5vw,3rem);line-height:1.12;letter-spacing:-.035em}

/* Footer stays in document flow, with enough identity to feel finished. */
.footer.site-footer{display:block;flex:none;margin-top:24px;padding:22px 0 18px;border-top:1px solid var(--line);font-size:.8rem;color:var(--muted)}
.footer-main{display:flex;align-items:center;justify-content:space-between;gap:24px}
.site-footer .footer-brand{display:flex;align-items:center;gap:10px;min-width:0;color:var(--text);text-decoration:none}
.footer-brand img{width:40px;height:40px;object-fit:contain;flex:none}
.footer-brand>span{display:grid;gap:3px}
.footer-brand strong{font-size:1rem;line-height:1.2;letter-spacing:-.025em}
.footer-brand small{font-size:.73rem;color:var(--muted)}
.footer-nav{display:flex;align-items:center;gap:22px;flex:none}
.site-footer .footer-nav a{display:inline-flex;align-items:center;min-height:44px;color:var(--text);font-size:.78rem;font-weight:650;text-decoration:none}
.site-footer .footer-nav a:hover,.site-footer .footer-nav a.active{color:var(--accent)}
.footer-bottom{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-top:15px;padding-top:12px;border-top:1px solid var(--line);font-size:.7rem}
.footer-tagline{letter-spacing:.02em}
.footer-credits{display:flex;gap:16px;flex-wrap:wrap}
.site-footer .footer-credits a{color:var(--text);text-decoration:underline;text-decoration-color:var(--line-strong);text-underline-offset:3px}
.site-footer a:hover{color:var(--accent)}

@media(max-width:900px){
  .site-topbar{gap:12px}
  .tool-nav{gap:2px}
  .nav-trigger,.nav-direct{padding:0 10px;font-size:.82rem}
  .nav-direct{margin-left:2px}
}
@media(max-width:700px){
  .site-head,body.is-home .site-head{margin-bottom:18px}
  .site-topbar{min-height:70px;padding:8px 0}
  .site-topbar .site-brand .brand-logo-img{height:48px}
  .site-menu-toggle{display:inline-flex}
  .site-head.nav-enhanced .tool-nav{display:none}
  .site-head.menu-open .tool-nav{display:flex}
  .tool-nav{position:absolute;top:calc(100% + 5px);left:0;right:0;z-index:40;flex-direction:column;align-items:stretch;gap:4px;padding:9px;background:var(--panel);border:1px solid var(--line);border-radius:12px;box-shadow:var(--shell-shadow);max-height:calc(100dvh - 100px);overflow:auto}
  .nav-trigger,.nav-direct{display:flex;width:100%;justify-content:space-between;min-height:44px;padding:0 12px;font-size:.9rem}
  .nav-direct{margin:0}
  .tool-menu{position:static;width:100%;margin:5px 0;padding:3px 0 3px 10px;border:0;border-left:2px solid var(--line);border-radius:0;box-shadow:none}
  .tool-menu a{min-height:54px;padding:9px 12px}
  .page-title{padding-bottom:15px}
  .page-title h1{font-size:1.75rem}
  body.is-home .dashboard h1{font-size:2.35rem}
  body.is-home .dashboard-hero{gap:18px;margin-bottom:20px}
  .footer-main{align-items:flex-start;flex-direction:column;gap:12px}
  .footer-nav{gap:24px}
  .footer-bottom{align-items:flex-start;flex-direction:column;gap:9px;margin-top:10px}
  .footer.site-footer{margin-top:20px;padding-top:18px}
}
