/* Navigation 1.1.0 — side panel, scoped to this plugin; no theme overrides. */
.isnav-root {
    --isnav-black: #090909;
    --isnav-white: #fff;
    --isnav-muted: #8d8d8d;
    --isnav-line: rgba(255,255,255,.16);
    --isnav-line-strong: rgba(255,255,255,.3);
    --isnav-panel: min(420px, 100%);
    --isnav-offset: 0px;
    position: relative;
    z-index: 2147483000;
    font-family: "Helvetica Neue", Helvetica, Arial, system-ui, -apple-system, sans-serif;
    font-size: 16px;
    line-height: 1.5;
    font-weight: 400;
    text-align: left;
    color: var(--isnav-white);
    -webkit-font-smoothing: antialiased;
}
body.admin-bar .isnav-root { --isnav-offset: 32px; }
.isnav-root *, .isnav-root *::before, .isnav-root *::after { box-sizing: border-box; }
.isnav-root a { text-decoration: none; }
.isnav-root button { appearance: none; font-family: inherit; box-shadow: none; text-transform: none; }
.isnav-root nav { display: block; }
.isnav-root .isnav-sr-only {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0,0,0,0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}
.isnav-shortcode-placeholder { display: none !important; }

/* Single, quiet opener. Translucent with a blurred backdrop, hairline border. */
.isnav-root .isnav-floating-toggle,
.isnav-root .isnav-fallback-open {
    position: fixed;
    top: calc(var(--isnav-offset) + 14px + env(safe-area-inset-top, 0px));
    right: calc(14px + env(safe-area-inset-right, 0px));
    z-index: 2147483001;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 11px;
    min-height: 44px;
    min-width: 92px;
    margin: 0;
    padding: 0 15px;
    border: 1px solid var(--isnav-line-strong);
    border-radius: 0;
    background: rgba(9,9,9,.4);
    -webkit-backdrop-filter: blur(12px) saturate(1.3);
    backdrop-filter: blur(12px) saturate(1.3);
    color: var(--isnav-white) !important;
    font-size: 10px;
    font-weight: 600;
    line-height: 1;
    letter-spacing: .18em;
    text-decoration: none !important;
    cursor: pointer;
    user-select: none;
    transition: background .18s ease, color .18s ease, border-color .18s ease;
}
/* Exactly one opener is shown: the scripted button once ready, the CSS fallback until then. */
.isnav-root .isnav-floating-toggle { display: none; }
.isnav-root[data-isnav-ready="1"] .isnav-floating-toggle { display: inline-flex; }
.isnav-root[data-isnav-ready="1"] .isnav-fallback-open { display: none; }
.isnav-root.is-open .isnav-floating-toggle { visibility: hidden; }
.isnav-root .isnav-toggle-mark { font-size: 17px; font-weight: 300; line-height: 1; }
.isnav-root .isnav-floating-toggle:hover,
.isnav-root .isnav-fallback-open:hover { background: rgba(255,255,255,.94); color: var(--isnav-black) !important; border-color: rgba(255,255,255,.94); }
.isnav-root .isnav-floating-toggle:focus-visible,
.isnav-root .isnav-fallback-open:focus-visible { outline: 2px solid #fff; outline-offset: 3px; box-shadow: 0 0 0 5px rgba(9,9,9,.75); }

/* Side panel. The page stays visible behind a dimmed, blurred backdrop. */
.isnav-root .isnav-overlay {
    position: fixed;
    top: var(--isnav-offset);
    right: 0;
    bottom: 0;
    left: auto;
    z-index: 2147483002;
    width: var(--isnav-panel);
    max-width: 100%;
    height: auto;
    max-height: none;
    margin: 0;
    padding: 0;
    border: 0;
    border-left: 1px solid var(--isnav-line);
    border-radius: 0;
    overflow: hidden;
    background: var(--isnav-black);
    color: var(--isnav-white);
    font: inherit;
    text-align: left;
    overscroll-behavior: contain;
}
.isnav-root .isnav-overlay:not([open]) { display: none !important; }
.isnav-root .isnav-overlay[open] { display: flex; flex-direction: column; animation: isnav-slide .24s cubic-bezier(.22,.61,.36,1) both; }
.isnav-root .isnav-overlay::backdrop { background: rgba(0,0,0,.5); -webkit-backdrop-filter: blur(5px); backdrop-filter: blur(5px); }
/* The non-modal fallback has no ::backdrop, so it dims the page itself. */
.isnav-root .isnav-overlay.isnav-fallback { box-shadow: 0 0 0 100vmax rgba(0,0,0,.5); }
@keyframes isnav-slide { from { opacity: 0; transform: translateX(18px); } to { opacity: 1; transform: none; } }

.isnav-root .isnav-dialog-header {
    flex: none;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    min-height: 62px;
    padding: calc(6px + env(safe-area-inset-top, 0px)) 16px 6px 20px;
    border-bottom: 1px solid var(--isnav-line);
}
.isnav-root .isnav-dialog-brand { color: var(--isnav-white) !important; font-size: 10px; font-weight: 600; letter-spacing: .18em; }
.isnav-root .isnav-dialog-brand:hover { color: var(--isnav-muted) !important; }
.isnav-root .isnav-close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    margin: 0;
    padding: 0;
    border: 1px solid transparent;
    border-radius: 0;
    background: transparent;
    color: var(--isnav-white);
    font-size: 23px;
    font-weight: 300;
    line-height: 1;
    cursor: pointer;
    transition: border-color .18s ease, background .18s ease, color .18s ease;
}
.isnav-root .isnav-close:hover { background: var(--isnav-white); color: var(--isnav-black); }
.isnav-root .isnav-close:focus-visible,
.isnav-root .isnav-dialog-brand:focus-visible { outline: 2px solid var(--isnav-white); outline-offset: 3px; }
.isnav-root .isnav-overlay-scroll {
    flex: 1 1 auto;
    width: 100%;
    min-height: 0;
    overflow-x: hidden;
    overflow-y: auto;
    overscroll-behavior: contain;
    -webkit-overflow-scrolling: touch;
    touch-action: pan-y pinch-zoom;
}
.isnav-root .isnav-menu-shell {
    width: 100%;
    padding: 20px 20px calc(30px + env(safe-area-inset-bottom, 0px));
}
.isnav-root .isnav-menu-intro {
    display: flex;
    flex-wrap: wrap;
    gap: 4px 14px;
    font-size: 9px;
    font-weight: 600;
    letter-spacing: .16em;
    color: var(--isnav-muted);
}

/* Compact feature tiles. Still the two main destinations, no longer the whole screen. */
.isnav-root .isnav-feature-grid { display: grid; grid-template-columns: minmax(0,1fr); gap: 6px; margin-top: 16px; }
.isnav-root .isnav-feature {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0,1fr) auto;
    align-content: space-between;
    gap: 14px 12px;
    min-width: 0;
    min-height: 92px;
    padding: 14px 16px;
    text-decoration: none !important;
    transition: background .18s ease, color .18s ease, border-color .18s ease;
}
.isnav-root .isnav-feature > small { min-width: 0; grid-column: 1; font-size: 9px; font-weight: 600; letter-spacing: .16em; }
.isnav-root .isnav-feature-title { grid-column: 1 / -1; min-width: 0; font-size: 21px; line-height: 1.08; font-weight: 500; letter-spacing: -.035em; overflow-wrap: anywhere; }
.isnav-root .isnav-feature > .isnav-link-arrow { grid-column: 2; grid-row: 1; align-self: start; font-size: 15px; line-height: 1; font-weight: 400; }
.isnav-root .isnav-feature-primary { background: var(--isnav-white); color: var(--isnav-black) !important; border: 1px solid var(--isnav-white); }
.isnav-root .isnav-feature-secondary { background: transparent; color: var(--isnav-white) !important; border: 1px solid var(--isnav-line-strong); }
.isnav-root .isnav-feature-primary:hover { background: #e9e9e9; border-color: #e9e9e9; }
.isnav-root .isnav-feature-secondary:hover { border-color: var(--isnav-white); background: rgba(255,255,255,.06); }
.isnav-root .isnav-feature:focus-visible { outline: 2px solid var(--isnav-white); outline-offset: -5px; }
.isnav-root .isnav-feature-primary:focus-visible { outline-color: var(--isnav-black); }

.isnav-root .isnav-menu-grid { display: grid; grid-template-columns: minmax(0,1fr); gap: 24px; margin-top: 28px; }
.isnav-root .isnav-section { min-width: 0; }
.isnav-root .isnav-section h3 { margin: 0 0 8px; padding: 0 0 7px; border-bottom: 1px solid var(--isnav-line); color: var(--isnav-muted); font: 600 9px/1.3 "Helvetica Neue",Helvetica,Arial,system-ui,sans-serif; letter-spacing: .17em; }
.isnav-root .isnav-section-links { display: grid; }
.isnav-root .isnav-menu-link {
    position: relative;
    display: grid;
    grid-template-columns: minmax(0,1fr) 14px;
    align-items: center;
    gap: 10px;
    min-width: 0;
    min-height: 42px;
    padding: 7px 0;
    color: var(--isnav-white) !important;
    text-decoration: none !important;
}
.isnav-root .isnav-menu-link > span:first-child { min-width: 0; font-size: 17px; line-height: 1.2; font-weight: 400; letter-spacing: -.01em; overflow-wrap: anywhere; }
.isnav-root .isnav-menu-link > .isnav-link-arrow { opacity: 0; font-size: 13px; transition: opacity .16s ease; }
.isnav-root .isnav-menu-link:hover > .isnav-link-arrow,
.isnav-root .isnav-menu-link:focus-visible > .isnav-link-arrow { opacity: .6; }
.isnav-root .isnav-menu-link:hover > span:first-child,
.isnav-root .isnav-menu-link:focus-visible > span:first-child,
.isnav-root .isnav-menu-link[aria-current] > span:first-child { text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: .22em; }
.isnav-root .isnav-menu-link:focus-visible,
.isnav-root .isnav-secondary-link:focus-visible { outline: 2px solid var(--isnav-white); outline-offset: 2px; }
.isnav-root .isnav-menu-link[aria-current] > span:first-child { color: var(--isnav-white); }
.isnav-root .isnav-menu-link[aria-current]::before { content: ""; position: absolute; left: -10px; top: 50%; width: 3px; height: 3px; margin-top: -1px; background: currentColor; }

.isnav-root .isnav-secondary { display: grid; grid-template-columns: minmax(0,1fr); margin-top: 28px; border-top: 1px solid var(--isnav-line); }
.isnav-root .isnav-secondary-link { display: grid; grid-template-columns: minmax(0,1fr) 14px; align-items: center; gap: 12px; min-width: 0; min-height: 52px; padding: 12px 0; border-bottom: 1px solid var(--isnav-line); color: var(--isnav-white) !important; }
.isnav-root .isnav-secondary-link > span:first-child { min-width: 0; font-size: 13px; font-weight: 600; letter-spacing: .1em; line-height: 1.2; overflow-wrap: anywhere; }
.isnav-root .isnav-secondary-link > .isnav-link-arrow { opacity: .45; font-size: 13px; }
.isnav-root .isnav-secondary-link:hover > span:first-child { text-decoration: underline; text-underline-offset: .22em; }
.isnav-root .isnav-secondary-link:hover > .isnav-link-arrow { opacity: 1; }
.isnav-root .isnav-footer-line { display: flex; flex-wrap: wrap; gap: 6px 14px; margin-top: 22px; font-size: 9px; font-weight: 600; letter-spacing: .16em; color: var(--isnav-muted); }

/* No touch-action:none on the body: the panel must remain swipe-scrollable. */
body.isnav-lock { overscroll-behavior: none; }

/* CSS-only fallback overlay. Opened via :target, removed once the controller is ready. */
.isnav-root .isnav-fallback-nav { display: none; }
.isnav-root .isnav-fallback-nav:target {
    position: fixed;
    top: var(--isnav-offset);
    right: 0;
    bottom: 0;
    z-index: 2147483002;
    display: block;
    width: var(--isnav-panel);
    max-width: 100%;
    overflow-y: auto;
    overscroll-behavior: contain;
    padding: 16px 20px calc(30px + env(safe-area-inset-bottom, 0px));
    border-left: 1px solid var(--isnav-line);
    background: var(--isnav-black);
    box-shadow: 0 0 0 100vmax rgba(0,0,0,.5);
}
.isnav-root[data-isnav-ready="1"] .isnav-fallback-nav { display: none !important; }
.isnav-root .isnav-fallback-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; padding-bottom: 12px; border-bottom: 1px solid var(--isnav-line); }
.isnav-root .isnav-fallback-title { font-size: 9px; font-weight: 600; letter-spacing: .16em; color: var(--isnav-muted) !important; }
.isnav-root .isnav-fallback-title:hover { color: var(--isnav-white) !important; }
.isnav-root .isnav-fallback-close { display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 44px; padding: 0 12px; border: 1px solid var(--isnav-line); color: var(--isnav-white) !important; font-size: 10px; font-weight: 600; letter-spacing: .16em; }
.isnav-root .isnav-fallback-close span:last-child { font-size: 20px; font-weight: 300; }
.isnav-root .isnav-fallback-close:hover { background: var(--isnav-white); color: var(--isnav-black) !important; }
.isnav-root .isnav-fallback-link { display: grid; grid-template-columns: minmax(0,1fr) 14px; align-items: center; gap: 10px; min-height: 46px; padding: 9px 0; border-bottom: 1px solid var(--isnav-line); color: var(--isnav-white) !important; }
.isnav-root .isnav-fallback-link > span:first-child { min-width: 0; font-size: 17px; line-height: 1.2; overflow-wrap: anywhere; }
.isnav-root .isnav-fallback-link > .isnav-link-arrow { opacity: .45; font-size: 13px; }
.isnav-root .isnav-fallback-close:focus-visible,
.isnav-root .isnav-fallback-title:focus-visible,
.isnav-root .isnav-fallback-link:focus-visible { outline: 2px solid var(--isnav-white); outline-offset: 2px; }

@media (min-width: 1600px) {
    .isnav-root { --isnav-panel: 460px; }
    .isnav-root .isnav-menu-shell { padding: 22px 26px calc(34px + env(safe-area-inset-bottom, 0px)); }
    .isnav-root .isnav-dialog-header { padding-left: 26px; padding-right: 20px; }
}
@media (max-width: 782px) { body.admin-bar .isnav-root { --isnav-offset: 46px; } }
@media (max-width: 460px) {
    .isnav-root { --isnav-panel: 100%; }
    .isnav-root .isnav-overlay { border-left: 0; }
    .isnav-root .isnav-floating-toggle, .isnav-root .isnav-fallback-open { top: calc(var(--isnav-offset) + 10px + env(safe-area-inset-top, 0px)); right: calc(10px + env(safe-area-inset-right, 0px)); min-width: 84px; padding: 0 12px; }
    .isnav-root .isnav-menu-shell { padding: 18px 16px calc(28px + env(safe-area-inset-bottom, 0px)); }
    .isnav-root .isnav-dialog-header { padding-left: 16px; padding-right: 12px; }
    .isnav-root .isnav-fallback-nav:target { border-left: 0; padding-left: 16px; padding-right: 16px; }
}
@media (prefers-reduced-motion: reduce) {
    .isnav-root *, .isnav-root *::before, .isnav-root *::after { animation: none !important; transition: none !important; scroll-behavior: auto !important; }
}
@media (forced-colors: active) {
    .isnav-root .isnav-feature, .isnav-root .isnav-floating-toggle, .isnav-root .isnav-fallback-open, .isnav-root .isnav-close, .isnav-root .isnav-fallback-close { border: 1px solid ButtonText; }
    .isnav-root .isnav-overlay { background: Canvas; }
}
@media print { .isnav-root, .isnav-shortcode-placeholder { display: none !important; } }
