/* Shell pieces the server renders on every page: skip link, toasts (flash messages), confirm dialog, footer disclaimer, dropdown-by-click. Shared, unscoped. */
.skip{position:absolute;left:12px;top:-60px;z-index:200;background:var(--ink);color:#fff;padding:10px 16px;border-radius:12px;font-weight:700;transition:top .2s}
.skip:focus{top:12px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
:focus-visible{outline:2px solid var(--azure-d);outline-offset:2px}
.dd.open .menu{opacity:1;visibility:visible;transform:none}

/* how far down sticky page furniture must sit: below the nav (77px), and below the advisor bar when it is showing */
:root{--stick:77px}
body.has-adv{--stick:130px}

/* toasts */
.ui-toasts{position:fixed;top:88px;right:20px;z-index:120;display:grid;gap:10px;width:min(420px,calc(100vw - 32px));pointer-events:none}
.ui-toast{pointer-events:auto;display:flex;gap:12px;align-items:flex-start;padding:14px 16px;border-radius:16px;background:#fff;border:1px solid var(--line);box-shadow:var(--sh);font-size:14.5px;line-height:1.45;animation:toastin .35s var(--ease)}
.ui-toast .ico{flex:none;margin-top:2px}
.ui-toast span.t{flex:1}
.ui-toast button{flex:none;width:26px;height:26px;border-radius:8px;color:var(--mute);display:grid;place-items:center}
.ui-toast button:hover{background:var(--mist);color:var(--ink)}
.ui-toast.success{border-color:#BFE6CF;background:#F0FAF4}.ui-toast.success .ico{color:var(--good-d)}
.ui-toast.warning{border-color:#F3DCA6;background:#FFF9EA}.ui-toast.warning .ico{color:var(--warn-d)}
.ui-toast.danger{border-color:#F4C5CD;background:#FEF2F4}.ui-toast.danger .ico{color:var(--bad)}
.ui-toast.info .ico{color:var(--azure-d)}
.ui-toast.out{opacity:0;transform:translateY(-8px);transition:all .3s var(--ease)}
@keyframes toastin{from{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:none}}
@media(max-width:600px){.ui-toasts{top:80px;right:16px;left:16px;width:auto}}

/* confirm / prompt dialog (native <dialog>) */
.ui-dlg{border:0;padding:0;border-radius:24px;max-width:min(460px,calc(100vw - 32px));width:100%;box-shadow:0 30px 80px -20px rgba(13,33,55,.5);color:var(--ink)}
.ui-dlg::backdrop{background:rgba(13,33,55,.4);backdrop-filter:blur(3px)}
.ui-dlg form{padding:28px}
.ui-dlg h2{font-size:22px;font-weight:700;letter-spacing:-.02em;margin-bottom:8px}
.ui-dlg p{color:var(--ink2);margin-bottom:0}
.ui-dlg .fld{margin-top:16px;display:grid;gap:6px}
.ui-dlg label{font-size:13.5px;font-weight:700;color:var(--ink2)}
.ui-dlg input{height:46px;padding:0 14px;border:1.5px solid var(--line);border-radius:12px;font:inherit}
.ui-dlg input:focus{outline:none;border-color:var(--azure-d);box-shadow:0 0 0 4px rgba(46,111,235,.15)}
.ui-dlg .acts{display:flex;gap:10px;justify-content:flex-end;margin-top:24px;flex-wrap:wrap}
.ui-dlg .btn.dng{background:var(--bad);color:#fff}

/* footer */
.foot .disc{padding-top:22px;max-width:70em}
.foot .disc summary{cursor:pointer;font-size:13px;font-weight:700;color:var(--ink2);list-style:none;display:inline-flex;gap:8px;align-items:center}
.foot .disc summary::-webkit-details-marker{display:none}
.foot .disc summary::after{content:"+";font-weight:800}
.foot .disc[open] summary::after{content:"\2212"}
.foot .disc p{margin-top:10px;font-size:12.5px;line-height:1.65;color:var(--mute)}
.foot .row2{display:flex;gap:18px;flex-wrap:wrap;align-items:center;justify-content:space-between;padding-top:22px;font-size:13px;color:var(--mute)}
.foot .row2 a{display:inline;padding:0}
.foot .row2 a:hover{text-decoration:underline}
@media(prefers-reduced-motion:reduce){.ui-toast{animation:none}.rv{opacity:1!important;transform:none!important;transition:none!important}}
