.nafnav-dock{--dock-slot: 52px;--dock-icon: 34px;--dock-pad-block: 12px;--dock-pad-inline: 14px;--dock-radius: 22px;--dock-mag-scale: .5;--dock-mag-lift: 12px;--dock-spring: cubic-bezier(.34, 1.56, .64, 1)}.nafnav-dock{position:fixed;bottom:16px;left:50%;z-index:1150;transform:translate(-50%,calc(100% + 28px));opacity:0;pointer-events:none;transition:transform .32s var(--naf-ease-out),opacity .2s var(--naf-ease)}.nafnav-dock.is-visible{transform:translate(-50%);opacity:1;pointer-events:auto;transition:transform .46s var(--dock-spring),opacity .26s var(--naf-ease)}.nafnav-dock-bar{display:flex;align-items:flex-end;gap:4px;max-width:min(92vw,880px);padding:var(--dock-pad-block) var(--dock-pad-inline);overflow-x:auto;scrollbar-width:none;border:1px solid var(--naf-glass-border);border-radius:var(--dock-radius);background:var(--naf-glass-bg-strong);box-shadow:var(--naf-glass-shadow),inset 0 1px 0 var(--naf-glass-highlight),0 14px 40px -18px var(--naf-glass-glow-a);-webkit-backdrop-filter:blur(var(--naf-glass-blur)) saturate(var(--naf-glass-saturate));backdrop-filter:blur(var(--naf-glass-blur)) saturate(var(--naf-glass-saturate))}.nafnav-dock-bar::-webkit-scrollbar{display:none}.nafnav-dock-hotzone{position:fixed;bottom:0;left:50%;z-index:1140;width:min(420px,70vw);height:26px;transform:translate(-50%);cursor:default}.nafnav-dock-item,.nafnav-dock-btn{position:relative;width:var(--dock-slot);height:var(--dock-slot);flex:0 0 auto;transform-origin:bottom center;transform:translateY(calc(var(--mag, 0) * var(--dock-mag-lift) * -1)) scale(calc(1 + var(--mag, 0) * var(--dock-mag-scale)))}.nafnav-dock.is-settling .nafnav-dock-item,.nafnav-dock.is-settling .nafnav-dock-btn{transition:transform .3s var(--naf-ease-out)}.nafnav-dock-item{display:flex;align-items:flex-end;justify-content:center;padding-bottom:10px;border-radius:var(--naf-radius-md);color:var(--naf-text-primary);text-decoration:none}.nafnav-dock-item:hover,.nafnav-dock-item:focus-visible{text-decoration:none}.nafnav-dock-item:focus-visible{outline:none;box-shadow:var(--naf-focus-ring)}.nafnav-dock-icon{position:relative;display:grid;width:var(--dock-icon);height:var(--dock-icon);flex:0 0 auto;place-items:center;overflow:visible;border-radius:10px;background:var(--naf-surface-2);box-shadow:var(--naf-shadow-sm),inset 0 1px 0 var(--naf-glass-highlight);font-size:var(--naf-text-15);font-weight:700;line-height:1;text-align:center}.nafnav-dock-icon img{width:100%;height:100%;border-radius:10px;object-fit:cover}.nafnav-dock-icon:empty{display:none}.nafnav-dock-letter{color:var(--naf-text-on-accent);background:var(--naf-accent)}.nafnav-dock-badge{position:absolute;top:-5px;left:-5px;display:grid;width:16px;height:16px;place-items:center;border-radius:50%;color:var(--naf-text-on-accent);background:var(--naf-accent);box-shadow:0 0 0 2px var(--naf-glass-bg-strong)}.nafnav-dock-badge svg{width:9px;height:9px;fill:none;stroke:currentColor;stroke-width:2.6;stroke-linecap:round;stroke-linejoin:round}.nafnav-dock-dot{position:absolute;bottom:2px;left:50%;width:5px;height:5px;transform:translate(-50%);border-radius:50%;background:var(--naf-accent);opacity:0;transition:opacity .2s var(--naf-ease)}.nafnav-dock-item.is-active .nafnav-dock-dot{opacity:1}.nafnav-dock-label{position:absolute;bottom:calc(100% + 14px);left:50%;max-width:170px;padding:5px 11px;transform:translate(-50%,calc((1 - var(--mag, 0)) * 6px)) scale(calc(1 / (1 + var(--mag, 0) * var(--dock-mag-scale))));border:1px solid var(--naf-border);border-radius:var(--naf-radius-pill);color:var(--naf-text-primary);background:var(--naf-surface-overlay);box-shadow:var(--naf-shadow-raised);font-size:var(--naf-text-12);line-height:1.5;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;opacity:var(--mag, 0);pointer-events:none;transition:opacity .18s var(--naf-ease),transform .18s var(--naf-ease-out)}.nafnav-dock-label:after{content:"";position:absolute;top:100%;left:50%;width:8px;height:8px;transform:translate(-50%,-55%) rotate(45deg);border-right:1px solid var(--naf-border);border-bottom:1px solid var(--naf-border);background:var(--naf-surface-overlay)}.nafnav-dock-btn-collapse .nafnav-dock-label{border-color:transparent;color:var(--naf-text-on-accent);background:var(--naf-accent);box-shadow:0 6px 18px -6px var(--naf-glass-glow-a)}.nafnav-dock-btn-collapse .nafnav-dock-label:after{border-color:transparent;background:var(--naf-accent)}.nafnav-dock-btn{display:flex;align-items:center;justify-content:center;border:1px solid transparent;border-radius:var(--naf-radius-md);font:inherit;cursor:pointer}.nafnav-dock-btn-add{color:var(--naf-text-on-accent);background:var(--naf-accent);box-shadow:0 6px 16px -6px var(--naf-glass-glow-a),inset 0 1px 0 var(--naf-glass-highlight);font-size:26px;font-weight:300;line-height:1;transition:box-shadow .2s var(--naf-ease),background-color .2s var(--naf-ease)}.nafnav-dock-btn-add:hover,.nafnav-dock-btn-add:focus-visible{background:var(--naf-accent-hover);box-shadow:0 10px 22px -6px var(--naf-glass-glow-a),inset 0 1px 0 var(--naf-glass-highlight)}.nafnav-dock-btn-add:focus-visible{outline:none;box-shadow:var(--naf-focus-ring),0 10px 22px -6px var(--naf-glass-glow-a)}.nafnav-dock-btn-collapse{color:var(--naf-text-primary);background:var(--naf-surface-2);border-color:var(--naf-border);transition:background-color .2s var(--naf-ease),border-color .2s var(--naf-ease)}.nafnav-dock-btn-collapse:hover,.nafnav-dock-btn-collapse:focus-visible{background:var(--naf-surface-3)}.nafnav-dock-btn-collapse:focus-visible{outline:none;box-shadow:var(--naf-focus-ring)}.nafnav-dock-btn-collapse svg{width:20px;height:20px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.nafnav-dock-sep{width:1px;height:30px;flex:0 0 auto;margin:0 6px 10px;background:linear-gradient(to bottom,transparent,var(--naf-border-strong) 25%,var(--naf-border-strong) 75%,transparent)}.nafnav-dock-menu{position:fixed;z-index:1160;min-width:136px;padding:5px;border:1px solid var(--naf-glass-border);border-radius:var(--naf-radius-md);background:var(--naf-glass-bg-strong);box-shadow:var(--naf-glass-shadow),inset 0 1px 0 var(--naf-glass-highlight);-webkit-backdrop-filter:blur(var(--naf-glass-blur));backdrop-filter:blur(var(--naf-glass-blur));animation:nafnav-dock-menu-in .16s var(--naf-ease-out)}@keyframes nafnav-dock-menu-in{0%{opacity:0;transform:scale(.96)}}.nafnav-dock-menu button{display:flex;width:100%;align-items:center;gap:8px;padding:8px 10px;border:0;border-radius:7px;color:var(--naf-text-primary);background:transparent;font:inherit;font-size:var(--naf-text-13);text-align:left;cursor:pointer;transition:background-color .14s var(--naf-ease),color .14s var(--naf-ease)}.nafnav-dock-menu button:hover,.nafnav-dock-menu button:focus-visible{color:var(--naf-accent-text);background:var(--naf-accent-soft)}.nafnav-dock-menu button:focus-visible{outline:none}.nafnav-dock-menu button.is-danger{color:var(--naf-clay-text)}.nafnav-dock-menu button.is-danger:hover,.nafnav-dock-menu button.is-danger:focus-visible{background:var(--naf-clay-soft)}.nafnav-dock-dialog[hidden]{display:none}.nafnav-dock-dialog{position:fixed;inset:0;z-index:2300;display:grid;place-items:center;padding:18px}.nafnav-dock-backdrop{position:absolute;inset:0;background:var(--naf-surface-scrim);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:nafnav-dock-fade-in .2s var(--naf-ease)}@keyframes nafnav-dock-fade-in{0%{opacity:0}}.nafnav-dock-card{position:relative;width:min(430px,100%);max-height:calc(100vh - 36px);padding:24px;overflow-y:auto;border:1px solid var(--naf-glass-border);border-radius:18px;background:var(--naf-surface-1);box-shadow:var(--naf-shadow-overlay);animation:nafnav-dock-card-in .32s var(--dock-spring)}@keyframes nafnav-dock-card-in{0%{opacity:0;transform:scale(.95) translateY(10px)}}.nafnav-dock-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.nafnav-dock-card-head h2{margin:0;color:var(--naf-text-primary);font-size:var(--naf-text-20);letter-spacing:.01em}.nafnav-dock-close{display:grid;width:32px;height:32px;flex:0 0 auto;place-items:center;border:1px solid var(--naf-border);border-radius:9px;color:var(--naf-text-secondary);background:transparent;font:inherit;font-size:19px;line-height:1;cursor:pointer;transition:color .16s var(--naf-ease),border-color .16s var(--naf-ease),background-color .16s var(--naf-ease)}.nafnav-dock-close:hover,.nafnav-dock-close:focus-visible{color:var(--naf-accent-text);border-color:var(--naf-accent-border);background:var(--naf-accent-soft)}.nafnav-dock-tip{display:flex;align-items:center;gap:9px;margin:14px 0 0;padding:11px 13px;border-radius:var(--naf-radius-md);color:var(--naf-text-secondary);background:var(--naf-accent-soft);font-size:var(--naf-text-12);line-height:1.6}.nafnav-dock-tip-icon{width:15px;height:15px;flex:0 0 auto;color:var(--naf-accent-text);fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}.nafnav-dock-form{display:grid;gap:16px;margin-top:20px}.nafnav-dock-field{display:grid;gap:7px}.nafnav-dock-field>label,.nafnav-dock-field-label{color:var(--naf-text-secondary);font-size:var(--naf-text-13);font-weight:600}.nafnav-dock-field em{margin-left:3px;color:var(--naf-clay-text);font-style:normal}.nafnav-dock-optional{margin-left:5px;color:var(--naf-text-subtle);font-size:var(--naf-text-12);font-weight:400}.nafnav-dock-input{position:relative;display:block}.nafnav-dock-input>svg{position:absolute;top:50%;left:13px;width:16px;height:16px;transform:translateY(-50%);color:var(--naf-text-subtle);fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round;pointer-events:none;transition:color .16s var(--naf-ease)}.nafnav-dock-input:focus-within>svg{color:var(--naf-accent-text)}.nafnav-dock-field input,.nafnav-dock-field select{width:100%;min-height:44px;padding:10px 12px;border:1px solid var(--naf-border-control);border-radius:var(--naf-radius-md);color:var(--naf-text-primary);background:var(--naf-surface-1);font:inherit;font-size:var(--naf-text-14);transition:box-shadow .16s var(--naf-ease)}.nafnav-dock-input input{padding-left:38px}.nafnav-dock-field input::placeholder{color:var(--naf-text-subtle)}.nafnav-dock-field input:focus,.nafnav-dock-field select:focus{outline:none;box-shadow:var(--naf-focus-ring)}.nafnav-dock-segmented{display:grid;grid-template-columns:1fr 1fr;gap:8px}.nafnav-dock-segmented label{position:relative;display:flex;min-height:46px;align-items:center;justify-content:center;gap:8px;border:1px solid var(--naf-border-control);border-radius:var(--naf-radius-md);color:var(--naf-text-secondary);background:var(--naf-surface-1);font-size:var(--naf-text-13);font-weight:600;cursor:pointer;transition:color .18s var(--naf-ease),border-color .18s var(--naf-ease),background-color .18s var(--naf-ease),box-shadow .18s var(--naf-ease)}.nafnav-dock-segmented label:hover{color:var(--naf-accent-text);border-color:var(--naf-accent-border)}.nafnav-dock-segmented label.is-active{border-color:transparent;color:var(--naf-text-on-accent);background:var(--naf-accent);box-shadow:0 6px 16px -6px var(--naf-glass-glow-a)}.nafnav-dock-segmented input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.nafnav-dock-segmented label:focus-within{box-shadow:var(--naf-focus-ring)}.nafnav-dock-segmented svg{width:15px;height:15px;flex:0 0 auto;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.nafnav-dock-error[hidden]{display:none}.nafnav-dock-error{margin:0;padding:10px 12px;border-radius:var(--naf-radius-md);color:var(--naf-clay-text);background:var(--naf-clay-soft);font-size:var(--naf-text-13)}.nafnav-dock-actions{display:flex;margin-top:2px}.nafnav-dock-actions .nafnav-dock-btn{display:flex;width:100%;height:46px;align-items:center;justify-content:center;gap:8px;font-size:var(--naf-text-14);font-weight:600}.nafnav-dock-btn-primary{color:var(--naf-text-on-accent);background:var(--naf-accent);box-shadow:0 8px 20px -8px var(--naf-glass-glow-a),inset 0 1px 0 var(--naf-glass-highlight);transition:background-color .18s var(--naf-ease),box-shadow .18s var(--naf-ease),transform .18s var(--naf-ease-out)}.nafnav-dock-btn-primary:hover{background:var(--naf-accent-hover);box-shadow:0 12px 26px -8px var(--naf-glass-glow-a),inset 0 1px 0 var(--naf-glass-highlight);transform:translateY(-1px)}.nafnav-dock-btn-primary:focus-visible{outline:none;box-shadow:var(--naf-focus-ring),0 12px 26px -8px var(--naf-glass-glow-a)}.nafnav-dock-btn-primary svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}.nafnav-dock-window[hidden]{display:none}.nafnav-dock-window{position:fixed;inset:7vh 8vw 11vh;z-index:2290;display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--naf-glass-border);border-radius:16px;background:var(--naf-surface-1);box-shadow:var(--naf-shadow-overlay);animation:nafnav-dock-card-in .3s var(--naf-ease-out)}.nafnav-dock-window-head{display:flex;align-items:center;gap:12px;padding:11px 14px;border-bottom:1px solid var(--naf-border);background:var(--naf-surface-2)}.nafnav-dock-window-icon{display:grid;width:30px;height:30px;flex:0 0 auto;place-items:center;overflow:hidden;border-radius:8px;background:var(--naf-surface-3);box-shadow:var(--naf-shadow-sm)}.nafnav-dock-window-icon img{width:100%;height:100%;object-fit:cover}.nafnav-dock-window-text{display:grid;flex:1;min-width:0;gap:1px}.nafnav-dock-window-title{overflow:hidden;color:var(--naf-text-primary);font-size:var(--naf-text-14);font-weight:600;white-space:nowrap;text-overflow:ellipsis}.nafnav-dock-window-host{overflow:hidden;color:var(--naf-text-muted);font-size:var(--naf-text-12);white-space:nowrap;text-overflow:ellipsis}.nafnav-dock-window-link{display:inline-flex;align-items:center;gap:5px;flex:0 0 auto;padding:6px 11px;border-radius:var(--naf-radius-pill);color:var(--naf-accent-text);background:var(--naf-accent-soft);font-size:var(--naf-text-12);font-weight:600;text-decoration:none;transition:background-color .16s var(--naf-ease)}.nafnav-dock-window-link:hover{background:var(--naf-accent-soft-hover)}.nafnav-dock-window-link svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.nafnav-dock-window .nafnav-dock-close{width:30px;height:30px;font-size:17px}.nafnav-dock-frame{width:100%;flex:1;border:0;background:var(--naf-surface-1)}@media (max-width: 767.98px){.nafnav-dock,.nafnav-dock-hotzone{display:none}}@media (prefers-reduced-motion: reduce){.nafnav-dock,.nafnav-dock-item,.nafnav-dock-btn,.nafnav-dock-label,.nafnav-dock-menu,.nafnav-dock-card,.nafnav-dock-window{transition:none;animation:none}.nafnav-dock-item,.nafnav-dock-btn{transform:none}}
