/* Responsive public shell. Loaded after the base styles by index.html and
   included in both static packers. */
.nav-menu-toggle,.jobs-filter-toggle,.jtable-mobile-meta{display:none;}
button.nav-link{border:0;border-bottom:3px solid transparent;background:none;text-align:left;}
button.nav-link.active{border-bottom-color:var(--brand-accent);}
button.tm-chrome-close{background:none;}
.salary-validation{margin-top:8px;font-size:14px;line-height:1.5;color:var(--red);}
.post-flow-card .finp[aria-invalid="true"]{border-color:var(--red);}
/* Let the two desktop hero columns shrink to their assigned share. */
.hero-split>.hero-left,.hero-split>.map-section{min-width:0;}
.hero-stats-row,.hero-cta-row{flex-wrap:wrap;}

@media(min-width:1201px){
  .hero-cta-row .hero-btn-primary{white-space:nowrap;}
}

/* Leave room for the fourth (signed-in visa) filter before using chip rows. */
@media(min-width:1201px) and (max-width:1599px){
  .filter-group .filter-chip{display:none;}
  .filter-group .filter-select{display:block;}
}

@media(max-width:1200px){
  body{zoom:1;}
  .nav{padding:10px 16px;min-height:0;flex-wrap:wrap;gap:0;align-items:start;}
  .nav-left{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;flex:none;width:100%;min-width:0;padding:0;}
  .nav-brand{padding:0;gap:3px;min-width:0;}
  .nav-brand-name{font-size:28px;}
  .nav-ll-product{font-size:12px;white-space:normal;letter-spacing:.01em;margin:0;line-height:1.3;}
  .nav-menu-toggle{display:inline-flex;align-items:center;justify-content:center;min-width:60px;min-height:44px;padding:8px 12px;border:1px solid var(--rule2);border-radius:4px;background:var(--surface);color:var(--ink);font:600 14px var(--cond);}
  .nav-links{display:none;grid-column:1/-1;flex-direction:column;padding-top:8px;}
  .nav.nav-menu-open .nav-links{display:flex;}
  .nav-links .nav-link{min-height:44px;padding:10px 12px;font-size:15px;border-bottom:1px solid var(--rule);}
  .nav-actions{display:flex;width:100%;flex-wrap:nowrap;align-items:center;gap:8px;margin-top:8px;padding-top:8px;border-top:1px solid var(--rule);}
  .nav-actions .btn-qr{display:none;}
  #nav-auth{display:block;flex:1;min-width:0;}
  .nav-user{display:flex;gap:6px;min-width:0;justify-content:flex-start;}
  .nav-avatar{width:24px;height:24px;flex:none;}
  .nav-username{font-size:12px;max-width:100px;min-width:0;flex:1;}
  .nav-actions .btn,.nav-actions .btn-github,.nav-actions .btn-signout{min-height:44px;height:44px;padding:8px 12px;font-size:12px;white-space:nowrap;flex:none;justify-content:center;}
  .nav-actions .btn-red{font-size:12px;letter-spacing:.04em;}
  .nav-actions .btn-github{width:100%;}
  .hero-split{flex-direction:column!important;}
  .hero-left{padding:28px 20px;min-height:0;}
  .hero-split h1.hero-headline{font-size:clamp(34px,7.5vw,54px);}
  .hero-lede{font-size:19px;line-height:1.45;margin-top:18px;}
  .hero-stats-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;gap:18px 12px;}
  .hero-stat .hero-stat-num{font-size:27px;}
  .hero-stat .hero-stat-lbl{font-size:11px;line-height:1.35;}
  .hero-legend-strip{display:none;}
  .hero-cta-row{display:grid;grid-template-columns:1fr;width:100%;gap:8px;margin-top:24px;}
  .hero-cta-row .hero-btn-primary,.hero-cta-row .hero-btn-link{width:100%;min-height:48px;padding:13px 16px;font-size:15px;justify-content:center;text-align:center;white-space:normal;}
  .map-section{border-left:none!important;border-top:1px solid var(--rule);}
  #otl-map{height:280px;min-height:280px!important;}
  .otl-billboard{display:none!important;}
  .jobs-section-header{padding:0 16px;margin:24px 0 12px;display:flex;flex-direction:column;align-items:stretch;gap:12px;}
  .jobs-section-header h2{font-size:28px;line-height:1.2;}
  .jobs-section-header .jobs-count{font-size:16px;white-space:nowrap;margin-left:8px;}
  .jobs-section-header .jobs-updated{font-size:15px;line-height:1.4;margin-top:4px;}
  .jobs-sort-group{gap:18px;flex-wrap:wrap;}
  .jobs-sort-group .sort-label{font-size:15px;}
  .jobs-sort-group .sort-btn{min-height:44px;font-size:17px;}
  /* Tall filter controls should scroll away instead of obscuring job cards. */
  .jobs-sticky-stack{position:static;margin:0 16px;}
  .jobs-filter-bar{padding:0 0 12px;}
  .jobs-filter-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:100%;transform:none!important;}
  .jobs-search-wrap{grid-column:1/-1;flex:none;width:100%;min-width:0;max-width:none;min-height:48px;padding:10px 12px;}
  .jobs-search-input{font-size:16px;}
  .jobs-search-hint{display:none;}
  .jobs-filter-toggle{display:flex;grid-column:1/-1;justify-content:space-between;align-items:center;min-height:44px;padding:10px 12px;border:1px solid var(--rule2);border-radius:4px;background:var(--surface);color:var(--ink);font:600 15px var(--cond);}
  .jobs-filter-row .filter-group{display:none!important;padding:0;border:0;gap:5px;min-width:0;}
  .jobs-sticky-stack.filters-open .filter-group:not([style*="display: none"]):not([style*="display:none"]){display:flex!important;flex-direction:column;align-items:stretch;}
  .filter-group-label{font-size:13px;}
  .filter-group .filter-chip{display:none;}
  .filter-group .filter-select{display:block;width:100%;min-width:0;min-height:44px;font-size:16px;letter-spacing:0;padding:8px 24px 8px 8px;}
  .jobs-table-header{display:none;}
  .jtable-row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-rows:auto auto auto;align-items:center;padding:16px;gap:10px 12px;}
  .jtable-company-col{grid-column:1;grid-row:1;flex:none;width:auto;min-width:0;gap:9px;}
  .jtable-company-tile{width:32px;height:32px;}
  .jtable-company-name{font-size:16px;white-space:normal;overflow-wrap:anywhere;line-height:1.35;}
  .jtable-new-col{grid-column:2;grid-row:1;justify-self:end;flex:none;}
  .jtable-new-badge{font-size:11px;padding:4px 7px;}
  .jtable-role-col{grid-column:1/-1;grid-row:2;width:100%;min-width:0;}
  .jtable-role-title{font-size:19px;line-height:1.35;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere;}
  .jtable-mobile-meta{display:block;font:400 13px/1.5 var(--sans);color:var(--muted);margin-top:6px;}
  .jtable-salary-col{display:flex;grid-column:1;grid-row:3;flex:none;min-width:0;}
  .jtable-salary{font-size:14px;line-height:1.4;overflow-wrap:anywhere;}
  .jtable-apply{grid-column:2;grid-row:3;position:static;transform:none;opacity:1;pointer-events:auto;justify-self:end;min-height:44px;padding:10px 12px;font-size:13px;letter-spacing:.06em;display:inline-flex;align-items:center;white-space:nowrap;}
  .jtable-disc-col,.jtable-work-col,.jtable-stage-col,.jtable-posted-col,.jtable-heat-col{display:none;}
  .post-wrap{padding:28px 16px 48px;gap:24px;grid-template-columns:minmax(0,1fr);}
  .page-title-block{grid-template-columns:minmax(0,1fr);gap:18px;padding-bottom:24px;}
  .post-title-line{white-space:normal;}
  .post-flow-card{padding:20px;min-width:0;}
  .post-flow-card .finp,.post-flow-card .fsel{font-size:16px;}
  .post-flow-card textarea.finp{font-size:16px!important;}
  .post-flow-card .flabel{font-size:13px;}
  .post-flow-card .radio-opt,.logo-none-btn{min-height:44px;}
  .post-progress-step{font-size:13px;padding:10px 8px;gap:6px;}
  .jd-tab{font-size:14px;padding:10px 6px;}
  .page-wrap{padding:28px 16px 48px;min-width:0;}
  .jd-title{font-size:32px;overflow-wrap:anywhere;}
  .jd-actions{display:flex;flex-wrap:wrap;gap:10px;}
  .jd-actions a{min-height:44px;max-width:100%;white-space:normal;}
  .site-footer{flex-wrap:wrap;padding:24px 16px;gap:16px;}
  .ticker-tooltip{padding:8px;}
  .ticker-tooltip-card{padding:20px;max-height:65dvh;}
  .tt-header{gap:12px;margin-bottom:16px;}
  .tt-header-text{min-width:0;}
  .tt-header-title{font-size:20px;overflow-wrap:anywhere;}
  .tt-header-date{font-size:13px;}
  .tt-summary,.tt-bullets li,.tt-action-text{font-size:16px;line-height:1.5;}
}

@media(max-width:1200px){
  .term-modal-overlay{height:100dvh;align-items:stretch;}
  .term-modal-panel{width:100%;height:100dvh;max-height:100dvh;min-width:0;border:0;overflow-y:auto;}
  .term-modal-panel .tm-chrome{height:48px;min-height:48px;padding:0 12px;}
  .term-modal-panel .tm-chrome-label{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
  .term-modal-panel .tm-chrome-close{min-width:44px;min-height:44px;flex:none;font-size:13px;}
  .term-modal-panel .tm-output{min-width:0;min-height:140px;width:100%;overflow-x:hidden;padding:14px 16px;font-size:13px;}
  .term-modal-panel .line,.term-modal-panel .tm-output pre{white-space:pre-wrap;word-break:normal;overflow-wrap:anywhere;max-width:100%;}
  .term-modal-panel .tm-input-row{display:flex;flex-wrap:wrap;gap:8px;min-width:0;padding:10px 16px calc(12px + env(safe-area-inset-bottom));}
  #tm-input-prompt{flex:1 0 100%;min-width:0;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px;}
  .term-modal-panel .tm-input{flex:1 1 0;width:0;min-width:0;min-height:36px;font-size:16px;caret-color:#e0e0d8;}
  .term-modal-panel .tm-cursor,.term-modal-panel .tm-input-row>.dim{display:none;}
  .term-modal-panel .tm-cmd-btns{display:grid;grid-template-columns:repeat(auto-fit,minmax(84px,1fr));min-width:0;width:100%;overflow:visible;}
  .term-modal-panel .tm-cmd-btn,.hp-term .term-cmd-btn{min-width:0;max-width:100%;min-height:44px;padding:10px 8px;white-space:normal;overflow-wrap:anywhere;text-align:center;}
  .term-modal-panel #tm-guided{flex-shrink:0;min-width:0;max-width:100%;overflow:hidden;}
  .terminal-role-card{min-width:0;}
  .hp-term .term-input-row{flex-wrap:wrap;min-width:0;}
  .hp-term .term-input-row>.prompt{max-width:100%;overflow:hidden;text-overflow:ellipsis;}
  .hp-term .term-input{min-width:0;width:0;flex:1;}
}

@media(max-width:900px){
  /* Keep output and controls reachable when the keyboard reduces the viewport. */
  .hp-term .term-shell{overflow-y:auto;}
  .hp-term .term-body{min-height:140px;}
  .hp-term .term-cmd-btns{display:grid;grid-template-columns:repeat(auto-fit,minmax(84px,1fr));min-width:0;width:100%;overflow:visible;}
}

@media(max-width:360px){
  .nav{padding:8px 12px;}
  .nav-brand-name{font-size:25px;}
  .nav-username{max-width:70px;}
  .nav-actions .btn,.nav-actions .btn-signout{padding:8px;font-size:11px;}
  .hero-left{padding:24px 16px;}
  .hero-stat .hero-stat-num{font-size:24px;}
  .post-flow-card{padding:16px;}
  .jtable-role-title{font-size:18px;}
}
