/* V16.1.0 floating navigation */
:root{--nv-green:#0b6b57;--nv-green-d:#064a3c;--nv-soft:#e6f4ee;--nv-ink:#16302a;--nv-line:#dce8e3}
/* the old sidebar layout is gone: never reserve space for it */
body{padding-right:0!important}
.ws-mobile-button,#workspace-sidebar,.ws-scrim{display:none!important}
body.ws-mobile-device #header-brand-block{padding-inline-start:0!important}

.nv-fab{position:fixed;z-index:60;border:0;cursor:pointer;-webkit-tap-highlight-color:transparent;transition:transform .18s ease,box-shadow .18s ease,opacity .18s ease}
.nv-fab{right:12px;bottom:calc(14px + env(safe-area-inset-bottom,0px));width:48px;height:48px;border-radius:16px;background:rgba(11,107,87,.38);color:#fff;border:1px solid rgba(255,255,255,.35);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);box-shadow:0 4px 14px rgba(6,74,60,.18);display:flex;align-items:center;justify-content:center;flex-direction:column;gap:2px;opacity:.72}
.nv-fab:hover,.nv-fab:focus-visible,body.nv-open .nv-fab{opacity:1;background:rgba(11,107,87,.92)}
.nv-fab:active{transform:scale(.93)}
.nv-fab:focus-visible,.nv-tile:focus-visible,.nv-close:focus-visible,.nv-tool:focus-visible,.nv-tools summary:focus-visible{outline:3px solid #f5b301;outline-offset:2px}
.nv-fab-icon{display:flex;flex-direction:column;gap:3.5px;width:19px}
.nv-fab-icon i{display:block;height:2.5px;border-radius:2px;background:#fff;transition:transform .2s,opacity .2s}
.nv-fab-emoji{font-size:10px;line-height:1;min-height:10px}
body.nv-open .nv-fab-icon i:nth-child(1){transform:translateY(6px) rotate(45deg)}
body.nv-open .nv-fab-icon i:nth-child(2){opacity:0}
body.nv-open .nv-fab-icon i:nth-child(3){transform:translateY(-6px) rotate(-45deg)}
/* keep the old "back to top" chip clear of the new buttons */
body.nv-ready #ws52-scroll-top{right:12px!important;bottom:calc(72px + env(safe-area-inset-bottom,0px))!important}

.nv-scrim{position:fixed;inset:0;z-index:118;background:rgba(10,30,24,.5);backdrop-filter:blur(2px);opacity:0;pointer-events:none;transition:opacity .22s}
body.nv-open .nv-scrim{opacity:1;pointer-events:auto}
.nv-drawer{position:fixed;z-index:120;background:#fbfdfc;color:var(--nv-ink);display:flex;flex-direction:column;box-shadow:0 -12px 40px rgba(0,0,0,.28);visibility:hidden;pointer-events:none;transition:transform .26s cubic-bezier(.2,.8,.2,1),opacity .2s,visibility 0s linear .26s;direction:rtl;text-align:right}
body.nv-open .nv-drawer{visibility:visible;pointer-events:auto;transition:transform .26s cubic-bezier(.2,.8,.2,1),opacity .2s}
.nv-drawer.nv-dragging{transition:none}
/* phone: bottom sheet */
@media(max-width:700px){
 .nv-drawer{left:0;right:0;bottom:0;max-height:84vh;border-radius:26px 26px 0 0;transform:translateY(28px);opacity:0;padding-bottom:env(safe-area-inset-bottom,0px)}
 body.nv-open .nv-drawer{transform:translateY(0);opacity:1}
 .nv-grab{display:flex;justify-content:center;padding:9px 0 2px}.nv-grab span{width:42px;height:5px;border-radius:3px;background:#c3d3cd}
}
/* tablet / desktop: side panel on the right edge */
@media(min-width:701px){
 .nv-drawer{top:0;bottom:0;right:0;width:min(380px,92vw);transform:translateX(28px);opacity:0;border-radius:24px 0 0 24px;box-shadow:-14px 0 44px rgba(0,0,0,.26)}
 body.nv-open .nv-drawer{transform:translateX(0);opacity:1}
 .nv-grab{display:none}
}
.nv-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 18px 10px;border-bottom:1px solid var(--nv-line)}
.nv-head strong{display:block;font-size:18px;font-weight:900}
.nv-head small{display:block;margin-top:2px;font-size:11px;font-weight:800;color:var(--nv-green)}
.nv-close{width:40px;height:40px;border-radius:13px;border:1px solid var(--nv-line);background:#fff;font-size:16px;font-weight:900;color:#4b635b;cursor:pointer}
.nv-body{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:6px 16px 14px;-webkit-overflow-scrolling:touch}
.nv-group{margin-top:10px}.nv-group[hidden]{display:none}
.nv-group h3{margin:0 2px 8px;font-size:11px;font-weight:900;letter-spacing:.02em;color:#6f847c}
.nv-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}
.nv-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-height:70px;padding:8px 6px;border-radius:18px;border:1px solid var(--nv-line);background:#fff;cursor:pointer;transition:transform .15s,background .15s,border-color .15s;-webkit-tap-highlight-color:transparent}
.nv-tile[hidden]{display:none}
.nv-tile:active{transform:scale(.95)}
.nv-emoji{font-size:24px;line-height:1}
.nv-label{font-size:12px;font-weight:900;line-height:1.3;text-align:center;color:var(--nv-ink);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.nv-tile.active{background:linear-gradient(145deg,var(--nv-green),var(--nv-green-d));border-color:var(--nv-green-d);box-shadow:0 6px 16px rgba(6,74,60,.28)}
.nv-tile.active .nv-label{color:#fff}
@media(hover:hover){.nv-tile:not(.active):hover{background:var(--nv-soft);border-color:#b9dccf}}
.nv-tools{margin-top:14px;border:1px dashed #c3d3cd;border-radius:16px;background:#f4f8f6;overflow:hidden}
.nv-tools summary{cursor:pointer;list-style:none;padding:12px 14px;font-size:12px;font-weight:900;color:#4b635b}
.nv-tools summary::-webkit-details-marker{display:none}
.nv-tool{display:flex;align-items:center;gap:10px;width:100%;padding:11px 14px;border:0;border-top:1px solid var(--nv-line);background:transparent;font-size:12px;font-weight:800;color:var(--nv-ink);text-align:right;cursor:pointer}
.nv-tool:hover{background:#e9f2ee}.nv-tool span{width:22px;text-align:center;font-size:15px}
.nv-foot{padding:8px 16px 12px;text-align:center;font-size:10px;font-weight:700;color:#8aa098;border-top:1px solid var(--nv-line)}
@media(prefers-reduced-motion:reduce){.nv-drawer,.nv-scrim,.nv-fab,.nv-tile{transition:none!important}}
@media print{.nv-fab,.nv-scrim,.nv-drawer{display:none!important}}

/* V16.1.1 — never let the last rows hide under the floating button / system gesture bar */
body.nv-ready{padding-bottom:calc(84px + env(safe-area-inset-bottom,0px))!important}
/* Installed app (standalone): only relax the overscroll lock; never touch overflow or touch-action */
@media (display-mode: standalone),(display-mode: fullscreen),(display-mode: minimal-ui){
  html,body{overscroll-behavior-y:auto!important}
}
@media (display-mode: standalone) and (max-width:900px){
  #main-header{position:static!important}
}

/* Horizontal guard (iPad/iOS): clip, never scroll, sideways at the page level */
html,body{max-width:100%;overflow-x:clip!important}
.nv-scrim{width:100%;max-width:100%}
