
/* v115.2 — final mobile navigation override.
   This intentionally has high specificity because several legacy page styles
   contain !important header/nav declarations. */
@media(max-width:760px){
  html,body{
    width:100%!important;
    max-width:100%!important;
    overflow-x:hidden!important;
  }

  body .site-header,
  body header.site-header{
    box-sizing:border-box!important;
    width:100%!important;
    max-width:100%!important;
    min-height:58px!important;
    height:auto!important;
    padding:8px 12px!important;
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    align-items:center!important;
    justify-content:stretch!important;
    gap:8px!important;
    flex-wrap:nowrap!important;
    position:sticky!important;
    top:0!important;
  }

  body .site-header .brand{
    min-width:0!important;
    max-width:100%!important;
    margin:0!important;
    gap:8px!important;
    font-size:.96rem!important;
    white-space:nowrap!important;
    overflow:hidden!important;
  }

  body .site-header .brand > span:last-child{
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }

  body .site-header .brand-mark{
    width:36px!important;
    height:36px!important;
    min-width:36px!important;
    border-radius:10px!important;
    font-size:.70rem!important;
  }

  body .site-header .mobile-nav-toggle{
    display:inline-flex!important;
    grid-column:2!important;
    grid-row:1!important;
    min-width:78px!important;
    min-height:40px!important;
    width:auto!important;
    margin:0!important;
    padding:7px 10px!important;
    justify-self:end!important;
  }

  body .site-header nav,
  body header.site-header nav,
  body .site-header .site-nav,
  body header.site-header .site-nav{
    display:none!important;
    grid-column:1 / -1!important;
    grid-row:2!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    margin:0!important;
    padding:5px 0 2px!important;
    flex-direction:column!important;
    align-items:stretch!important;
    justify-content:flex-start!important;
    gap:2px!important;
    flex-wrap:nowrap!important;
    overflow:visible!important;
  }

  body .site-header.mobile-nav-open nav,
  body header.site-header.mobile-nav-open nav,
  body .site-header.mobile-nav-open .site-nav,
  body header.site-header.mobile-nav-open .site-nav{
    display:flex!important;
  }

  body .site-header nav > a,
  body .site-header nav > button,
  body .site-header nav > .btn,
  body .site-header nav > .nav-link,
  body .site-header nav > .nav-dropdown{
    box-sizing:border-box!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    min-height:38px!important;
    margin:0!important;
  }

  body .site-header nav > a,
  body .site-header nav > button,
  body .site-header nav > .btn,
  body .site-header nav > .nav-link{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    padding:8px 10px!important;
    white-space:normal!important;
    text-align:left!important;
  }

  body .site-header .nav-dropdown{
    position:relative!important;
    width:100%!important;
  }

  body .site-header .nav-drop-toggle{
    width:100%!important;
    min-height:38px!important;
    padding:8px 10px!important;
    text-align:left!important;
  }

  body .site-header .nav-drop-menu{
    position:static!important;
    display:none!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    margin:2px 0 3px!important;
    padding:3px 0 3px 10px!important;
    border:0!important;
    border-left:2px solid var(--line,#d8e3ee)!important;
    border-radius:0!important;
    box-shadow:none!important;
  }

  body .site-header .nav-dropdown.open .nav-drop-menu{
    display:block!important;
  }

  body .site-header .nav-drop-menu a,
  body .site-header .nav-drop-menu button{
    box-sizing:border-box!important;
    width:100%!important;
    max-width:100%!important;
    min-height:36px!important;
    padding:7px 9px!important;
    white-space:normal!important;
  }

  body .site-header .nav-user-name{
    max-width:100%!important;
  }
}

.site-notice{border-bottom:1px solid #cbd9e8;background:#edf6ff;color:#173b63}
.site-notice.maintenance{background:#fff7e6;border-color:#e5c77d;color:#6b4d10}
.site-notice.important{background:#fff1f1;border-color:#e0a5a5;color:#7d2929}
.site-notice-inner{max-width:1640px;margin:0 auto;padding:10px 24px;display:flex;align-items:center;gap:14px}
.site-notice-copy{min-width:0;display:flex;align-items:baseline;gap:10px;flex-wrap:wrap}
.site-notice-copy strong{font-weight:900}
.site-notice-copy span{font-size:14px}
.site-notice-link{font-weight:800;text-decoration:underline;white-space:nowrap}
.site-notice-dismiss{margin-left:auto;border:0;background:transparent;color:inherit;font-size:22px;line-height:1;cursor:pointer;min-width:40px;min-height:40px}
@media(max-width:700px){
  .site-notice-inner{padding:9px 14px;align-items:flex-start}
  .site-notice-copy{display:block}
  .site-notice-copy strong{display:block;margin-bottom:2px}
  .site-notice-link{white-space:normal}
}

/* v135 — final accessibility and mobile polish */
html,body{max-width:100%;overflow-x:hidden}
img,svg,video,canvas{max-width:100%;height:auto}
table{max-width:100%}
.table-wrap,.admin-users-table-wrap{max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-inline:contain}
.modal{max-height:92dvh;overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}
.modal form{max-width:100%}
.modal textarea,.modal input,.modal select{max-width:100%}
.icon-btn,.site-notice-dismiss{min-width:44px;min-height:44px}
.collapsible-filter-summary,.admin-section-summary,.user-detail-section>summary,.notification-section>summary{min-height:44px}
.btn,.link-btn,.nav-link,.nav-drop-toggle,a.btn,button,input,select,textarea{touch-action:manipulation}
.activity-json,.compact-email,.user-detail-content-item,.comment,.idea,.experience-card,.resource-card{overflow-wrap:anywhere}
:focus-visible{outline:3px solid #1f5f9d!important;outline-offset:3px!important}
@media(max-width:760px){
  body{overflow-x:hidden}
  .modal{width:min(calc(100vw - 20px),720px)!important;max-width:calc(100vw - 20px)!important;max-height:94dvh;margin:10px!important}
  .small-modal{width:min(calc(100vw - 20px),560px)!important}
  .modal-actions{display:flex;flex-wrap:wrap;gap:8px}
  .modal-actions .btn,.modal-actions button{min-height:44px}
  input:not([type="checkbox"]):not([type="radio"]),select,textarea{font-size:16px}
  .btn,.link-btn,.nav-drop-toggle,.nav-link{min-height:44px}
  .admin-tabs{display:flex;flex-wrap:wrap;gap:6px}
  .admin-tabs .btn{flex:1 1 145px;min-width:0}
  .moderation-focus-bar{gap:8px}
  .moderation-focus-bar .btn{min-height:44px}
  .table-wrap:focus,.admin-users-table-wrap:focus{outline:3px solid #1f5f9d;outline-offset:2px}
}
@media(max-width:520px){
  .modal-actions{flex-direction:column-reverse}
  .modal-actions .btn,.modal-actions button{width:100%}
  .public-status-links a{min-height:44px;align-items:center}
}

/* v137.1 — navigation regression guard */
html,body{overflow-x:clip!important}
header.site-header,.site-header{position:sticky!important;top:0!important;z-index:60!important}
.site-header #authBtn.hidden,
.site-header #userMenuWrap.hidden,
.site-header #adminMenuWrap.hidden,
.site-header .nav-link.hidden,
.site-header a.hidden,
.site-header button.hidden{display:none!important}

/* v140 — public design consistency pass */
body.public-polish{
  --public-radius:16px;
  --public-radius-sm:11px;
  --public-card-border:var(--line,#dce5ef);
  --public-card-shadow:0 8px 24px rgba(20,45,80,.055);
  --public-card-shadow-hover:0 12px 28px rgba(20,45,80,.085);
}
body.public-polish .section,
body.public-polish .legal-shell,
body.public-polish .page-titlebar>.container{scroll-margin-top:92px}
body.public-polish .section-heading{align-items:flex-start!important;gap:16px!important}
body.public-polish .section-heading h2,
body.public-polish .page-titlebar h1,
body.public-polish .legal-shell h1{letter-spacing:-.02em}
body.public-polish .section-heading p,
body.public-polish .page-titlebar p,
body.public-polish .legal-shell>p:first-of-type{max-width:780px}
body.public-polish .btn,
body.public-polish a.btn,
body.public-polish button.btn{
  border-radius:var(--public-radius-sm)!important;
  font-weight:800!important;
}
body.public-polish .btn:not(.btn-ghost):not(.btn-danger),
body.public-polish a.btn:not(.btn-ghost):not(.btn-danger){
  box-shadow:0 2px 6px rgba(15,94,169,.12)
}
body.public-polish .btn:hover,
body.public-polish a.btn:hover{transform:translateY(-1px)}
body.public-polish .btn:active,
body.public-polish a.btn:active{transform:none}
body.public-polish .card,
body.public-polish .resource,
body.public-polish .resource-card,
body.public-polish .experience-card,
body.public-polish .idea,
body.public-polish .legal-card,
body.public-polish .update-item,
body.public-polish .home-path-card,
body.public-polish .home-how-grid article{
  border-radius:var(--public-radius)!important;
  border-color:var(--public-card-border)!important;
  box-shadow:var(--public-card-shadow)
}
body.public-polish .idea,
body.public-polish .experience-card,
body.public-polish .resource-card,
body.public-polish .home-path-card,
body.public-polish .home-how-grid article{
  transition:box-shadow .16s ease,border-color .16s ease,transform .16s ease
}
@media(hover:hover){
  body.public-polish .idea:hover,
  body.public-polish .experience-card:hover,
  body.public-polish .resource-card:hover,
  body.public-polish .home-path-card:hover,
  body.public-polish .home-how-grid article:hover{
    border-color:#c7d8e7!important;
    box-shadow:var(--public-card-shadow-hover)
  }
}
body.public-polish .tag,
body.public-polish .status,
body.public-polish .resource-category,
body.public-polish .update-version{
  border-radius:999px!important;
  font-weight:850!important
}
body.public-polish input:not([type="checkbox"]):not([type="radio"]),
body.public-polish select,
body.public-polish textarea{
  border-radius:var(--public-radius-sm)!important;
  border-color:#cfdbe7!important
}
body.public-polish input:not([type="checkbox"]):not([type="radio"]):focus,
body.public-polish select:focus,
body.public-polish textarea:focus{
  border-color:#6ea3cf!important;
  box-shadow:0 0 0 3px rgba(31,115,183,.10)!important;
  outline:none
}
body.public-polish .collapsible-filter-panel,
body.public-polish .resource-filter-panel{border-radius:var(--public-radius)!important}
body.public-polish .empty,
body.public-polish .resource-empty,
body.public-polish .search-empty{border-radius:var(--public-radius)!important}
body.public-polish footer{margin-top:8px}
body.public-polish .footer-links a{text-underline-offset:3px}
@media(max-width:760px){
  body.public-polish .section{padding-top:44px!important;padding-bottom:44px!important}
  body.public-polish .section-heading{margin-bottom:14px!important}
  body.public-polish .section-heading h2{margin-bottom:4px!important}
  body.public-polish .btn,
  body.public-polish a.btn,
  body.public-polish button.btn{min-height:44px}
  body.public-polish .idea,
  body.public-polish .experience-card,
  body.public-polish .resource-card,
  body.public-polish .card,
  body.public-polish .legal-card,
  body.public-polish .update-item{border-radius:14px!important}
}
@media(prefers-reduced-motion:reduce){
  body.public-polish .btn,
  body.public-polish a.btn,
  body.public-polish .idea,
  body.public-polish .experience-card,
  body.public-polish .resource-card,
  body.public-polish .home-path-card,
  body.public-polish .home-how-grid article{
    transition:none!important;
    transform:none!important
  }
}
