/*! Visucio UI v1.2.0 | MIT | Montserrat: SIL OFL 1.1 */
@font-face{font-family:Montserrat;src:url('/assets/fonts/montserrat-latin.woff2') format('woff2');font-style:normal;font-weight:100 900;font-display:swap}
:root{
 --vis-font:Montserrat,system-ui,-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
 --vis-brand:#678fff;--vis-action:#365dcc;--vis-on-action:#fff;
 --vis-bg:#f5f5f7;--vis-surface:#fff;--vis-surface-soft:#edf0f5;--vis-ink:#1d1d1f;--vis-muted:#656570;
 --vis-border:#dce2ed;--vis-control-border:#8591a6;--vis-glass:rgba(255,255,255,.78);--vis-glass-edge:rgba(255,255,255,.88);
 --vis-accent-soft:#eaf0ff;--vis-accent-ink:#345ac5;
 --vis-success:#146044;--vis-success-soft:#e9f7ef;--vis-warning:#78510a;--vis-warning-soft:#fff4db;--vis-danger:#ad2b3b;--vis-danger-soft:#ffebee;
 --vis-radius-sm:.5rem;--vis-radius-md:.75rem;--vis-radius-lg:1.125rem;--vis-radius-xl:1.5rem;--vis-radius-pill:999px;
 --vis-space-1:.25rem;--vis-space-2:.5rem;--vis-space-3:.75rem;--vis-space-4:1rem;--vis-space-5:1.25rem;--vis-space-6:1.5rem;--vis-space-8:2rem;--vis-space-12:3rem;
 --vis-shadow-sm:0 2px 5px rgba(20,35,65,.035),0 8px 20px rgba(20,35,65,.035);
 --vis-shadow-md:0 6px 16px rgba(20,35,65,.04),0 20px 48px rgba(20,35,65,.08);
 --vis-shadow-lg:0 18px 60px rgba(20,35,65,.14),inset 0 1px 0 rgba(255,255,255,.7);
 --vis-fast:120ms;--vis-duration:180ms;--vis-slow:280ms;--vis-ease:cubic-bezier(.2,.7,.2,1);--vis-blur:20px;
 --vis-color-scheme:light;
}
@media(prefers-color-scheme:dark){:root:not([data-vis-theme]){
 --vis-action:#8ba9ff;--vis-on-action:#101b36;--vis-bg:#10141e;--vis-surface:#1a202d;--vis-surface-soft:#232c3d;--vis-ink:#f3f5fa;--vis-muted:#acb7cd;--vis-border:#354057;--vis-control-border:#74849f;--vis-glass:rgba(26,32,45,.82);--vis-glass-edge:rgba(255,255,255,.15);--vis-accent-soft:#253455;--vis-accent-ink:#a8bfff;--vis-success:#8ee3b6;--vis-success-soft:#163c30;--vis-warning:#f3d08a;--vis-warning-soft:#40341b;--vis-danger:#ffb0b9;--vis-danger-soft:#472530;--vis-shadow-lg:0 18px 60px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,255,255,.08);--vis-color-scheme:dark;
}}
[data-vis-theme=dark]{
 --vis-action:#8ba9ff;--vis-on-action:#101b36;--vis-bg:#10141e;--vis-surface:#1a202d;--vis-surface-soft:#232c3d;--vis-ink:#f3f5fa;--vis-muted:#acb7cd;--vis-border:#354057;--vis-control-border:#74849f;--vis-glass:rgba(26,32,45,.82);--vis-glass-edge:rgba(255,255,255,.15);--vis-accent-soft:#253455;--vis-accent-ink:#a8bfff;--vis-success:#8ee3b6;--vis-success-soft:#163c30;--vis-warning:#f3d08a;--vis-warning-soft:#40341b;--vis-danger:#ffb0b9;--vis-danger-soft:#472530;--vis-shadow-lg:0 18px 60px rgba(0,0,0,.35),inset 0 1px 0 rgba(255,255,255,.08);--vis-color-scheme:dark;
}
.vis-ui{color-scheme:var(--vis-color-scheme);font-family:var(--vis-font);font-size:1rem;line-height:1.6;color:var(--vis-ink);background:var(--vis-bg);-webkit-font-smoothing:antialiased}
.vis-ui *,.vis-ui *::before,.vis-ui *::after{box-sizing:border-box}
.vis-ui :where(button,input,select,textarea){font:inherit}
.vis-ui :where(h1,h2,h3,h4,p){margin:0}
.vis-ui :where(button,a,input,select,textarea,summary,[tabindex]):focus-visible{outline:3px solid var(--vis-action);outline-offset:4px}
.vis-ui [hidden]{display:none!important}
.vis-ui ::selection{background:var(--vis-brand);color:#101b36}
.vis-heading{font-weight:600;letter-spacing:-.045em;line-height:1.16;color:var(--vis-ink)}
.vis-title{font-size:clamp(2rem,4vw,3.5rem)}
.vis-subtitle{font-size:1.5rem;letter-spacing:-.03em;font-weight:600;line-height:1.3}
.vis-label{font-size:.875rem;font-weight:600;line-height:1.5}
.vis-caption{font-size:.8125rem;line-height:1.5;color:var(--vis-muted)}
.vis-muted{color:var(--vis-muted)}
.vis-link{color:var(--vis-accent-ink);text-decoration:underline;text-underline-offset:4px}
.vis-sr-only{position:absolute!important;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.vis-container{max-width:80rem;margin-inline:auto;padding-inline:1.5rem}
.vis-stack{display:flex;flex-direction:column;gap:var(--vis-gap,1rem)}
.vis-row{display:flex;align-items:center;gap:var(--vis-gap,.75rem);flex-wrap:wrap}
.vis-between{justify-content:space-between}
.vis-grid{display:grid;grid-template-columns:repeat(var(--vis-columns,2),minmax(0,1fr));gap:var(--vis-gap,1.5rem)}
.vis-divider{height:1px;border:0;background:var(--vis-border);margin-block:1.25rem}
.vis-icon{width:1.25rem;height:1.25rem;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}
.vis-button{box-sizing:border-box;display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:2.75rem;padding:.65rem 1.05rem;border:1px solid var(--vis-border);border-radius:var(--vis-radius-md);background:var(--vis-surface);color:var(--vis-ink);font:600 .875rem/1.4 var(--vis-font);text-decoration:none;cursor:pointer;transition:background-color var(--vis-duration) var(--vis-ease),box-shadow var(--vis-duration) var(--vis-ease),transform var(--vis-fast) var(--vis-ease),border-color var(--vis-duration);touch-action:manipulation}
.vis-button-primary{background:var(--vis-action);color:var(--vis-on-action);border-color:transparent;box-shadow:0 3px 8px rgba(54,93,204,.13)}
.vis-button-brand{background:var(--vis-brand);color:#101b36;border-color:transparent}
.vis-button-soft{background:var(--vis-accent-soft);color:var(--vis-accent-ink);border-color:transparent}
.vis-button-ghost{background:transparent;border-color:transparent;color:var(--vis-muted)}
.vis-button-danger{background:var(--vis-danger-soft);color:var(--vis-danger);border-color:transparent}
.vis-button-icon{width:2.75rem;min-width:2.75rem;padding:.65rem}
.vis-button-sm{min-height:2.25rem;padding:.4rem .8rem;font-size:.8125rem}
.vis-button-lg{min-height:3.25rem;padding:.85rem 1.5rem;font-size:1rem}
.vis-button:active:not(:disabled):not([aria-disabled=true]){transform:scale(.98)}
.vis-button:disabled,.vis-button[aria-disabled=true]{opacity:.45;cursor:not-allowed;box-shadow:none}
@media(hover:hover){.vis-button:hover:not(:disabled):not([aria-disabled=true]){transform:translateY(-1px);box-shadow:var(--vis-shadow-sm);border-color:var(--vis-control-border)}.vis-button-primary:hover:not(:disabled),.vis-button-brand:hover:not(:disabled){border-color:transparent;box-shadow:0 6px 16px rgba(54,93,204,.22)}.vis-button-ghost:hover{background:var(--vis-surface-soft)}}
.vis-card{min-width:0;background:var(--vis-surface);border:1px solid var(--vis-border);border-radius:var(--vis-radius-lg);padding:1.5rem;box-shadow:var(--vis-shadow-sm)}
.vis-card-interactive{transition:transform var(--vis-slow) var(--vis-ease),box-shadow var(--vis-slow) var(--vis-ease),border-color var(--vis-duration)}
@media(hover:hover){.vis-card-interactive:hover{transform:translateY(-3px);box-shadow:var(--vis-shadow-md);border-color:var(--vis-control-border)}}
.vis-glass{background:var(--vis-surface);border:1px solid var(--vis-border);box-shadow:var(--vis-shadow-lg)}
@supports (backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px)){.vis-glass{background:var(--vis-glass);border-color:var(--vis-glass-edge);-webkit-backdrop-filter:blur(var(--vis-blur)) saturate(130%);backdrop-filter:blur(var(--vis-blur)) saturate(130%)}}
.vis-badge{display:inline-flex;align-items:center;gap:.35rem;padding:.25rem .6rem;min-height:1.65rem;border-radius:var(--vis-radius-sm);background:var(--vis-surface-soft);color:var(--vis-muted);font-size:.8125rem;line-height:1.35;font-weight:500;white-space:nowrap}
.vis-badge-blue{background:var(--vis-accent-soft);color:var(--vis-accent-ink)}
.vis-badge-success{background:var(--vis-success-soft);color:var(--vis-success)}
.vis-badge-warning{background:var(--vis-warning-soft);color:var(--vis-warning)}
.vis-badge-danger{background:var(--vis-danger-soft);color:var(--vis-danger)}
.vis-avatar{display:inline-flex;align-items:center;justify-content:center;flex:none;width:2.75rem;height:2.75rem;border-radius:50%;background:var(--vis-accent-soft);color:var(--vis-accent-ink);font-weight:600;font-size:.875rem;object-fit:cover}
.vis-field{display:flex;flex-direction:column;gap:.5rem;min-width:0}
.vis-input,.vis-select,.vis-textarea{box-sizing:border-box;display:block;width:100%;min-height:2.875rem;border:1px solid var(--vis-control-border);border-radius:var(--vis-radius-md);padding:.7rem .875rem;background:var(--vis-surface);color:var(--vis-ink);font:400 .9375rem/1.5 var(--vis-font);transition:border-color var(--vis-duration),box-shadow var(--vis-duration)}
.vis-textarea{min-height:7rem;resize:vertical}
.vis-input::placeholder,.vis-textarea::placeholder{color:var(--vis-muted);opacity:1}
.vis-input:focus,.vis-select:focus,.vis-textarea:focus{border-color:var(--vis-action);box-shadow:0 0 0 3px var(--vis-accent-soft)}
.vis-input[aria-invalid=true]{border-color:var(--vis-danger)}
.vis-input:disabled,.vis-select:disabled,.vis-textarea:disabled{opacity:.55;cursor:not-allowed}
.vis-field-error{color:var(--vis-danger);font-size:.875rem}
.vis-checkbox{width:1.125rem;height:1.125rem;accent-color:var(--vis-action);margin:0;flex:none}
.vis-switch{display:inline-flex;align-items:center;gap:.75rem;position:relative;cursor:pointer;min-height:2.75rem;font-size:.875rem}
.vis-switch input{position:absolute;inset-inline-start:0;width:2.75rem;height:1.625rem;opacity:0;cursor:pointer;margin:0;z-index:1}
.vis-switch-track{position:relative;display:block;width:2.75rem;height:1.625rem;flex:none;border-radius:999px;border:1px solid var(--vis-control-border);background:var(--vis-surface-soft);transition:background-color var(--vis-duration)}
.vis-switch-track::after{content:'';position:absolute;left:3px;top:3px;width:1.125rem;height:1.125rem;border-radius:50%;background:var(--vis-muted);transition:transform var(--vis-duration) var(--vis-ease),background-color var(--vis-duration)}
.vis-switch input:checked+.vis-switch-track{background:var(--vis-action);border-color:var(--vis-action)}
.vis-switch input:checked+.vis-switch-track::after{transform:translateX(1.125rem);background:var(--vis-on-action)}
.vis-switch input:focus-visible+.vis-switch-track{outline:3px solid var(--vis-action);outline-offset:4px}
.vis-switch input:disabled~*{opacity:.45;cursor:not-allowed}
.vis-tabs{display:flex;align-items:center;gap:.25rem;padding:.3rem;border-radius:var(--vis-radius-md);background:var(--vis-surface-soft);width:fit-content;max-width:100%;flex-wrap:wrap}
.vis-tab{border:0;border-radius:.6rem;background:transparent;color:var(--vis-muted);font:500 .875rem/1.4 var(--vis-font);padding:.6rem 1rem;min-height:2.5rem;cursor:pointer;transition:background-color var(--vis-duration),color var(--vis-duration),box-shadow var(--vis-duration)}
.vis-tab[aria-selected=true]{background:var(--vis-surface);color:var(--vis-ink);box-shadow:var(--vis-shadow-sm)}
.vis-tab:disabled{opacity:.45;cursor:not-allowed}
.vis-tabpanel{padding-block:1.25rem}
.vis-alert{display:flex;gap:.75rem;align-items:flex-start;border-radius:var(--vis-radius-md);padding:1rem;background:var(--vis-accent-soft);color:var(--vis-accent-ink);font-size:.875rem}
.vis-alert .vis-icon{margin-top:.1rem}
.vis-alert-success{background:var(--vis-success-soft);color:var(--vis-success)}
.vis-alert-warning{background:var(--vis-warning-soft);color:var(--vis-warning)}
.vis-alert-danger{background:var(--vis-danger-soft);color:var(--vis-danger)}
.vis-progress{appearance:none;border:0;display:block;width:100%;height:.375rem;border-radius:999px;overflow:hidden;background:var(--vis-surface-soft);color:var(--vis-action)}
.vis-progress::-webkit-progress-bar{background:var(--vis-surface-soft);border-radius:999px}
.vis-progress::-webkit-progress-value{background:var(--vis-action);border-radius:999px}
.vis-progress::-moz-progress-bar{background:var(--vis-action);border-radius:999px}
.vis-skeleton{display:block;background:var(--vis-surface-soft);border-radius:.5rem;min-height:1rem;animation:vis-pulse 1.8s ease-in-out infinite}
.vis-spinner{display:inline-block;vertical-align:middle;width:1rem;height:1rem;border:2px solid currentColor;border-right-color:transparent;border-radius:50%;animation:vis-spin .8s linear infinite}
.vis-table-wrap{max-width:100%;overflow-x:auto;border:1px solid var(--vis-border);border-radius:var(--vis-radius-lg)}
.vis-table{width:100%;border-collapse:collapse;font-size:.875rem;text-align:start;background:var(--vis-surface)}
.vis-table th{font-weight:500;color:var(--vis-muted);background:var(--vis-surface-soft);font-size:.8125rem}
.vis-table :is(th,td){padding:1rem 1.25rem;text-align:start;border-bottom:1px solid var(--vis-border)}
.vis-table tr:last-child td{border-bottom:0}
.vis-table caption{text-align:start;padding:1rem;font-weight:600}
.vis-disclosure{border:1px solid var(--vis-border);border-radius:var(--vis-radius-md);background:var(--vis-surface)}
.vis-disclosure summary{padding:1rem 1.25rem;cursor:pointer;font-weight:500;font-size:.9375rem}
.vis-disclosure>div{padding:0 1.25rem 1.25rem;color:var(--vis-muted);font-size:.9375rem}
.vis-dialog{color:var(--vis-ink);padding:1.75rem;border-radius:var(--vis-radius-xl);width:min(30rem,calc(100% - 2rem));max-height:calc(100dvh - 2rem);overflow:auto;font:400 1rem/1.6 var(--vis-font)}
.vis-dialog:not([open]){display:none}
.vis-dialog[open]{animation:vis-enter var(--vis-slow) var(--vis-ease) both}
.vis-dialog::backdrop{background:rgba(10,17,32,.45);backdrop-filter:blur(5px)}
.vis-dialog-actions{display:flex;gap:.75rem;justify-content:flex-end;flex-wrap:wrap;margin-top:1.5rem}
.vis-toast-region{position:fixed;inset-inline-end:1.5rem;bottom:1.5rem;z-index:9999;display:flex;flex-direction:column;gap:.75rem;width:min(25rem,calc(100vw - 3rem));pointer-events:none;font-family:var(--vis-font);background:transparent}
.vis-toast{display:flex;align-items:center;gap:.875rem;padding:1rem 1.125rem;border-radius:var(--vis-radius-lg);font-size:.875rem;color:var(--vis-ink);pointer-events:auto;animation:vis-enter var(--vis-slow) var(--vis-ease)}
.vis-toast>span{flex:1;overflow-wrap:anywhere}
.vis-toast button{flex:none}
.vis-nav-item{display:flex;align-items:center;gap:.75rem;min-height:2.875rem;padding:.65rem .875rem;border-radius:var(--vis-radius-md);color:var(--vis-muted);text-decoration:none;font:500 .875rem/1.5 var(--vis-font);transition:background-color var(--vis-duration),color var(--vis-duration)}
.vis-nav-item:hover{background:var(--vis-surface-soft);color:var(--vis-ink)}
.vis-nav-item[aria-current=page]{background:var(--vis-accent-soft);color:var(--vis-accent-ink)}
.vis-tooltip{position:relative;display:inline-flex}
.vis-tooltip [role=tooltip]{position:absolute;inset-inline-start:50%;bottom:calc(100% + .6rem);transform:translateX(-50%);opacity:0;visibility:hidden;pointer-events:none;white-space:nowrap;background:var(--vis-ink);color:var(--vis-bg);padding:.4rem .65rem;border-radius:.4rem;font:500 .8125rem/1.4 var(--vis-font);transition:opacity var(--vis-fast);z-index:10}
.vis-tooltip:hover [role=tooltip],.vis-tooltip:focus-within [role=tooltip]{opacity:1;visibility:visible}
.vis-enter{animation:vis-enter var(--vis-slow) var(--vis-ease) both}
.vis-stagger>*{animation:vis-enter var(--vis-slow) var(--vis-ease) both}
.vis-stagger>:nth-child(2){animation-delay:40ms}.vis-stagger>:nth-child(3){animation-delay:80ms}.vis-stagger>:nth-child(4){animation-delay:120ms}
@keyframes vis-enter{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}
@keyframes vis-pulse{0%,100%{opacity:1}50%{opacity:.5}}
@keyframes vis-spin{to{transform:rotate(360deg)}}
/* Liquid motion: one moving surface, coordinated control states. */
:root{--vis-spring:cubic-bezier(.22,1.3,.36,1);--vis-fluid:cubic-bezier(.22,.8,.2,1);--vis-travel:520ms;--vis-blur:28px;--vis-glass-rgb:255,255,255;--vis-glass-alpha:.46;--vis-clear-alpha:.24;--vis-glass-muted:#343c4f;--vis-reflection:rgba(255,255,255,.78)}
@media(prefers-color-scheme:dark){:root:not([data-vis-theme]){--vis-glass-rgb:16,22,36;--vis-glass-alpha:.56;--vis-clear-alpha:.42;--vis-glass-muted:#e1e9fa;--vis-reflection:rgba(255,255,255,.28)}}
[data-vis-theme=dark]{--vis-glass-rgb:16,22,36;--vis-glass-alpha:.56;--vis-clear-alpha:.42;--vis-glass-muted:#e1e9fa;--vis-reflection:rgba(255,255,255,.28)}
.vis-glass{--vis-muted:var(--vis-glass-muted);box-shadow:0 16px 48px rgba(14,27,56,.12),inset 0 1px 0 var(--vis-reflection),inset 0 -1px 0 rgba(255,255,255,.1)}
@supports (backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px)){
 .vis-glass{background:rgba(var(--vis-glass-rgb),var(--vis-glass-alpha));-webkit-backdrop-filter:blur(var(--vis-blur)) saturate(150%);backdrop-filter:blur(var(--vis-blur)) saturate(150%)}
 .vis-glass-clear{background:rgba(var(--vis-glass-rgb),var(--vis-clear-alpha));--vis-blur:18px}
 .vis-glass-frost{background:rgba(var(--vis-glass-rgb),.76);--vis-blur:36px}
}
.vis-glass-clear,.vis-glass-frost{isolation:isolate}
.vis-button{transition:transform 320ms var(--vis-spring),background-color var(--vis-duration),box-shadow 320ms var(--vis-fluid),border-color var(--vis-duration)}
.vis-button .vis-icon{transition:transform 380ms var(--vis-spring)}
.vis-button-flow{border-radius:var(--vis-radius-pill);padding-inline:1.5rem;gap:1rem}
.vis-button-flow:hover .vis-icon,.vis-button-flow:focus-visible .vis-icon{transform:translateX(4px)}
.vis-button-orbit:hover .vis-icon,.vis-button-orbit:focus-visible .vis-icon{transform:rotate(90deg)}
.vis-button:active:not(:disabled):not([aria-disabled=true]){transform:scale(.95)}
.vis-switch input{width:3.25rem;height:2rem}
.vis-switch-track{width:3.25rem;height:2rem;background:var(--vis-surface-soft);transition:background-color 320ms,border-color 320ms,box-shadow 320ms;box-shadow:inset 0 2px 5px rgba(10,20,40,.08)}
.vis-switch-track::after{width:1.5rem;height:1.5rem;left:3px;top:3px;border-radius:999px;background:var(--vis-muted);box-shadow:0 2px 5px rgba(15,28,55,.16);transition:transform 460ms var(--vis-spring),width 180ms,background-color 250ms}
.vis-switch input:checked+.vis-switch-track::after{transform:translateX(1.25rem)}
.vis-switch input:active:not(:disabled)+.vis-switch-track::after{width:1.8rem}
.vis-switch input:checked:active:not(:disabled)+.vis-switch-track::after{transform:translateX(.95rem)}
.vis-switch-lg .vis-switch-track{width:4rem;height:2.5rem}.vis-switch-lg input{width:4rem;height:2.5rem}
.vis-switch-lg .vis-switch-track::after{width:2rem;height:2rem}.vis-switch-lg input:checked+.vis-switch-track::after{transform:translateX(1.5rem)}
.vis-switch-lg input:active:not(:disabled)+.vis-switch-track::after{width:2.3rem}.vis-switch-lg input:checked:active:not(:disabled)+.vis-switch-track::after{transform:translateX(1.2rem)}
.vis-tabs-liquid,.vis-tabs-orbit,.vis-tabs-spotlight,.vis-dock{position:relative;isolation:isolate;flex-wrap:nowrap;overflow:visible}
.vis-tabs-liquid::before,.vis-tabs-orbit::before,.vis-tabs-spotlight::before,.vis-dock::before{content:'';position:absolute;left:0;top:0;pointer-events:none;width:var(--vis-active-w,0px);height:var(--vis-active-h,0px);transform:translate(var(--vis-active-x,0px),var(--vis-active-y,0px));background:var(--vis-surface);border:1px solid var(--vis-glass-edge);border-radius:.7rem;box-shadow:var(--vis-shadow-sm);transition:transform var(--vis-travel) var(--vis-spring),width var(--vis-travel) var(--vis-fluid),height var(--vis-travel) var(--vis-fluid);z-index:0}
.vis-tabs-liquid .vis-tab,.vis-tabs-orbit .vis-tab,.vis-tabs-spotlight .vis-tab,.vis-dock .vis-tab{position:relative;z-index:1;display:flex;align-items:center;justify-content:center;gap:.5rem;background:transparent;box-shadow:none;transition:color 260ms;min-width:0}
.vis-tabs-liquid[data-vis-ready] .vis-tab[aria-selected=true],.vis-tabs-orbit[data-vis-ready] .vis-tab[aria-selected=true],.vis-tabs-spotlight[data-vis-ready] .vis-tab[aria-selected=true],.vis-dock[data-vis-ready] .vis-tab[aria-selected=true]{background:transparent;box-shadow:none}
.vis-tabs-liquid .vis-icon{transition:transform 460ms var(--vis-spring)}
.vis-tabs-liquid .vis-tab[aria-selected=true] .vis-icon{transform:scale(1.12)}
.vis-tabs-orbit,.vis-tabs-spotlight{display:flex;align-items:center;width:min(100%,25rem);padding:.5rem;border-radius:999px;gap:0;min-height:4rem}
.vis-tabs-orbit .vis-tab,.vis-tabs-spotlight .vis-tab{flex:1;height:3rem;padding:.5rem;min-height:3rem;border-radius:999px;color:var(--vis-ink)}
.vis-tabs-orbit::before{width:2.875rem;height:2.875rem;transform:translate(calc(var(--vis-active-x,0px) + var(--vis-active-w,0px)/2 - 1.4375rem),-1.05rem);border-radius:50%;background:var(--vis-action);border-color:rgba(255,255,255,.38);box-shadow:0 8px 22px rgba(54,93,204,.38),inset 0 1px 0 rgba(255,255,255,.45)}
.vis-tabs-orbit .vis-tab>.vis-icon{width:1.25rem;height:1.25rem;transition:transform var(--vis-travel) var(--vis-spring),color 240ms;flex:none}
.vis-tabs-orbit .vis-tab[aria-selected=true]>.vis-icon{transform:translateY(-1.6rem) scale(1.08);color:var(--vis-on-action)}
.vis-tab-label{position:absolute;font-size:.625rem;font-weight:600;bottom:0;left:50%;transform:translate(-50%,6px);opacity:0;transition:transform 380ms var(--vis-fluid),opacity 200ms;white-space:nowrap}
.vis-tabs-orbit .vis-tab[aria-selected=true] .vis-tab-label{transform:translate(-50%,0);opacity:1}
.vis-tabs-spotlight{background:#171d2a;--vis-ink:#aebbd3;--vis-surface:#171d2a;border-color:rgba(255,255,255,.16)}
.vis-tabs-spotlight::before{width:1.6rem;height:3px;border:0;transform:translate(calc(var(--vis-active-x,0px) + var(--vis-active-w,0px)/2 - .8rem),0);background:var(--vis-brand);border-radius:0 0 5px 5px;box-shadow:0 8px 20px 7px rgba(103,143,255,.2),0 18px 25px 12px rgba(103,143,255,.13)}
.vis-tabs-spotlight .vis-tab>.vis-icon{transition:transform 460ms var(--vis-spring),color 260ms}
.vis-tabs-spotlight .vis-tab[aria-selected=true]{color:#a8c0ff}.vis-tabs-spotlight .vis-tab[aria-selected=true]>.vis-icon{transform:translateY(-2px) scale(1.1)}
.vis-dock{display:flex;padding:.5rem;gap:.375rem;border-radius:1.4rem;width:fit-content;max-width:100%}
.vis-dock::before{border-radius:1rem;background:var(--vis-accent-soft)}
.vis-dock .vis-tab{width:3.25rem;height:3.25rem;padding:.75rem;border-radius:1rem;transition:transform var(--vis-travel) var(--vis-spring),color 260ms}
.vis-dock .vis-tab:hover,.vis-dock .vis-tab:focus-visible{transform:translateY(-.5rem) scale(1.15)}
.vis-dock .vis-tab[aria-selected=true]{color:var(--vis-action)}
.vis-dock .vis-tab::after{content:'';position:absolute;bottom:4px;left:calc(50% - 2px);width:4px;height:4px;border-radius:50%;background:currentColor;opacity:0;transition:opacity 200ms}
.vis-dock .vis-tab[aria-selected=true]::after{opacity:1}
.vis-panel-enter{animation:vis-panel-in 360ms var(--vis-fluid) both}
@keyframes vis-panel-in{from{opacity:0;transform:translateY(10px) scale(.985)}to{opacity:1;transform:none}}
.vis-hamburger{position:relative;display:inline-grid;place-content:center;gap:5px;width:2.875rem;height:2.875rem;flex:none;padding:.7rem;border:1px solid var(--vis-border);border-radius:var(--vis-radius-md);background:var(--vis-surface);color:var(--vis-ink);cursor:pointer}
.vis-hamburger span{display:block;width:20px;height:2px;border-radius:2px;background:currentColor;transition:transform 420ms var(--vis-spring),opacity 200ms}
.vis-hamburger[aria-expanded=true] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.vis-hamburger[aria-expanded=true] span:nth-child(2){opacity:0;transform:scaleX(.2)}
.vis-hamburger[aria-expanded=true] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.vis-menu{position:relative;display:inline-block;max-width:100%}
.vis-menu-panel{position:absolute;top:calc(100% + .65rem);inset-inline-start:0;z-index:80;width:max-content;min-width:12rem;max-width:min(20rem,calc(100vw - 3rem));padding:.5rem;border-radius:1rem;transform-origin:top left;animation:vis-menu-in 260ms var(--vis-spring) both}
.vis-menu-item{display:flex;gap:.75rem;align-items:center;width:100%;padding:.7rem .75rem;min-height:2.75rem;border:0;border-radius:.6rem;background:transparent;color:var(--vis-ink);font:500 .875rem/1.4 var(--vis-font);text-decoration:none;cursor:pointer;text-align:start;transition:background-color 180ms,transform 220ms}
.vis-menu-item:hover,.vis-menu-item:focus{background:var(--vis-accent-soft);color:var(--vis-accent-ink)}
.vis-menu-item:disabled,.vis-menu-item[aria-disabled=true]{opacity:.4;cursor:not-allowed}
.vis-menu-label{display:block;padding:.5rem .75rem;font-size:.75rem;color:var(--vis-muted)}
.vis-menu-divider{border:0;border-top:1px solid var(--vis-border);margin:.35rem}
.vis-menu-panel[data-vis-state=closing]{animation:vis-menu-out 180ms var(--vis-fluid) both;pointer-events:none}
@keyframes vis-menu-in{from{opacity:0;transform:translateY(-8px) scale(.94)}to{opacity:1;transform:none}}
@keyframes vis-menu-out{to{opacity:0;transform:translateY(-6px) scale(.96)}}
.vis-modal-open{overflow:hidden}
.vis-dialog[open]{animation:vis-panel-in 380ms var(--vis-spring) both}
.vis-dialog[data-vis-state=closing]{animation:vis-menu-out 220ms var(--vis-fluid) both;pointer-events:none}
.vis-dialog::backdrop{animation:vis-backdrop-in 300ms both}
.vis-dialog[data-vis-state=closing]::backdrop{animation:vis-backdrop-out 220ms both}
.vis-drawer{position:fixed;inset-block:1rem;inset-inline-start:auto;inset-inline-end:1rem;margin:0;width:min(24rem,calc(100% - 2rem));height:calc(100dvh - 2rem);max-height:none;border-radius:1.75rem;padding:1.5rem;color:var(--vis-ink);font-family:var(--vis-font);overflow:auto}
.vis-drawer:not([open]){display:none}.vis-drawer[open]{display:flex;flex-direction:column;gap:1.5rem;animation:vis-drawer-in 460ms var(--vis-spring) both}
.vis-drawer::backdrop{background:rgba(6,13,30,.35);backdrop-filter:blur(6px);animation:vis-backdrop-in 300ms both}
.vis-drawer[data-vis-state=closing]{animation:vis-drawer-out 260ms var(--vis-fluid) both;pointer-events:none}
.vis-drawer[data-vis-state=closing]::backdrop{animation:vis-backdrop-out 260ms both}
.vis-drawer-footer{margin-top:auto;padding-top:1rem;border-top:1px solid var(--vis-border)}
@keyframes vis-drawer-in{from{opacity:0;transform:translateX(calc(100% + 1rem)) scale(.97)}to{opacity:1;transform:none}}
@keyframes vis-drawer-out{to{opacity:0;transform:translateX(calc(100% + 1rem)) scale(.97)}}
@keyframes vis-backdrop-in{from{opacity:0}to{opacity:1}}@keyframes vis-backdrop-out{to{opacity:0}}
.vis-grid-12{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--vis-gap,1rem)}
.vis-col-4{grid-column:span 4}.vis-col-6{grid-column:span 6}.vis-col-8{grid-column:span 8}.vis-col-12{grid-column:span 12}
.vis-grid-auto{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,var(--vis-min,14rem)),1fr));gap:var(--vis-gap,1rem)}
.vis-bento{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}.vis-bento-tall{grid-row:span 2;display:flex;flex-direction:column;justify-content:space-between}
.vis-layout{display:grid;grid-template-columns:minmax(8rem,1fr) minmax(0,3fr);gap:1rem}
.vis-grid-cell{display:flex;align-items:center;justify-content:center;min-height:4rem;background:var(--vis-accent-soft);color:var(--vis-accent-ink);border:1px solid var(--vis-border);border-radius:var(--vis-radius-md);font-size:.8125rem;font-weight:500}
.vis-metric{font-size:clamp(2rem,5vw,3.25rem);font-weight:550;letter-spacing:-.06em;line-height:1.2;font-variant-numeric:tabular-nums}
.vis-card-accent{background:var(--vis-brand);color:#101b36;border-color:transparent;--vis-muted:#253958;--vis-ink:#101b36}
.vis-card-link{display:flex;flex-direction:column;gap:1rem;color:inherit;text-decoration:none;transition:transform 420ms var(--vis-spring),box-shadow 300ms}
.vis-card-link .vis-icon{transition:transform 420ms var(--vis-spring)}.vis-card-link:hover .vis-icon{transform:translate(3px,-3px)}.vis-card-link:hover{transform:translateY(-4px);box-shadow:var(--vis-shadow-md)}
.vis-choice{position:relative;display:block;cursor:pointer}.vis-choice input{position:absolute;top:1.25rem;right:1.25rem;accent-color:var(--vis-action);width:1.125rem;height:1.125rem}
.vis-choice .vis-card{display:flex;flex-direction:column;gap:.5rem;padding-right:3rem;transition:background-color 280ms,border-color 280ms,box-shadow 280ms,transform 380ms var(--vis-spring)}
.vis-choice input:checked+.vis-card{background:var(--vis-accent-soft);border-color:var(--vis-action);box-shadow:0 0 0 1px var(--vis-action)}.vis-choice input:focus-visible+.vis-card{outline:3px solid var(--vis-action);outline-offset:4px}
.vis-breadcrumbs{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;list-style:none;padding:0;margin:0;font-size:.875rem;color:var(--vis-muted)}.vis-breadcrumbs a{color:inherit;text-underline-offset:4px}.vis-breadcrumbs [aria-current]{color:var(--vis-ink);font-weight:600}
.vis-pagination{display:flex;flex-wrap:wrap;gap:.4rem}.vis-pagination [aria-current=page]{background:var(--vis-action);color:var(--vis-on-action)}
.vis-navbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.75rem 1rem;border-radius:1.25rem}.vis-navbar-links{display:flex;gap:.5rem}
.vis-range{width:100%;accent-color:var(--vis-action);cursor:pointer;min-height:2rem}
:root{--vis-chart-1:#365dcc;--vis-chart-2:#678fff;--vis-chart-3:#92adf4;--vis-chart-4:#b8cafa;--vis-chart-5:#263f88;--vis-chart-6:#7f8ba6}
@media(prefers-color-scheme:dark){:root:not([data-vis-theme]){--vis-chart-1:#a8bfff;--vis-chart-2:#678fff;--vis-chart-3:#526eb0;--vis-chart-4:#c9d7ff;--vis-chart-5:#899ac3;--vis-chart-6:#bbc3d5}}
[data-vis-theme=dark]{--vis-chart-1:#a8bfff;--vis-chart-2:#678fff;--vis-chart-3:#526eb0;--vis-chart-4:#c9d7ff;--vis-chart-5:#899ac3;--vis-chart-6:#bbc3d5}
.vis-chart{margin:0;min-width:0}.vis-chart-svg{display:block;width:100%;height:auto;min-height:12rem;overflow:visible;margin-top:.75rem}
.vis-chart-axis{font:12px var(--vis-font);fill:var(--vis-muted)}.vis-chart-grid{stroke:var(--vis-border);stroke-width:1}
.vis-chart-bar{transform-box:fill-box;transform-origin:center bottom;animation:vis-bar-grow 650ms var(--vis-fluid) both}
.vis-chart-line{stroke-dasharray:1;stroke-dashoffset:0;animation:vis-line-draw 900ms var(--vis-fluid) both}
.vis-chart-point{animation:vis-backdrop-in 500ms both}.vis-chart-slice,.vis-chart-radar{transform-origin:center;transform-box:fill-box;animation:vis-chart-in 650ms var(--vis-spring) both}
.vis-chart-legend{display:flex;flex-wrap:wrap;gap:.75rem 1rem;padding:0;margin:.5rem 0 1rem;list-style:none;font-size:.8125rem}.vis-chart-legend li{display:flex;align-items:center;gap:.5rem}.vis-chart-dot{width:.65rem;height:.65rem;border-radius:50%;flex:none;border:1px solid var(--vis-control-border)}
.vis-chart-data{margin-top:1rem;font-size:.8125rem;overflow-x:auto}.vis-chart-data summary{cursor:pointer;color:var(--vis-accent-ink);padding:.5rem 0}.vis-chart-data .vis-table{margin-top:.5rem}.vis-chart-data .vis-table :is(th,td){padding:.5rem .75rem}
@keyframes vis-bar-grow{from{transform:scaleY(.02);opacity:.4}to{transform:scaleY(1);opacity:1}}
@keyframes vis-line-draw{from{stroke-dashoffset:1}to{stroke-dashoffset:0}}
@keyframes vis-chart-in{from{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}
.vis-stagger>:nth-child(5){animation-delay:160ms}.vis-stagger>:nth-child(6){animation-delay:200ms}
@media(max-width:40rem){.vis-grid{grid-template-columns:1fr}.vis-container{padding-inline:1rem}.vis-card{padding:1.25rem}.vis-col-4,.vis-col-6,.vis-col-8{grid-column:span 12}.vis-layout{grid-template-columns:1fr}.vis-navbar-links{display:none}}
/* Google branding is deliberately separate from Visucio's Montserrat. */
@font-face{font-family:'Google Sans';src:url('/assets/fonts/google-sans-latin.woff2') format('woff2');font-style:normal;font-weight:500;font-display:swap}
.vis-google-button{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;box-sizing:border-box;padding:10px 12px;border:1px solid #747775;border-radius:999px;background:#fff;color:#1f1f1f;font:500 14px/20px 'Google Sans',Arial,sans-serif;cursor:pointer;text-decoration:none;transition:box-shadow 200ms,background-color 200ms}
.vis-google-button img{display:block;width:18px;height:18px;flex:none;object-fit:contain}.vis-google-button:hover{background:#f8faff;box-shadow:0 1px 4px #1f1f1f20}.vis-google-button:active{background:#edf2fa}
.vis-login-page{margin:0}.vis-login-layout{min-height:100dvh;display:grid;grid-template-columns:1fr 1fr;padding:1rem;gap:1rem;max-width:100rem;margin-inline:auto}
.vis-login-story{display:flex;flex-direction:column;justify-content:space-between;padding:clamp(2rem,5vw,5rem);border-radius:2rem;background:#274878;color:#fff;min-height:42rem}.vis-login-logo{width:158px;height:auto;object-fit:contain}.vis-login-story-copy h1{font-size:clamp(2.75rem,5vw,5.5rem);font-weight:500;line-height:1.05;letter-spacing:-.065em;margin:1.5rem 0}.vis-login-story-copy p{color:#d9e6ff;font-size:1rem;line-height:1.8}.vis-login-eyebrow{font-size:.65rem;letter-spacing:.16em;font-weight:600;color:#c9dcff}.vis-login-story-footer{display:flex;flex-wrap:wrap;justify-content:space-between;gap:1rem;font-size:.7rem;color:#c9dcff;padding-top:2rem}
.vis-login-main{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem;padding:2rem 1.5rem;background:var(--vis-accent-soft);border-radius:2rem;min-width:0}
.vis-login-card{padding:2.5rem;width:min(100%,27rem);border-radius:1.75rem;gap:1.3rem}.vis-login-card .vis-subtitle{font-size:1.65rem;letter-spacing:-.04em;margin-bottom:.5rem}.vis-login-card .vis-muted{font-size:.875rem}.vis-login-brand{margin-bottom:.5rem}.vis-login-brand img{width:120px;height:auto}.vis-logo-dark{display:none}
.vis-login-divider{display:flex;align-items:center;gap:.75rem;color:var(--vis-muted);font-size:.75rem}.vis-login-divider::before,.vis-login-divider::after{content:'';height:1px;flex:1;background:var(--vis-border)}
.vis-password-field{position:relative}.vis-password-field .vis-input{padding-right:3.25rem}.vis-password-field .vis-button{position:absolute;right:3px;top:50%;transform:translateY(-50%);min-height:2.5rem}
.vis-login-text-button{border:0;background:transparent;color:var(--vis-accent-ink);font:500 .75rem var(--vis-font);padding:.4rem 0;cursor:pointer;text-underline-offset:3px}.vis-login-text-button:hover{text-decoration:underline}.vis-login-demo-note{font-size:.7rem;line-height:1.6;text-align:center;color:var(--vis-muted)}
[data-vis-theme=dark] .vis-logo-light{display:none}[data-vis-theme=dark] .vis-logo-dark{display:block}
@media(prefers-color-scheme:dark){:root:not([data-vis-theme]) .vis-logo-light{display:none}:root:not([data-vis-theme]) .vis-logo-dark{display:block}}
@media(max-width:60rem){.vis-login-layout{grid-template-columns:1fr}.vis-login-story{min-height:16rem;padding:2rem}.vis-login-story-copy h1{font-size:2.75rem;margin:1rem 0}.vis-login-story-copy h1 br{display:none}.vis-login-story-copy p,.vis-login-story-footer{display:none}.vis-login-story-copy .vis-login-eyebrow{display:none}.vis-login-main{padding:2rem 1rem}.vis-login-card{padding:1.75rem}.vis-login-story .vis-login-logo{width:110px}}
@media(max-width:30rem){.vis-login-layout{padding:.5rem;gap:.5rem}.vis-login-story{border-radius:1.5rem;min-height:12rem;padding:1.5rem}.vis-login-story-copy h1{font-size:2.15rem}.vis-login-main{border-radius:1.5rem;padding:1.5rem .75rem}.vis-login-card{padding:1.5rem 1.25rem}}
[data-vis-motion=off] *,[data-vis-motion=off] *::before,[data-vis-motion=off] *::after{animation:none!important;transition:none!important}
@media(prefers-reduced-motion:reduce){.vis-ui *,.vis-ui *::before,.vis-ui *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.vis-card-interactive:hover,.vis-button:hover,.vis-button:active{transform:none!important}}
@media(prefers-reduced-transparency:reduce){.vis-glass{background:var(--vis-surface);backdrop-filter:none;-webkit-backdrop-filter:none;border-color:var(--vis-border)}.vis-dialog::backdrop{backdrop-filter:none}}
[data-vis-transparency=off] .vis-glass,[data-vis-transparency=off].vis-glass{background:var(--vis-surface);backdrop-filter:none;-webkit-backdrop-filter:none;border-color:var(--vis-border)}
@media(forced-colors:active){.vis-glass,.vis-card,.vis-button,.vis-tab,.vis-badge,.vis-alert,.vis-switch-track{border:1px solid CanvasText;box-shadow:none;backdrop-filter:none}.vis-tab[aria-selected=true]{outline:2px solid Highlight}.vis-switch input:checked+.vis-switch-track{background:Highlight}.vis-switch-track::after{background:CanvasText}}
@media print{.vis-ui{background:#fff;color:#000}.vis-glass{background:#fff;box-shadow:none;backdrop-filter:none}.vis-toast-region{display:none}}
@media(prefers-reduced-motion:reduce){.vis-dialog::backdrop,.vis-drawer::backdrop{animation:none!important;transition:none!important}}
@media(prefers-reduced-transparency:reduce){.vis-dialog::backdrop,.vis-drawer::backdrop{backdrop-filter:none;-webkit-backdrop-filter:none}}
[data-vis-motion=off] dialog::backdrop,.no-motion dialog::backdrop{animation:none!important;transition:none!important}
[data-vis-transparency=off] dialog::backdrop,dialog[data-vis-transparency=off]::backdrop{backdrop-filter:none;-webkit-backdrop-filter:none}

/* Visucio UI 1.2 — language names stay visible; flags are bundled SVG assets. */
.vis-flag{display:block;inline-size:1.5rem;block-size:1rem;flex:none;object-fit:cover;border-radius:3px;box-shadow:0 0 0 1px rgb(100 110 140 / .18)}
.vis-language-picker{display:inline-block;max-inline-size:100%;text-align:start}
.vis-language-trigger{gap:.6rem;min-block-size:2.75rem;font-size:.875rem;padding-inline:.8rem;white-space:nowrap;font-weight:500}
.vis-language-trigger .vis-language-chevron{inline-size:1rem;block-size:1rem;transition:transform var(--vis-travel) var(--vis-spring)}
.vis-language-trigger[aria-expanded=true] .vis-language-chevron{transform:rotate(180deg)}
.vis-language-panel{inset-inline-start:auto;inset-inline-end:0;min-inline-size:11.5rem;max-inline-size:min(18rem,calc(100vw - 2rem));z-index:90}
.vis-language-option{gap:.75rem;font-size:.875rem;min-block-size:2.75rem}
.vis-language-option[aria-current=true]{background:var(--vis-accent-soft);color:var(--vis-accent-ink);font-weight:600}
.vis-language-option[aria-current=true]::after{content:'✓';margin-inline-start:auto;font-size:1rem}
.vis-login-language{position:absolute;inset-block-start:1.5rem;inset-inline-end:1.5rem;z-index:20}
@media(max-width:600px){.vis-login-language{inset-block-start:1rem;inset-inline-end:1rem}.vis-login-main{padding-block-start:5rem!important}}
@media(prefers-reduced-motion:reduce){.vis-language-trigger .vis-language-chevron{transition:none}}

/* Core compatibility layer follows the canonical library. */
/* Core 1.15.3 · based on the original Visucio UI 1.2.0 at ui.visubay.com.
 * Library stays unmodified in /assets/ui/1.2.0. This is the Core compatibility layer.
 * Keep business components/IDs intact; use the shared tokens for all new work. */
:root {
  --visucio-primary: var(--vis-brand);
  --visucio-primary-strong: var(--vis-action);
  --visucio-primary-soft: var(--vis-accent-soft);
  --visucio-background: var(--vis-bg);
  --visucio-surface: var(--vis-surface);
  --visucio-text: var(--vis-ink);
  --visucio-text-secondary: var(--vis-muted);
  --visucio-border: var(--vis-border);
  --visucio-success: var(--vis-success);
  --visucio-warning: var(--vis-warning);
  --visucio-danger: var(--vis-danger);
  --visucio-font: var(--vis-font);
  --visucio-radius-sm: var(--vis-radius-md);
  --visucio-radius-md: var(--vis-radius-lg);
  --visucio-radius-lg: var(--vis-radius-xl);
  --visucio-shadow-sm: var(--vis-shadow-sm);
  --visucio-shadow-md: var(--vis-shadow-md);
  --vui-bg: var(--vis-bg);
  --vui-surface: var(--vis-glass);
  --vui-surface-solid: var(--vis-surface);
  --vui-ink: var(--vis-ink);
  --vui-muted: var(--vis-muted);
  --vui-faint: var(--vis-muted);
  --vui-line: var(--vis-border);
  --vui-line-soft: var(--vis-border);
  --vui-blue: var(--vis-brand);
  --vui-blue-strong: var(--vis-action);
  --vui-blue-soft: var(--vis-accent-soft);
  --vui-radius-sm: var(--vis-radius-md);
  --vui-radius-md: var(--vis-radius-lg);
  --vui-radius-lg: var(--vis-radius-xl);
  --vui-shadow: var(--vis-shadow-sm);
  --vui-shadow-card: var(--vis-shadow-sm);
  --vui-shadow-float: var(--vis-shadow-md);
  --vui-ease: var(--vis-ease);
  --sidebar: 256px;
  --core-header: 76px;
}
/* Identity from the Visucio Home supplied on 22 September 2026. */
:root[data-vis-theme=light] {
  --vis-bg: #fcfdff;
  --vis-ink: #16213b;
  --vis-muted: #657086;
  --vis-border: #e2e8f3;
  --vis-surface-soft: #f1f5fc;
  --vis-shadow-sm: 0 3px 8px #25345503, 0 12px 36px #25345508;
  --vis-shadow-md: 0 20px 64px -24px #1f438f30;
}
:root { --vis-radius-md: 14px; --vis-radius-lg: 22px; --vis-radius-xl: 28px; }
html { min-width: 320px; background: var(--vis-bg); scroll-behavior: auto; }
body.vis-ui { margin: 0; min-width: 320px; font-size: 14px; line-height: 1.6; overflow-x: clip; }
.vis-ui :is(button,input,select,textarea) { font-family: var(--vis-font); }
.vis-ui :is(h1,h2,h3,h4) { color: var(--vis-ink); line-height: 1.22; letter-spacing: -.035em; }
.vis-ui :is(button,a,input,select,textarea,summary):focus-visible { outline: 3px solid var(--vis-action); outline-offset: 3px; }
.vis-ui [hidden] { display: none !important; }
.vis-ui svg { flex-shrink: 0; }
.vis-ui .vis-icon { width: 20px; height: 20px; }
.vis-ui .eyebrow { color: var(--vis-accent-ink); font-size: 10px; font-weight: 700; letter-spacing: .13em; text-transform: uppercase; }
.vis-ui :is(.page-header,.card-header,.client-section-heading) p { color: var(--vis-muted); }
.skip-link { position: fixed; left: 18px; top: -100px; z-index: 1000; padding: 12px 18px; border-radius: 12px; background: var(--vis-action); color: var(--vis-on-action); text-decoration: none; }
.skip-link:focus { top: 12px; }
body:not(:has(#page)) > .skip-link { display: none; }
.vis-ui .boot-screen img { width: 156px; }

/* Shared controls: square-soft corners, readable borders, no hover jumps. */
.vis-ui .button { min-height: 44px; padding: 11px 18px; border: 1px solid transparent; border-radius: var(--vis-radius-md); background: var(--vis-action); color: var(--vis-on-action); font-size: 13px; font-weight: 600; line-height: 1.3; letter-spacing: -.01em; box-shadow: none; transition: background var(--vis-duration), border-color var(--vis-duration), box-shadow var(--vis-duration); }
.vis-ui .button { display: inline-flex; align-items: center; justify-content: center; gap: 8px; max-width: 100%; }
.vis-ui .button > svg { display: block; flex: 0 0 20px; width: 20px; height: 20px; min-width: 20px; max-width: 20px; max-height: 20px; stroke-width: 1.8; }
.vis-ui .button:hover { background: color-mix(in srgb, var(--vis-action) 88%, var(--vis-ink)); color: var(--vis-on-action); transform: none; box-shadow: var(--vis-shadow-sm); }
.vis-ui .button:active { transform: none; box-shadow: none; }
.vis-ui .button:disabled { opacity: .5; cursor: not-allowed; box-shadow: none; }
.vis-ui .button.secondary { border-color: var(--vis-border); background: var(--vis-surface); color: var(--vis-ink); }
.vis-ui .button.ghost { border-color: transparent; background: transparent; color: var(--vis-accent-ink); }
.vis-ui :is(.button.secondary,.button.ghost):hover { border-color: var(--vis-control-border); background: var(--vis-surface-soft); color: var(--vis-ink); }
.vis-ui .button.danger { color: var(--vis-danger); background: var(--vis-danger-soft); border-color: transparent; }
.vis-ui .button.small { min-height: 36px; padding: 8px 12px; font-size: 12px; }
.vis-ui :is(.icon-button,.logout-button,.client-sidebar-toggle) { color: var(--vis-muted); border-radius: var(--vis-radius-md); background: transparent; }
.vis-ui :is(.icon-button,.logout-button) { min-width: 40px; min-height: 40px; display: inline-flex; align-items: center; justify-content: center; }
.vis-ui :is(.icon-button,.logout-button,.client-sidebar-toggle):hover { background: var(--vis-surface-soft); color: var(--vis-ink); transform: none; }
.vis-ui :is(.icon-button,.logout-button) svg { width: 19px; height: 19px; }
.vis-ui .icon-button.menu-toggle,.vis-ui .icon-button.client-mobile-menu { display: none; }
.vis-ui .text-button { color: var(--vis-accent-ink); font-size: 13px; font-weight: 600; text-underline-offset: 4px; }
.vis-ui .field { gap: 7px; }
.vis-ui .field label { font-size: 12px; font-weight: 600; color: var(--vis-ink); }
.vis-ui :is(.field input,.field select,.field textarea,.search-input) { min-height: 46px; padding: 12px 14px; border: 1px solid var(--vis-control-border); border-radius: var(--vis-radius-md); background: var(--vis-surface); color: var(--vis-ink); box-shadow: none; font-size: 14px; transition: border-color var(--vis-fast), box-shadow var(--vis-fast); }
.vis-ui .field input[type=file] { max-width: 100%; }
.vis-ui .field input[type=checkbox],.vis-ui .field input[type=radio] { min-height: auto; padding: 0; }
.vis-ui :is(.field input,.field select,.field textarea,.search-input):focus { border-color: var(--vis-action); box-shadow: 0 0 0 3px var(--vis-accent-soft); }
.vis-ui :is(input,textarea)::placeholder { color: var(--vis-muted); opacity: .85; }
.vis-ui :is(.field input,.field select,.field textarea):disabled { background: var(--vis-surface-soft); color: var(--vis-muted); }
.vis-ui :is(input[type=checkbox],input[type=radio]) { accent-color: var(--vis-action); }
.vis-ui .field small { color: var(--vis-muted); font-size: 11px; }
.vis-ui :is(.card,.table-card,.metric-card,.entity-card,.notification-card) { border: 1px solid var(--vis-border); border-radius: var(--vis-radius-lg); background: var(--vis-surface); box-shadow: var(--vis-shadow-sm); color: var(--vis-ink); }
.vis-ui :is(.card,.metric-card,.entity-card):hover { border-color: var(--vis-border); box-shadow: var(--vis-shadow-sm); transform: none; }
.vis-ui .card { padding: 24px; }
.vis-ui .card-header { margin-bottom: 20px; }
.vis-ui .card-header h2 { font-size: 17px; font-weight: 600; }
.vis-ui :is(.card-header p,.entity-card p) { font-size: 12px; color: var(--vis-muted); }
.vis-ui .card-header p { margin-top: 5px; }

/* Login, registration, recovery and invitation share one real component family. */
.vis-ui .login-shell { display: grid; height: 100vh; height: 100dvh; min-height: 0; padding: 16px; gap: 16px; grid-template-columns: minmax(0,1.08fr) minmax(0,1fr); grid-template-rows: minmax(0,1fr); align-items: stretch; justify-items: stretch; background: var(--vis-bg); }
.vis-ui .login-brand { display: flex; min-width: 0; min-height: 0; height: 100%; border-radius: 28px; padding: clamp(28px,4vw,64px); background: #142943; justify-content: space-between; isolation: isolate; box-shadow: none; }
.vis-ui .login-brand::after { display: none; }
.vis-ui .login-brand .brand-logo { width: 146px; height: auto; flex-shrink: 0; }
.vis-ui .auth-brand-media { position: absolute; inset: 0; z-index: -1; overflow: hidden; border-radius: inherit; pointer-events: none; container-type: size; }
.vis-ui .auth-brand-poster { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.vis-ui .auth-video-host { position: absolute; inset: 0; opacity: 0; transition: opacity 900ms ease; }
.vis-ui .auth-video-playing .auth-video-host { opacity: 1; }
/* Crop the 16:9 player to the panel, including very tall windows. */
.vis-ui .auth-video-host iframe { display: block; position: absolute; top: 50%; left: 50%; width: max(100cqw,177.778cqh); height: max(100cqh,56.25cqw); max-width: none; border: 0; transform: translate(-50%,-50%); }
.vis-ui .auth-brand-shade { position: absolute; inset: 0; background: linear-gradient(90deg,rgba(8,22,43,.76),rgba(13,33,58,.50)),linear-gradient(0deg,rgba(8,22,43,.68),transparent 70%); }
.vis-ui .login-copy { margin-block: 28px; max-width: 610px; }
.vis-ui .login-copy .eyebrow { color: #d6e4ff; margin-bottom: 22px; font-weight: 550; font-size: 10px; }
.vis-ui .login-copy h1 { margin: 0; max-width: 12ch; color: #fff; font-size: clamp(36px,min(4.4vw,8dvh),68px); font-weight: 500; line-height: 1.07; letter-spacing: -.06em; text-wrap: balance; }
.vis-ui .login-copy > p:not(.eyebrow) { margin-top: 24px; color: #e2eaf5; font-size: clamp(13px,1.05vw,15px); max-width: 42ch; line-height: 1.75; }
.vis-ui .login-points { gap: 7px; margin-top: 28px; }
.vis-ui .login-points span { display: inline-flex; align-items: center; gap: 6px; border: 1px solid rgba(255,255,255,.26); border-radius: 10px; background: rgba(255,255,255,.08); color: #f1f5ff; padding: 7px 9px; font-size: 10px; backdrop-filter: blur(10px); }
.vis-ui .login-points svg { width: 14px; height: 14px; }
.auth-brand-footer { position: relative; z-index: 1; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; color: #e2eaf5; font-size: 10px; }
.auth-brand-signature { display: inline-flex; align-items: center; gap: 8px; }
.auth-brand-signature svg { width: 16px; height: 16px; }
.vis-ui .auth-video-toggle { flex-shrink: 0; padding: 9px 12px; min-height: 36px; border: 1px solid rgba(255,255,255,.3); border-radius: 10px; background: rgba(255,255,255,.08); color: #fff; font-size: 10px; font-weight: 500; backdrop-filter: blur(12px); }
.vis-ui .auth-video-toggle:hover { background: rgba(255,255,255,.17); }
.vis-ui .login-brand :focus-visible { outline-color: #fff; }
.vis-ui .login-panel { width: 100%; min-width: 0; min-height: 0; height: 100%; margin: 0; padding: clamp(16px,3dvh,40px) clamp(18px,3vw,48px); display: flex; flex-direction: column; align-items: center; justify-content: flex-start; border: 1px solid var(--vis-border); border-radius: 28px; background: radial-gradient(ellipse at 60% 5%,var(--vis-accent-soft),transparent 76%),var(--vis-bg); box-shadow: none; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: var(--vis-border) transparent; }
.vis-ui :is(.login-form,.register-form) { flex: 0 0 auto; width: min(100%,440px); margin-block: auto; padding: clamp(20px,3.5dvh,36px) clamp(22px,3vw,36px); border: 1px solid var(--vis-glass-edge); border-radius: 24px; background: var(--vis-glass); box-shadow: var(--vis-shadow-md); backdrop-filter: blur(var(--vis-blur)); }
.vis-ui .login-form > .eyebrow { display: flex; align-items: center; gap: 7px; margin-bottom: 12px; }
.vis-ui .login-form > .eyebrow svg { width: 14px; height: 14px; }
.vis-ui .login-form .mobile-logo { display: none; }
.vis-ui .login-form h2 { margin: 0; font-size: clamp(25px,2.35vw,34px); font-weight: 550; line-height: 1.16; letter-spacing: -.055em; }
.vis-ui .login-form > p:not(.eyebrow) { margin: 10px 0 22px; color: var(--vis-muted); font-size: 12px; line-height: 1.6; }
.vis-ui .login-form .field { margin-bottom: 14px; gap: 6px; }
.vis-ui .login-form .full { width: 100%; min-height: 46px; }
.vis-ui #create-account { margin: 10px 0 0; min-height: 40px; }
.vis-ui #forgot-password { width: 100%; min-height: 36px; padding: 6px 0; margin-top: 2px; color: var(--vis-accent-ink); }
.vis-ui .auth-theme-toggle { position: fixed; top: 28px; right: 28px; width: 38px; height: 38px; min-height: 38px; border: 1px solid var(--vis-border); border-radius: 12px; background: var(--vis-glass); color: var(--vis-ink); backdrop-filter: blur(16px); z-index: 12; }
.vis-ui .auth-divider { display: flex; align-items: center; gap: 12px; margin: 14px 0; color: var(--vis-muted); font-size: 11px; }
.vis-ui .auth-divider::before,.vis-ui .auth-divider::after { content: ''; height: 1px; flex: 1; background: var(--vis-border); }
.vis-ui .google-button,.vis-ui .google-button:hover,.vis-ui .google-button:active,.vis-ui .google-button:focus-visible { background: #fff; border: 1px solid #747775; color: #202124 !important; font-family: 'Google Sans',var(--vis-font); }
.vis-ui .google-button:hover { background: #f2f4f7; }
.vis-ui .google-button > span { color: inherit; opacity: 1; visibility: visible; -webkit-text-fill-color: currentColor; }
.vis-ui .google-mark { width: 18px; height: 18px; object-fit: contain; }
.vis-ui .login-back { margin-top: 20px; color: var(--vis-accent-ink); font-size: 13px; }
.vis-ui .login-status { color: var(--vis-danger); font-size: 12px; line-height: 1.5; }
.vis-ui .login-status:empty { margin: 0; min-height: 0; }
.vis-ui .register-progress { gap: 6px; margin-block: 24px; }
.vis-ui .register-progress span { background: var(--vis-surface-soft); color: var(--vis-muted); border-radius: 8px; }
.vis-ui .register-progress span.active { background: var(--vis-accent-soft); color: var(--vis-accent-ink); }
.vis-ui .register-actions { gap: 10px; }
.vis-ui .register-actions .button { min-width: 0; }
.vis-ui .registration-legal { border-color: var(--vis-border); background: var(--vis-accent-soft); }
.vis-ui .legal-consent-row { font-size: 12px; gap: 7px; line-height: 1.65; }
.vis-ui .legal-consent-row input { width: 18px; height: 18px; flex-shrink: 0; }
.vis-ui .legal-text-link { color: var(--vis-accent-ink); }
.vis-ui :is(.captcha-slot,.safe-note,.profile-edit-notice,.update-review) { border: 1px solid var(--vis-border); border-radius: 12px; background: var(--vis-surface-soft); color: var(--vis-muted); }

/* Application chrome: stable widths and flat navigation for the existing marker. */
.vis-ui .app-shell { background: var(--vis-bg); }
.vis-ui .sidebar { inset: 0 auto 0 0; width: var(--sidebar); padding: 24px 14px 16px; background: var(--vis-glass); border: 0; border-right: 1px solid var(--vis-border); border-radius: 0; box-shadow: none; backdrop-filter: blur(var(--vis-blur)); }
.vis-ui .sidebar-logo { padding: 0 16px; height: 48px; margin-bottom: 16px; }
.vis-ui .sidebar-logo img { width: 138px; }
.vis-ui .unit-card { margin: 0 4px 16px; padding: 12px; gap: 10px; background: var(--vis-surface); border: 1px solid var(--vis-border); border-radius: 12px; }
.vis-ui .unit-card > div:last-child { min-width: 0; }
.vis-ui .unit-avatar { color: var(--vis-accent-ink); background: var(--vis-accent-soft); font-weight: 600; }
.vis-ui .unit-card strong { color: var(--vis-ink); font-size: 11px; }
.vis-ui .unit-card span { color: var(--vis-muted); font-size: 10px; }
.vis-ui .sidebar .nav { position: relative; isolation: isolate; display: flex; flex-direction: column; align-items: stretch; gap: 4px; min-height: 0; overflow-x: hidden; padding: 0 3px 18px; scrollbar-width: thin; scrollbar-color: var(--vis-border) transparent; }
.vis-ui .nav-group-title { margin: 20px 10px 5px; color: var(--vis-muted); font-size: 9px; font-weight: 600; text-transform: uppercase; letter-spacing: .12em; white-space: nowrap; }
.vis-ui .nav-group-title:first-of-type { margin-top: 6px; }
.vis-ui .sidebar .nav-button { position: relative; z-index: 1; flex: 0 0 auto; min-height: 42px; width: 100%; padding: 9px 11px; display: flex; gap: 11px; border: 0; border-radius: 10px; background: transparent; color: var(--vis-muted); font-size: 11px; font-weight: 500; line-height: 1.4; text-align: left; }
.vis-ui .sidebar .nav-button svg { width: 19px; height: 19px; flex: 0 0 19px; }
.vis-ui .sidebar .nav-button span { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.vis-ui .sidebar .nav-button:hover { color: var(--vis-ink); background: var(--vis-surface-soft); }
.vis-ui .sidebar .nav-button.active { color: var(--vis-accent-ink); background: var(--vis-accent-soft); font-weight: 650; }
.vis-ui .sidebar-nav-indicator { position: absolute; z-index: 0; left: 0; top: 0; opacity: 0; pointer-events: none; border: 1px solid color-mix(in srgb,var(--vis-action) 14%,transparent); border-radius: 10px; background: var(--vis-accent-soft); }
.vis-ui .sidebar .nav.is-indicator-ready .sidebar-nav-indicator { opacity: 1; transition: transform var(--vis-slow) var(--vis-ease),width var(--vis-slow) var(--vis-ease),height var(--vis-slow) var(--vis-ease); }
.vis-ui .sidebar .nav.is-indicator-ready .nav-button.active { background: transparent; }
.vis-ui .sidebar-footer { margin-top: auto; padding-top: 14px; border-top: 1px solid var(--vis-border); }
.vis-ui .profile-compact { padding: 4px; gap: 9px; }
.vis-ui .profile-compact > div:nth-child(2) { min-width: 0; }
.vis-ui .profile-compact strong { color: var(--vis-ink); max-width: 116px; font-size: 11px; font-weight: 600; }
.vis-ui .profile-compact span { color: var(--vis-muted); max-width: 116px; font-size: 9px; }
.vis-ui :is(.avatar,.client-avatar,.profile-large-avatar) { background: var(--vis-accent-soft); color: var(--vis-accent-ink); border: 1px solid var(--vis-border); font-weight: 600; }
.vis-ui .main { margin-left: var(--sidebar); background: var(--vis-bg); }
.vis-ui .topbar { height: var(--core-header); padding: 16px 32px; border-bottom: 1px solid var(--vis-border); background: var(--vis-glass); backdrop-filter: blur(var(--vis-blur)); }
.vis-ui .breadcrumbs { color: var(--vis-muted); font-size: 11px; letter-spacing: 0; }
.vis-ui .breadcrumbs strong { color: var(--vis-ink); font-weight: 600; }
.vis-ui .top-actions { gap: 12px; }
.vis-ui .page { max-width: 1520px; width: 100%; margin: 0 auto; padding: 32px 32px 48px; }
.vis-ui .page-header { margin-bottom: 28px; align-items: flex-end; gap: 20px; }
.vis-ui .page-header > .page-actions { flex-shrink: 0; display: flex; flex-wrap: wrap; gap: 10px; max-width: 100%; }
.vis-ui .page-header h1 { font-size: clamp(26px,2.6vw,38px); font-weight: 600; letter-spacing: -.05em; }
.vis-ui .page-header > div > p:last-child { margin-top: 10px; max-width: 68ch; font-size: 12px; }
.vis-ui .page-actions { flex-shrink: 0; }
.vis-ui .client-shell { --client-sidebar-collapsed: 76px; --client-sidebar-expanded: 256px; padding-top: var(--core-header); }
.vis-ui .client-header { top: 0; left: 0; right: 0; min-height: var(--core-header); padding: 12px 26px; display: flex; justify-content: space-between; gap: 20px; border: 0; border-bottom: 1px solid var(--vis-border); border-radius: 0; background: var(--vis-glass); box-shadow: none; backdrop-filter: blur(var(--vis-blur)); }
.vis-ui .client-brand img { width: 134px; max-width: 134px; height: auto; }
.vis-ui .client-top-nav { position: relative; isolation: isolate; display: flex; min-width: 0; padding: 4px; gap: 3px; border: 1px solid var(--vis-border); border-radius: 12px; background: var(--vis-surface-soft); }
.vis-ui .client-top-nav button { position: relative; z-index: 1; min-height: 34px; padding: 7px 12px; display: flex; align-items: center; gap: 7px; border-radius: 8px; background: transparent; color: var(--vis-muted); white-space: nowrap; font-size: 10px; font-weight: 600; }
.vis-ui .client-top-nav button:hover { color: var(--vis-ink); background: var(--vis-surface); transform: none; }
.vis-ui .client-top-nav button.active { color: var(--vis-accent-ink); background: var(--vis-surface); box-shadow: none; }
.vis-ui .client-top-nav-indicator { position: absolute; top: 4px; bottom: 4px; left: 0; z-index: 0; border-radius: 8px; background: var(--vis-surface); box-shadow: var(--vis-shadow-sm); opacity: 0; pointer-events: none; }
.vis-ui .client-top-nav.is-indicator-ready .client-top-nav-indicator { opacity: 1; transition: transform var(--vis-slow) var(--vis-ease),width var(--vis-slow) var(--vis-ease),height var(--vis-slow) var(--vis-ease); }
.vis-ui .client-top-nav.is-indicator-ready button.active { background: transparent; }
.vis-ui .client-header-actions { flex-shrink: 0; gap: 8px; }
.vis-ui .client-header .client-avatar { width: 40px; height: 40px; border-radius: 12px; color: var(--vis-accent-ink); background: var(--vis-accent-soft); }
.vis-ui .client-sidebar { inset: var(--core-header) auto 0 0; width: var(--client-sidebar-collapsed); height: calc(100dvh - var(--core-header)); max-height: none; padding: 14px 10px; }
.vis-ui .client-sidebar-expanded .client-sidebar { width: var(--client-sidebar-expanded); }
.vis-ui .client-sidebar-toggle { min-height: 40px; padding: 9px 12px; margin-bottom: 14px; border-radius: 10px; font-size: 11px; color: var(--vis-muted); }
.vis-ui .client-sidebar-toggle svg { width: 18px; flex-basis: 18px; }
.vis-ui .client-sidebar .nav-button { padding-inline: 12px; }
.vis-ui .client-sidebar .nav-group-title { margin-top: 18px; }
.vis-ui .client-sidebar-collapsed .nav-group-title { font-size: 0; margin: 10px 9px 4px; height: 1px; background: var(--vis-border); }
.vis-ui .client-sidebar-collapsed .nav-group-title:first-of-type { display: none; }
.vis-ui .client-sidebar-collapsed .nav-button { justify-content: flex-start; }
.vis-ui .client-sidebar .profile-compact { padding: 5px 7px; }
.vis-ui .client-sidebar .avatar { width: 34px; height: 34px; }
.vis-ui .client-main { min-height: calc(100dvh - var(--core-header)); margin-left: var(--client-sidebar-collapsed); }
.vis-ui .client-sidebar-expanded .client-main { margin-left: var(--client-sidebar-expanded); }
.vis-ui .client-main .page { padding-top: 30px; }

/* Dashboards: actual metrics, product-specific icons and a clear reading order. */
.vis-ui .metrics { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; margin-bottom: 24px; }
.vis-ui .metric-card { padding: 22px; min-height: 140px; }
.vis-ui .metric-top { margin-bottom: 18px; align-items: flex-start; }
.vis-ui .metric-top small { font-size: 11px; color: var(--vis-muted); font-weight: 500; }
.vis-ui .metric-icon { width: 34px; height: 34px; color: var(--vis-accent-ink); background: var(--vis-accent-soft); border-radius: 10px; }
.vis-ui .metric-icon svg { width: 17px; height: 17px; }
.vis-ui .metric-card > strong { font-size: 32px; font-weight: 600; color: var(--vis-ink); letter-spacing: -.05em; line-height: 1; font-variant-numeric: tabular-nums; }
.vis-ui .dashboard-grid { grid-template-columns: minmax(0,1.5fr) minmax(0,1fr); gap: 24px; }
.vis-ui .activity-item { padding-block: 15px; border-bottom-color: var(--vis-border); }
.vis-ui .activity-item strong { color: var(--vis-ink); font-size: 12px; font-weight: 600; }
.vis-ui .activity-item span,.vis-ui .activity-item time { color: var(--vis-muted); font-size: 10px; }
.vis-ui .activity-dot { background: var(--vis-surface-soft); color: var(--vis-muted); }
.vis-ui .quick-actions { gap: 12px; }
.vis-ui .quick-action { min-height: 112px; padding: 16px; border: 1px solid var(--vis-border); border-radius: 12px; background: var(--vis-surface); color: var(--vis-ink); text-align: left; }
.vis-ui .quick-action:hover { transform: none; border-color: var(--vis-action); background: var(--vis-accent-soft); box-shadow: none; }
.vis-ui .quick-action > svg { color: var(--vis-accent-ink); width: 21px; height: 21px; margin-bottom: 10px; }
.vis-ui .quick-action strong { color: var(--vis-ink); font-size: 12px; }
.vis-ui .quick-action span { color: var(--vis-muted); font-size: 10px; }
.vis-ui .client-overview-grid { grid-template-columns: minmax(0,1.2fr) minmax(0,1fr); gap: 22px; margin-bottom: 32px; }
.vis-ui .client-intro-stack { gap: 16px; grid-template-rows: auto auto; }
.vis-ui .client-welcome { min-height: 180px; border: 1px solid var(--vis-border); border-radius: 20px; padding: 28px; background: var(--vis-accent-soft); color: var(--vis-ink); }
.vis-ui .client-welcome h1 { margin-top: 12px; font-size: clamp(26px,2.8vw,38px); font-weight: 500; line-height: 1.18; color: var(--vis-ink); }
.vis-ui .client-welcome > div > p:last-child { margin-top: 14px; max-width: 43ch; font-size: 12px; color: var(--vis-muted); }
.vis-ui .client-advisor-card { padding: 18px 22px; border: 1px solid var(--vis-border); border-radius: 16px; background: var(--vis-surface); }
.vis-ui .client-advisor { gap: 12px; }
.vis-ui .client-advisor strong { color: var(--vis-ink); font-size: 13px; }
.vis-ui .client-advisor :is(small,span) { color: var(--vis-muted); }
.vis-ui .client-advisor-avatar { width: 40px; height: 40px; border-radius: 12px; color: var(--vis-accent-ink); background: var(--vis-accent-soft); }
.vis-ui .client-whatsapp { background: var(--vis-success-soft); color: var(--vis-success); border-radius: 12px; }
.vis-ui .client-notification-center { min-width: 0; padding: 24px; border: 1px solid var(--vis-border); border-radius: 20px; background: var(--vis-surface); }
.vis-ui .client-section-heading { align-items: flex-start; gap: 16px; margin-bottom: 20px; }
.vis-ui .client-section-heading h2 { font-size: 20px; font-weight: 600; margin-top: 4px; }
.vis-ui .client-section-heading p:last-child { margin-top: 8px; font-size: 12px; }
.vis-ui .client-notification-item { border-color: var(--vis-border); background: var(--vis-surface); border-radius: 12px; }
.vis-ui .client-notification-item strong { color: var(--vis-ink); }
.vis-ui .client-notification-item :is(p,time) { color: var(--vis-muted); }
.vis-ui .client-products { padding: 0; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
.vis-ui .client-product-grid { grid-template-columns: repeat(3,minmax(0,1fr)); gap: 16px; }
.vis-ui .client-products .client-product-card { position: relative; display: flex; flex-direction: column; align-items: flex-start; gap: 20px; padding: 24px; min-height: 234px; border: 1px solid var(--vis-border); border-radius: 18px; background: var(--vis-surface); color: var(--vis-ink); box-shadow: var(--vis-shadow-sm); text-align: left; transition: border-color var(--vis-duration),box-shadow var(--vis-duration); }
.vis-ui .client-products .client-product-card > div:last-child { display: flex; flex-direction: column; align-items: flex-start; flex: 1; width: 100%; }
.vis-ui .client-products .client-product-card:hover { transform: none; border-color: var(--vis-action); background: var(--vis-surface); box-shadow: var(--vis-shadow-md); }
.vis-ui .client-products .client-product-card small { color: var(--vis-muted); font-size: 9px; letter-spacing: .08em; }
.vis-ui .client-products .client-product-card h3 { margin: 7px 0 10px; color: var(--vis-ink); font-size: 16px; font-weight: 600; }
.vis-ui .client-products .client-product-card p { color: var(--vis-muted); font-size: 11px; line-height: 1.65; margin-bottom: 22px; }
.vis-ui .client-products .client-product-card strong { width: 100%; margin-top: auto; padding-top: 14px; display: flex; align-items: center; justify-content: space-between; border-top: 1px solid var(--vis-border); color: var(--vis-accent-ink); font-size: 11px; font-weight: 600; }
.vis-ui .client-product-icon { width: 42px; height: 42px; border-radius: 12px; color: var(--vis-accent-ink); background: var(--vis-accent-soft); }
.vis-ui .client-product-icon svg { width: 23px; height: 23px; }
.vis-ui .client-product-card:hover .client-product-icon { background: var(--vis-accent-soft); color: var(--vis-accent-ink); transform: none; }
.vis-ui .client-products .client-product-card.is-visuai { background: var(--vis-accent-soft); border-color: color-mix(in srgb,var(--vis-action) 25%,var(--vis-border)); }
.vis-ui .client-product-card.is-visuai::after { display: none; }
.vis-ui .visuai-star { display: block; width: 20px; height: 20px; }
.vis-ui :is(.client-top-nav,.sidebar) .is-visuai .visuai-star { color: var(--vis-accent-ink); }
.vis-ui .visuai-fab { position: fixed; right: 28px; bottom: 24px; z-index: 30; display: grid; place-items: center; width: 48px; height: 48px; padding: 13px; border: 1px solid var(--vis-glass-edge); border-radius: 15px; background: var(--vis-action); color: var(--vis-on-action); box-shadow: var(--vis-shadow-md); cursor: pointer; }
.vis-ui .visuai-fab svg { width: 23px; height: 23px; }
.vis-ui .visuai-fab:hover { transform: none; box-shadow: var(--vis-shadow-lg); }
html.drawer-open .visuai-fab { visibility: hidden; }

/* Management, documents, account, legal and integration screens. */
.vis-ui .table-card { overflow: hidden; }
.vis-ui .table-toolbar { padding: 20px; background: var(--vis-surface); border-bottom: 1px solid var(--vis-border); }
.vis-ui .table-scroll { overflow: auto; overscroll-behavior-x: contain; }
.vis-ui .data-table { font-size: 12px; }
.vis-ui .data-table th { padding: 14px 20px; color: var(--vis-muted); background: var(--vis-surface-soft); border-bottom: 1px solid var(--vis-border); font-weight: 600; font-size: 10px; text-transform: uppercase; letter-spacing: .06em; }
.vis-ui .data-table td { padding: 16px 20px; color: var(--vis-ink); border-bottom: 1px solid var(--vis-border); }
.vis-ui .data-table tr:hover td { background: color-mix(in srgb,var(--vis-accent-soft) 35%,var(--vis-surface)); }
.vis-ui .data-table td :is(small,span.muted) { color: var(--vis-muted); }
.vis-ui .badge { color: var(--vis-accent-ink); background: var(--vis-accent-soft); border: 1px solid transparent; border-radius: 7px; font-size: 10px; font-weight: 600; }
.vis-ui :is(.badge.success,.badge.active) { color: var(--vis-success); background: var(--vis-success-soft); }
.vis-ui :is(.badge.warning,.badge.pending) { color: var(--vis-warning); background: var(--vis-warning-soft); }
.vis-ui :is(.badge.danger,.badge.blocked,.badge.error) { color: var(--vis-danger); background: var(--vis-danger-soft); }
.vis-ui .empty-state { padding: 34px 22px; color: var(--vis-muted); }
.vis-ui .empty-state h3 { font-size: 16px; font-weight: 600; margin-top: 16px; }
.vis-ui .empty-state p { font-size: 12px; max-width: 42ch; margin: 10px auto 0; }
.vis-ui .empty-icon { border: 1px solid var(--vis-border); border-radius: 15px; background: var(--vis-surface-soft); color: var(--vis-muted); }
.vis-ui .modal-backdrop { background: rgba(10,20,38,.5); padding: 24px; backdrop-filter: blur(4px); }
.vis-ui .modal { border: 1px solid var(--vis-border); border-radius: 22px; background: var(--vis-surface); box-shadow: var(--vis-shadow-lg); max-height: calc(100dvh - 48px); overflow: auto; }
.vis-ui :is(.modal-header,.modal-body,.modal-footer) { padding: 24px; }
.vis-ui :is(.modal-header,.modal-footer) { border-color: var(--vis-border); background: var(--vis-surface); }
.vis-ui .modal-header h2 { font-size: 22px; }
.vis-ui .modal-header p { color: var(--vis-muted); font-size: 12px; margin-top: 7px; }
.vis-ui .modal-close { color: var(--vis-muted); background: var(--vis-surface-soft); border-radius: 10px; }
.vis-ui .modal-close:hover { color: var(--vis-ink); background: var(--vis-accent-soft); }
.vis-ui .toast { border: 1px solid var(--vis-border); border-left: 3px solid var(--vis-success); border-radius: 14px; background: var(--vis-surface); color: var(--vis-ink); box-shadow: var(--vis-shadow-md); }
.vis-ui .toast.error { border-left-color: var(--vis-danger); }
.vis-ui .toast span { color: var(--vis-muted); }
.vis-ui :is(.profile-summary,.client-profile-form,.profile-section,.plugin-settings-card,.ai-plugin-option,.upload-zone) { border-color: var(--vis-border); border-radius: 16px; background: var(--vis-surface); color: var(--vis-ink); }
.vis-ui .client-profile-form .profile-save-bar,.vis-ui .legal-publish-bar { border-color: var(--vis-border); background: var(--vis-glass); color: var(--vis-ink); backdrop-filter: blur(var(--vis-blur)); box-shadow: var(--vis-shadow-sm); }
.vis-ui :is(.profile-save-bar,.legal-publish-bar) :is(strong,p,span) { color: inherit; }
.vis-ui :is(.profile-info-item,.profile-detail,.settings-note,.update-summary) { border-color: var(--vis-border); background: var(--vis-surface-soft); }
.vis-ui .plugin-card-icon { color: var(--vis-accent-ink); background: var(--vis-accent-soft); border-radius: 12px; }
.vis-ui .legal-document-content { line-height: 1.8; font-size: 13px; }
.vis-ui .legal-publish-bar { bottom: 16px; }
.vis-ui .skeleton { background: linear-gradient(90deg,var(--vis-surface-soft) 25%,var(--vis-surface) 50%,var(--vis-surface-soft) 75%); background-size: 200% 100%; }
.vis-ui :is(.asset-access-hero,.asset-confirmation,.asset-redirect-card,.asset-questionnaire-intro,.asset-questionnaire-step,.asset-question-card,.asset-option > span,.asset-question-actions,.client-asset-access,.client-asset-answers dl div) { border-color: var(--vis-border); background: var(--vis-surface); color: var(--vis-ink); }
.vis-ui :is(.asset-access-mark,.asset-confirmation-icon,.asset-option > span i) { background: var(--vis-accent-soft); color: var(--vis-accent-ink); }
.vis-ui :is(.asset-security-note,.asset-questionnaire-steps li) { border-color: var(--vis-border); background: var(--vis-surface-soft); color: var(--vis-muted); }
.vis-ui .asset-questionnaire-steps li.active,.vis-ui .asset-option input:checked + span { border-color: var(--vis-action); background: var(--vis-accent-soft); color: var(--vis-accent-ink); }
.vis-ui .asset-access-toggle > span { background: var(--vis-surface-soft); border-color: var(--vis-control-border); }
.vis-ui .asset-access-toggle input:checked + span { background: var(--vis-action); }

/* Public partner pages: compact co-branding and consistent form/product surfaces. */
.vis-ui .partner-form-shell { background: var(--vis-bg); }
.vis-ui .partner-form-shell .public-form-panel { width: min(940px,100%); margin: 0 auto; padding: 52px 28px; overflow: visible; }
.vis-ui .partner-form-shell .public-long-form { width: 100%; padding: 36px; border: 1px solid var(--vis-border); border-radius: 24px; background: var(--vis-surface); box-shadow: var(--vis-shadow-sm); }
.vis-ui .partner-form-header { margin-bottom: 28px; padding-bottom: 28px; border-bottom: 1px solid var(--vis-border); }
.vis-ui .partner-form-logo { width: 136px; max-width: 136px; height: auto; max-height: 38px; margin-bottom: 26px; object-fit: contain; }
.vis-ui .partner-form-header h2 { margin: 12px 0; font-size: 34px; font-weight: 500; }
.vis-ui .partner-form-header p { color: var(--vis-muted); font-size: 13px; }
.vis-ui .public-choice-group { padding: 20px; border-color: var(--vis-border); border-radius: 14px; background: var(--vis-surface); }
.vis-ui .public-choice-group legend { color: var(--vis-ink); font-size: 13px; font-weight: 600; }
.vis-ui :is(.certification-options,.product-options) label { border-color: var(--vis-border); background: var(--vis-surface-soft); color: var(--vis-ink); font-size: 12px; border-radius: 10px; }
.vis-ui :is(.certification-options,.product-options) label:has(input:checked) { border-color: var(--vis-action); background: var(--vis-accent-soft); }
.vis-ui .partner-public-shell { background: var(--vis-bg); color: var(--vis-ink); }
.vis-ui .partner-public-header { background: var(--vis-glass); border-color: var(--vis-border); backdrop-filter: blur(var(--vis-blur)); }
.vis-ui .partner-public-brands { min-width: 0; }
.vis-ui .partner-public-brands img { max-width: 146px; max-height: 42px; width: auto; object-fit: contain; }
.vis-ui .partner-public-hero { padding-block: 70px; gap: 48px; }
.vis-ui .partner-public-hero h1 { font-size: clamp(32px,4.4vw,62px); font-weight: 500; line-height: 1.1; letter-spacing: -.05em; }
.vis-ui .partner-public-hero :is(p,small) { color: var(--vis-muted); }
.vis-ui .partner-public-hero aside { border: 1px solid var(--vis-border); border-radius: 24px; background: var(--vis-accent-soft); color: var(--vis-ink); box-shadow: none; }
.vis-ui .partner-public-orbit { background: var(--vis-surface); color: var(--vis-accent-ink); box-shadow: var(--vis-shadow-sm); }
.vis-ui .partner-public-hero aside span { color: var(--vis-muted); }
.vis-ui .partner-product-grid article { padding: 26px; border: 1px solid var(--vis-border); border-radius: 18px; background: var(--vis-surface); box-shadow: var(--vis-shadow-sm); }
.vis-ui .partner-product-grid article h3 { font-size: 19px; font-weight: 600; }
.vis-ui :is(.partner-product-grid article p,.partner-section-heading p) { color: var(--vis-muted); }
.vis-ui .partner-product-icon { background: var(--vis-accent-soft); color: var(--vis-accent-ink); border-radius: 12px; }
.vis-ui .partner-public-cta { background: var(--vis-accent-soft); color: var(--vis-ink); border: 1px solid var(--vis-border); border-radius: 24px; }
.vis-ui .partner-public-cta p { color: var(--vis-muted); }
.vis-ui .partner-public-footer { border-color: var(--vis-border); color: var(--vis-muted); }

/* Only the Visucio mark changes with theme; uploaded partner/app logos stay intact. */
html[data-theme="dark"] :is(.sidebar-logo img,.client-brand img,.mobile-logo,.boot-screen img,.partner-form-logo,.partner-public-brands img[src="/assets/logo-visucio.png"]) { content: url('/assets/logo-visucio-white.png'); }

/* Mobile: fixed navigation is contained; the drawer always opens at full width. */
.vis-ui .mobile-nav { grid-template-columns: none; grid-auto-columns: minmax(0,1fr); grid-auto-flow: column; border: 1px solid var(--vis-border); border-radius: 16px; background: var(--vis-glass); color: var(--vis-muted); backdrop-filter: blur(var(--vis-blur)); box-shadow: var(--vis-shadow-md); }
.vis-ui .mobile-nav button { min-height: 48px; color: var(--vis-muted); border-radius: 10px; font-size: 9px; }
.vis-ui .mobile-nav button.active { background: var(--vis-accent-soft); color: var(--vis-accent-ink); }
.vis-ui .mobile-nav button svg { width: 20px; height: 20px; }
@media (min-width: 1025px) {
  .vis-ui .client-sidebar-collapsed .client-sidebar { width: var(--client-sidebar-collapsed); }
}
@media (max-width: 1200px) {
  .vis-ui .client-top-nav button { padding-inline: 8px; font-size: 9px; }
  .vis-ui .client-header { gap: 12px; padding-inline: 20px; }
  .vis-ui .client-product-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .vis-ui .metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 1024px) {
  .vis-ui .client-top-nav { display: none; }
  .vis-ui .icon-button.client-mobile-menu { display: inline-flex; }
  .vis-ui .client-sidebar { inset: var(--core-header) auto 0 0; width: 280px; transform: translateX(-105%); z-index: 60; background: var(--vis-surface); transition: transform var(--vis-slow) var(--vis-ease); }
  .vis-ui .client-sidebar-expanded .client-sidebar,.vis-ui .client-sidebar-collapsed .client-sidebar { width: 280px; }
  .vis-ui .client-sidebar.open { transform: translateX(0); }
  .vis-ui .client-sidebar .nav-button span,.vis-ui .client-sidebar .profile-compact > div:nth-child(2),.vis-ui .client-sidebar .logout-button { opacity: 1; visibility: visible; }
  .vis-ui .client-sidebar-toggle { display: none; }
  .vis-ui .client-sidebar-collapsed .nav-group-title { display: block; margin: 20px 10px 5px; height: auto; background: transparent; font-size: 9px; }
  .vis-ui .client-main,.vis-ui .client-sidebar-expanded .client-main { margin-left: 0; }
  .vis-ui .drawer-backdrop { position: fixed; inset: var(--core-header) 0 0; z-index: 55; background: rgba(10,20,38,.48); backdrop-filter: blur(3px); }
  .vis-ui .drawer-backdrop.open { display: block; opacity: 1; visibility: visible; }
  html.drawer-open { overflow: hidden; }
  .vis-ui .dashboard-grid { grid-template-columns: minmax(0,1fr); }
}
@media (max-width: 820px) {
  .vis-ui .icon-button.menu-toggle { display: inline-flex; }
  .vis-ui .app-shell:not(.client-shell) .main { margin-left: 0; }
  .vis-ui .app-shell:not(.client-shell) .sidebar { width: 280px; transform: translateX(-105%); background: var(--vis-surface); z-index: 60; transition: transform var(--vis-slow) var(--vis-ease); }
  .vis-ui .app-shell:not(.client-shell) .sidebar.open { transform: translateX(0); }
  .vis-ui .app-shell:not(.client-shell) .drawer-backdrop { inset: 0; }
  .vis-ui .page,.vis-ui .client-main .page { padding: 26px 22px 110px; }
  .vis-ui .topbar { padding-inline: 20px; }
  .vis-ui .client-overview-grid { gap: 16px; }
  .vis-ui .client-welcome { padding: 22px; }
  .vis-ui .client-notification-center { padding: 20px; }
  .vis-ui .client-notification-center .client-section-heading { flex-wrap: wrap; }
  .vis-ui .client-notification-center.is-empty { display: none; }
  .vis-ui .client-overview-grid:has(.client-notification-center.is-empty) { grid-template-columns: minmax(0,1fr); }
  .vis-ui .legal-settings-form { grid-template-columns: 1fr; }
  .vis-ui .legal-publish-bar { grid-template-columns: 1fr; gap: 12px; bottom: 86px; }
  .vis-ui .visuai-fab { bottom: 98px; right: 20px; }
  .vis-ui .partner-public-hero { grid-template-columns: 1fr; padding-block: 40px; gap: 24px; }
  .vis-ui .partner-public-hero aside { min-height: 200px; }
}
@media (max-width: 600px) {
  :root { --core-header: 68px; }
  .vis-ui .page,.vis-ui .client-main .page { padding: 22px 16px 104px; }
  .vis-ui .page-header { align-items: flex-start; margin-bottom: 22px; }
  .vis-ui .page-header h1 { font-size: 28px; }
  .vis-ui .page-actions { width: 100%; }
  .vis-ui .page-actions .button { flex: 1; }
  .vis-ui .client-header { padding: 10px 14px; }
  .vis-ui .client-brand img { width: 110px; }
  .vis-ui .client-header-actions { gap: 3px; }
  .vis-ui .install-button { display: none; }
  .vis-ui .client-overview-grid { grid-template-columns: 1fr; margin-bottom: 26px; }
  .vis-ui .client-intro-stack { grid-template-columns: 1fr; gap: 12px; }
  .vis-ui .client-welcome { min-height: 0; padding: 22px; border-radius: 18px; }
  .vis-ui .client-welcome h1 { font-size: 30px; }
  .vis-ui .client-welcome > div > p:last-child { font-size: 12px; }
  .vis-ui .client-advisor-card { border-radius: 14px; padding: 16px 18px; }
  .vis-ui .client-section-heading h2 { font-size: 22px; }
  .vis-ui .client-product-grid { grid-template-columns: minmax(0,1fr); gap: 12px; }
  .vis-ui .client-products .client-product-card { flex-direction: row; gap: 16px; min-height: auto; padding: 20px; }
  .vis-ui .client-product-icon { flex: 0 0 40px; }
  .vis-ui .client-products .client-product-card h3 { font-size: 16px; }
  .vis-ui .client-products .client-product-card p { margin-bottom: 14px; font-size: 12px; }
  .vis-ui .metrics { gap: 12px; }
  .vis-ui .metric-card { min-height: 128px; padding: 18px; }
  .vis-ui .metric-card > strong { font-size: 30px; }
  .vis-ui .metric-icon { width: 28px; height: 28px; }
  .vis-ui .metric-top { gap: 8px; }
  .vis-ui .card { padding: 20px; }
  .vis-ui .data-table td,.vis-ui .data-table th { padding: 14px; }
  .vis-ui .field :is(input,select,textarea) { font-size: 16px; }
  .vis-ui .modal-backdrop { padding: 12px; }
  .vis-ui .modal { border-radius: 18px; max-height: calc(100dvh - 24px); }
  .vis-ui :is(.modal-header,.modal-body,.modal-footer) { padding: 20px; }
  .vis-ui .mobile-nav { left: 12px; right: 12px; bottom: max(12px,env(safe-area-inset-bottom)); padding: 6px; }
  .vis-ui .partner-form-shell .public-form-panel { padding: 72px 14px 24px; }
  .vis-ui .partner-form-shell .public-long-form { padding: 24px 18px; border-radius: 18px; }
  .vis-ui .partner-form-header h2 { font-size: 30px; }
  .vis-ui .public-choice-group { padding: 16px; }
  .vis-ui .partner-public-header { align-items: flex-start; flex-wrap: wrap; gap: 16px; }
  .vis-ui .partner-public-brands img { max-width: 118px; max-height: 34px; }
  .vis-ui .partner-public-actions { gap: 8px; }
  .vis-ui .partner-public-actions .button { padding-inline: 12px; min-height: 40px; font-size: 12px; }
  .vis-ui .partner-public-hero aside { display: none; }
  .vis-ui .partner-public-cta { border-radius: 18px; }
}
@media (max-width: 390px) {
  .vis-ui .client-header-actions .icon-button { min-width: 34px; width: 34px; }
  .vis-ui .client-brand img { width: 96px; }
  .vis-ui .metric-icon { display: none; }
}
@media (prefers-reduced-motion: reduce) {
  .vis-ui *,.vis-ui *::before,.vis-ui *::after { animation-duration: .01ms !important; transition-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; }
}
@media (prefers-reduced-transparency: reduce) {
  .vis-ui :is(.sidebar,.client-header,.topbar,.mobile-nav,.login-form,.profile-save-bar,.legal-publish-bar) { background: var(--vis-surface); backdrop-filter: none; }
}
@media (forced-colors: active) {
  .vis-ui :is(.button,.nav-button.active,.client-product-card,.field input,.field select,.field textarea) { border: 1px solid ButtonText; }
  .vis-ui .sidebar-nav-indicator,.vis-ui .client-top-nav-indicator { border-color: Highlight; }
}

/* Client welcome tour: native modal dialog, actual navigation targets, local theme. */
html.client-tour-open { overflow: hidden; }
.client-tour-open .sidebar .nav { scroll-behavior: auto; }
.vis-ui .client-tour { position: fixed; inset: 0; width: 100vw; height: 100dvh; max-width: none; max-height: none; min-width: 0; margin: 0; padding: 0; border: 0; background: transparent; overflow: hidden; color: var(--vis-ink); font-family: var(--vis-font); }
.vis-ui .client-tour:not([open]) { display: none; }
.vis-ui .client-tour::backdrop { background: transparent; }
.vis-ui .client-tour.is-centered { background: rgba(12,20,37,.55); }
.vis-ui .client-tour-highlight { position: absolute; border: 2px solid var(--vis-brand); border-radius: 14px; box-shadow: 0 0 0 100vmax rgba(12,20,37,.55); pointer-events: none; }
.vis-ui .client-tour-card { position: absolute; z-index: 1; width: min(360px,calc(100vw - 24px)); max-height: calc(100dvh - 24px); overflow: auto; margin: 0; padding: 22px; border: 1px solid var(--vis-glass-edge); border-radius: 18px; background: var(--vis-surface); color: var(--vis-ink); box-shadow: var(--vis-shadow-lg); }
.vis-ui .client-tour-header { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-bottom: 10px; }
.vis-ui .client-tour-count { color: var(--vis-muted); font-size: 11px; font-weight: 600; }
.vis-ui .client-tour-close { display: inline-flex; align-items: center; justify-content: center; flex: 0 0 32px; width: 32px; height: 32px; padding: 0; border: 0; border-radius: 8px; background: var(--vis-surface-soft); color: var(--vis-muted); font: 400 24px/1 var(--vis-font); cursor: pointer; }
.vis-ui .client-tour progress { appearance: none; display: block; width: 100%; height: 4px; margin-bottom: 22px; border: 0; border-radius: 5px; overflow: hidden; background: var(--vis-surface-soft); color: var(--vis-action); }
.vis-ui .client-tour progress::-webkit-progress-bar { background: var(--vis-surface-soft); }
.vis-ui .client-tour progress::-webkit-progress-value { background: var(--vis-action); }
.vis-ui .client-tour progress::-moz-progress-bar { background: var(--vis-action); }
.vis-ui .client-tour-card h2 { margin: 0 0 12px; font-size: 21px; line-height: 1.25; font-weight: 600; letter-spacing: -.035em; }
.vis-ui .client-tour-card p { margin: 0; font-size: 13px; line-height: 1.65; color: var(--vis-muted); }
.vis-ui .client-tour-actions { display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 10px; margin-top: 24px; }
.vis-ui .client-tour-navigation { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
.vis-ui .client-tour-actions .button { min-height: 40px; cursor: pointer; }
@media (max-width: 380px) {
  .vis-ui .client-tour-card { padding: 18px; }
  .vis-ui .client-tour-actions { gap: 8px; }
  .vis-ui .client-tour-actions .button { padding-inline: 10px; font-size: 11px; }
}

/* Viewport-bound auth: long forms / keyboard / zoom scroll inside the panel only. */
@media (max-height: 700px) {
  .vis-ui .login-brand { padding: 28px; }
  .vis-ui .login-copy { margin-block: 18px; }
  .vis-ui .login-copy .eyebrow { margin-bottom: 15px; }
  .vis-ui .login-copy h1 { font-size: clamp(32px,7.5dvh,52px); }
  .vis-ui .login-copy > p:not(.eyebrow) { margin-top: 18px; font-size: 12px; }
  .vis-ui .login-points { margin-top: 18px; }
  .vis-ui .login-panel { padding-block: 12px; }
  .vis-ui .login-form { padding-block: 20px; }
  .vis-ui .login-form > .eyebrow { margin-bottom: 8px; }
  .vis-ui .login-form > p:not(.eyebrow) { margin: 8px 0 16px; }
  .vis-ui .login-form .field { margin-bottom: 11px; }
  .vis-ui .auth-divider { margin-block: 10px; }
  .vis-ui #create-account { margin-top: 6px; }
}
@media (max-width: 820px) {
  .vis-ui .login-shell { display: flex; padding: 12px; }
  .vis-ui .login-brand { display: none; }
  .vis-ui .login-panel { min-height: 0; padding: 18px; border-radius: 24px; }
  .vis-ui .login-form .mobile-logo { display: block; width: 112px; height: auto; margin-bottom: 20px; }
  .vis-ui .login-form h2 { font-size: 27px; }
  .vis-ui .auth-theme-toggle { top: 23px; right: 23px; width: 34px; height: 34px; min-height: 34px; z-index: 12; }
  .vis-ui .auth-theme-toggle svg { width: 17px; height: 17px; }
}
@media (max-width: 820px) and (max-height: 700px) {
  .vis-ui .login-shell { padding: 8px; }
  .vis-ui .login-panel { padding: 10px; }
  .vis-ui .login-form { padding: 18px 20px; }
  .vis-ui .login-form .mobile-logo { width: 98px; margin-bottom: 14px; }
  .vis-ui .login-form > .auth-security-label { font-size: 9px; }
  .vis-ui .auth-theme-toggle { top: 19px; right: 19px; }
  .vis-ui .login-form h2 { font-size: 24px; }
}
@media (max-width: 360px) {
  .vis-ui .login-panel { padding-inline: 6px; }
  .vis-ui .login-form { padding-inline: 16px; }
  .vis-ui .login-form h2 { font-size: 23px; }
}
@media (max-width: 360px) and (max-height: 620px) {
  .vis-ui .login-form { padding-block: 14px; }
  .vis-ui .login-form .mobile-logo { width: 88px; margin-bottom: 10px; }
  .vis-ui .login-form h2 { font-size: 21px; }
  .vis-ui .login-form > p:not(.eyebrow) { font-size: 11px; margin-bottom: 12px; }
  .vis-ui .login-form .field { gap: 4px; margin-bottom: 9px; }
}
/* Landscape keyboards and high zoom leave too little space for the brand copy. */
@media (min-width: 821px) and (max-height: 540px) {
  .vis-ui .login-shell { grid-template-columns: minmax(0,1fr); }
  .vis-ui .login-brand { display: none; }
  .vis-ui .login-form .mobile-logo { display: block; width: 104px; margin-bottom: 16px; }
}

/* Hide a legacy layer while an older tab refreshes its assets. */
.cursor-aura { display: none !important; }

.vis-ui .auth-install { margin-top: 16px; padding-top: 16px; border-top: 1px solid var(--vis-border, #dde3ed); }
.vis-ui .auth-install-button { min-height: 44px; gap: 8px; }
.vis-ui .auth-install-button[hidden], .vis-ui .auth-install[hidden] { display: none !important; }
.vis-ui .auth-install-help { margin: 10px 0 0; font-size: 12px; line-height: 1.6; color: var(--vis-text-muted, #68738a); }

.vis-ui .client-section-heading > .client-notification-actions { display: flex; flex: 0 0 auto; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: 6px; }
