/* VAXT shell polish: design tokens, focus, nav, palette, toasts */
:root{--vx-brand:#0b3a4c;--vx-accent:#e31e25;--vx-line:#d8e2e7;--vx-bg:#f4f7f9;--vx-radius:10px;--vx-shadow:0 12px 40px rgba(11,58,76,.18);--vx-focus:0 0 0 3px rgba(227,30,37,.35)}
body{font-family:Montserrat,system-ui,sans-serif;-webkit-font-smoothing:antialiased}
:focus-visible{outline:2px solid var(--vx-accent);outline-offset:2px}
button:focus-visible,a:focus-visible,[tabindex]:focus-visible{outline:2px solid var(--vx-accent);outline-offset:2px;border-radius:8px}
input:focus-visible,select:focus-visible,textarea:focus-visible{outline:none;box-shadow:var(--vx-focus);border-color:var(--vx-accent)}
button{cursor:pointer;transition:background .15s,border-color .15s,transform .1s,box-shadow .15s}
button:active:not(:disabled){transform:translateY(1px)}
button:disabled{opacity:.5;cursor:not-allowed}
.btn{border-radius:var(--vx-radius)}
.btn:hover:not(:disabled){border-color:var(--vx-brand);box-shadow:0 2px 8px rgba(11,58,76,.12)}
.btn.p:hover:not(:disabled){background:#c7161d;border-color:#c7161d}
.btn.d:hover:not(:disabled){background:#145268}
input,select,textarea{border-radius:var(--vx-radius);border:1px solid var(--vx-line);font-family:inherit}
.rail a{transition:background .15s,color .15s}
.rail a:hover{background:#12495f;color:#fff}
.rail-label{font-weight:700}
.toolbar{backdrop-filter:saturate(1.2)}
.modal-back{backdrop-filter:blur(2px)}
.modal{border-radius:14px;box-shadow:var(--vx-shadow)}
.toast{border-radius:12px;box-shadow:var(--vx-shadow)}
.dd-menu{border-radius:12px;box-shadow:var(--vx-shadow)}
.vx-badge{display:inline-flex;align-items:center;height:22px;padding:0 9px;border-radius:11px;font-size:11px;font-weight:700;background:#e6eef2;color:var(--vx-brand)}
.vx-badge.ok{background:#e1f5ea;color:#157347}.vx-badge.warn{background:#fff1d6;color:#9a6200}.vx-badge.bad{background:#fde4e5;color:#b3141a}
.vx-toasts{position:fixed;right:20px;bottom:80px;z-index:10000;display:flex;flex-direction:column;gap:8px;align-items:flex-end}
.vx-toast{display:flex;align-items:center;gap:12px;background:#0b3a4c;color:#f1f5f9;padding:11px 14px;border-radius:12px;font-size:12.5px;line-height:1.45;font-weight:400;border:1px solid rgba(255,255,255,.08);box-shadow:0 12px 36px rgba(5,25,35,.35);max-width:min(520px,calc(100vw - 32px));animation:vxin .2s ease-out;transition:opacity .25s}
.vx-toast.err{background:#8f0f16}.vx-toast .toast-x{background:none;border:0;color:#94a3b8;font-size:13px;padding:4px}.vx-toast .toast-x:hover{color:#fff}.vx-toast.out{opacity:0}
@keyframes vxin{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.vx-pal-back{position:fixed;inset:0;z-index:9999;background:rgba(11,58,76,.45);backdrop-filter:blur(2px);display:flex;justify-content:center;align-items:flex-start;padding-top:14vh}
.vx-pal{width:min(560px,92vw);background:#fff;border-radius:16px;box-shadow:var(--vx-shadow);overflow:hidden;animation:vxin .15s ease-out}
.vx-pal-in{width:100%;height:56px;border:0;border-bottom:1px solid var(--vx-line);border-radius:0;padding:0 20px;font-size:16px;font-weight:600;box-sizing:border-box}
.vx-pal-in:focus-visible{box-shadow:none}
.vx-pal-list{max-height:50vh;overflow:auto;padding:6px}
.vx-pal-item{display:flex;justify-content:space-between;align-items:center;width:100%;padding:11px 14px;border:0;background:none;border-radius:10px;font-size:14px;font-weight:600;color:var(--vx-brand);text-align:left}
.vx-pal-item em{font-style:normal;font-size:11px;font-weight:700;color:#6b8793}
.vx-pal-item.on,.vx-pal-item:hover{background:#eaf1f4}
.vx-pal-empty{padding:20px;text-align:center;color:#6b8793;font-size:13px}
@media (max-width:900px){
 .rail{box-shadow:0 -4px 16px rgba(11,58,76,.2)}
 .rail a{width:auto;flex:1;max-width:96px;flex-direction:column;gap:2px;height:48px}
 .rail .rail-label{display:block;font-size:10px}
 .vx-toasts{right:12px;left:12px;bottom:76px;align-items:stretch}
}
@media (prefers-reduced-motion:reduce){*{animation-duration:.01ms !important;transition-duration:.01ms !important}}

/* skip-link, save indicator, page header, shortcuts help */
.skip-link{position:fixed;left:12px;top:-60px;z-index:10001;background:#0b3a4c;color:#fff;padding:10px 16px;border-radius:10px;font-size:13px;font-weight:700;text-decoration:none;transition:top .15s}
.skip-link:focus{top:12px}
.save-ind{position:fixed;right:16px;top:10px;z-index:150;display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 10px;border-radius:12px;background:#e1f5ea;color:#157347;font-size:11px;font-weight:700;pointer-events:none}
.save-ind:before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.save-ind.bad{background:#fde4e5;color:#b3141a}
.app-main:focus{outline:none}
.page-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}
.crumbs{display:flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:#6b8793}
.crumbs [aria-current="page"]{color:var(--vx-brand);font-weight:800;font-size:16px}
.crumbs .sep{opacity:.5}
.role-chip{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 12px;border:1px solid var(--vx-line);border-radius:15px;background:#fff;color:var(--vx-brand);font-size:12px;font-weight:700}
.role-chip:hover{border-color:var(--vx-brand)}
.vx-help{width:min(480px,92vw);background:#fff;border-radius:16px;box-shadow:var(--vx-shadow);padding:20px 24px;animation:vxin .15s ease-out}
.vx-help h2{margin:0 0 12px;font-size:16px;color:var(--vx-brand)}
.vx-help dl{display:grid;grid-template-columns:auto 1fr;gap:8px 16px;margin:0;font-size:13px}
.vx-help dt{font-weight:700}.vx-help kbd{font-family:inherit;font-size:11px;font-weight:700;background:#eaf1f4;border:1px solid var(--vx-line);border-radius:6px;padding:2px 7px}
.vx-help dd{margin:0;color:#44606c}
/* toolbar inside .app-main: never overflows the column; save indicator moved off the header */
.app-main>.toolbar,.app-main .toolbar{display:flex;align-items:center;gap:12px;flex-wrap:wrap;min-width:0;box-sizing:border-box}
.toolbar .flex-gap{flex:1 1 0;min-width:0}
.crumbs{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.save-ind{top:auto;bottom:14px;right:16px;box-shadow:0 2px 8px rgba(11,58,76,.12)}
@media (max-width:900px){.save-ind{bottom:76px}}
/* onboarding hint */
.vx-onb{position:fixed;left:84px;bottom:24px;z-index:9000;width:min(340px,calc(100vw - 32px));background:#0b3a4c;color:#f1f5f9;border-radius:14px;padding:16px 18px;box-shadow:0 12px 36px rgba(5,25,35,.35);font-size:13px;line-height:1.5;animation:vxin .25s ease-out}
.vx-onb h3{margin:0 0 6px;font-size:14px;font-weight:800}
.vx-onb p{margin:0 0 12px;color:#cfe0e7}
.vx-onb kbd{font-family:inherit;font-size:11px;font-weight:700;background:rgba(255,255,255,.14);border-radius:6px;padding:1px 6px}
.vx-onb button{height:32px;padding:0 14px;border:0;border-radius:8px;background:#e31e25;color:#fff;font-weight:700;font-size:12px}
.vx-onb button:hover{background:#c7161d}
@media (max-width:900px){.vx-onb{left:16px;bottom:84px}}
