/* Klivy UI Foundation 6.6.13
 * Canonical design tokens, motion, loading, reveal and shared component primitives.
 * Loaded after legacy styles so old screens can migrate without additional page-level patches.
 */
:root{
  color-scheme:dark;
  --klivy-color-bg:#050b18;
  --klivy-color-bg-elevated:#091226;
  --klivy-color-surface:#101a31;
  --klivy-color-surface-strong:#16223d;
  --klivy-color-surface-soft:rgba(255,255,255,.045);
  --klivy-color-surface-hover:rgba(255,255,255,.075);
  --klivy-color-border:rgba(151,172,220,.17);
  --klivy-color-border-strong:rgba(151,172,220,.3);
  --klivy-color-text:#f7f9ff;
  --klivy-color-text-soft:#c8d1e5;
  --klivy-color-muted:#95a3c0;
  --klivy-color-brand:#60e5ce;
  --klivy-color-brand-strong:#2fcab6;
  --klivy-color-blue:#5b7cff;
  --klivy-color-cyan:#27c7e3;
  --klivy-color-warning:#f5bd45;
  --klivy-color-danger:#ff6f84;
  --klivy-color-success:#42d7b7;
  --klivy-gradient-brand:linear-gradient(135deg,var(--klivy-color-blue),var(--klivy-color-cyan) 58%,var(--klivy-color-brand));
  --klivy-gradient-surface:linear-gradient(150deg,rgba(23,36,66,.96),rgba(8,17,35,.97));
  --klivy-space-1:4px;
  --klivy-space-2:8px;
  --klivy-space-3:12px;
  --klivy-space-4:16px;
  --klivy-space-5:20px;
  --klivy-space-6:24px;
  --klivy-space-8:32px;
  --klivy-space-10:40px;
  --klivy-radius-sm:10px;
  --klivy-radius-md:14px;
  --klivy-radius-lg:20px;
  --klivy-radius-xl:28px;
  --klivy-radius-pill:999px;
  --klivy-shadow-sm:0 10px 30px rgba(0,0,0,.18);
  --klivy-shadow-md:0 20px 58px rgba(0,0,0,.28);
  --klivy-shadow-lg:0 34px 100px rgba(0,0,0,.44);
  --klivy-motion-instant:120ms;
  --klivy-motion-fast:220ms;
  --klivy-motion-base:420ms;
  --klivy-motion-slow:620ms;
  --klivy-ease-standard:cubic-bezier(.2,.8,.2,1);
  --klivy-ease-enter:cubic-bezier(.22,1,.36,1);
  --klivy-ease-exit:cubic-bezier(.4,0,1,1);
  --klivy-focus-ring:0 0 0 4px rgba(96,229,206,.14);
  --klivy-content-max:1720px;

  /* Compatibility aliases. New work must use the canonical tokens above. */
  --k5-bg:var(--klivy-color-bg-elevated);
  --k5-bg-deep:var(--klivy-color-bg);
  --k5-surface:var(--klivy-color-surface);
  --k5-surface-2:var(--klivy-color-surface-strong);
  --k5-line:var(--klivy-color-border);
  --k5-line-strong:var(--klivy-color-border-strong);
  --k5-text:var(--klivy-color-text);
  --k5-muted:var(--klivy-color-muted);
  --k5-brand:var(--klivy-color-brand);
  --k5-brand-2:var(--klivy-color-blue);
  --k5-danger:var(--klivy-color-danger);
  --k5-r1:var(--klivy-radius-sm);
  --k5-r2:var(--klivy-radius-md);
  --k5-r3:var(--klivy-radius-lg);
  --k5-r4:var(--klivy-radius-xl);
  --k5-shadow-sm:var(--klivy-shadow-sm);
  --k5-shadow-lg:var(--klivy-shadow-lg);
  --k5-ease:var(--klivy-ease-enter);
  --kw-bg:var(--klivy-color-bg);
  --kw-panel:var(--klivy-color-surface);
  --kw-panel-2:var(--klivy-color-surface-strong);
  --kw-border:var(--klivy-color-border);
  --kw-text:var(--klivy-color-text);
  --kw-muted:var(--klivy-color-muted);
  --kw-blue:var(--klivy-color-blue);
  --kw-cyan:var(--klivy-color-cyan);
  --kw-radius:var(--klivy-radius-lg);
}

html.klivy-ui-foundation{background:var(--klivy-color-bg)}
html.klivy-ui-foundation *,html.klivy-ui-foundation *::before,html.klivy-ui-foundation *::after{box-sizing:border-box}
body.klivy-app{accent-color:var(--klivy-color-brand)}
html.klivy-ui-foundation :focus-visible{outline:2px solid rgba(96,229,206,.72)!important;outline-offset:3px!important}
html.klivy-ui-foundation :where(button,a,input,select,textarea,[role="button"]){-webkit-tap-highlight-color:transparent}

/* Motion is token-driven and intentionally limited to interactive properties. */
html.klivy-ui-foundation :where(button,.btn,[role="button"],a.klivy-nav__item){
  transition:transform var(--klivy-motion-fast) var(--klivy-ease-enter),background-color var(--klivy-motion-fast) ease,border-color var(--klivy-motion-fast) ease,color var(--klivy-motion-fast) ease,box-shadow var(--klivy-motion-base) var(--klivy-ease-standard),opacity var(--klivy-motion-fast) ease!important;
}
html.klivy-ui-foundation :where(button,.btn,[role="button"],a.klivy-nav__item):active:not(:disabled){transform:scale(.972)!important;transition-duration:var(--klivy-motion-instant)!important}
html.klivy-ui-foundation :where(input,select,textarea){transition:border-color var(--klivy-motion-fast) ease,box-shadow var(--klivy-motion-fast) ease,background-color var(--klivy-motion-fast) ease!important}
html.klivy-ui-foundation :where(input,select,textarea):focus{box-shadow:var(--klivy-focus-ring)!important}

/* Canonical buttons. Existing button classes are compatibility aliases. */
:where(.klivy-button,.btn,.primary-btn,.btn-primary,.saas-primary-btn,.saas-secondary-btn,.klivy-primary-mini){
  min-height:44px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  border:1px solid transparent;
  border-radius:var(--klivy-radius-md);
  padding:0 16px;
  font:inherit;
  font-weight:750;
  line-height:1;
  text-decoration:none;
  cursor:pointer;
}
:where(.klivy-button--primary,.primary-btn,.btn-primary,.saas-primary-btn,.klivy-primary-mini){background:var(--klivy-gradient-brand)!important;color:#05131d!important;border-color:transparent!important;box-shadow:0 13px 30px rgba(55,168,222,.22)!important}
:where(.klivy-button--secondary,.saas-secondary-btn){background:var(--klivy-color-surface-soft)!important;color:var(--klivy-color-text)!important;border-color:var(--klivy-color-border)!important;box-shadow:none!important}
:where(.klivy-button,.btn,.primary-btn,.btn-primary,.saas-primary-btn,.saas-secondary-btn,.klivy-primary-mini):disabled{opacity:.5!important;cursor:not-allowed!important;transform:none!important;box-shadow:none!important}

/* Canonical surface/card primitive. */
:where(.klivy-card,.klivy-content-card,.klivy-action-card,.klivy-utility-card,.saved-page__card,.profile-card,.plans-card,.admin-card,.search-panel,.shopping-sidebar,.product-card,.auth-card,.billing-card,.dashboard-card){
  border-color:var(--klivy-color-border)!important;
  background:var(--klivy-gradient-surface)!important;
  box-shadow:var(--klivy-shadow-sm),inset 0 1px 0 rgba(255,255,255,.045)!important;
}
:where(.klivy-card,.klivy-content-card,.klivy-action-card,.klivy-utility-card,.saved-page__card,.profile-card,.plans-card,.admin-card,.search-panel,.shopping-sidebar,.product-card,.auth-card,.billing-card,.dashboard-card){border-radius:var(--klivy-radius-lg)!important}

/* One skeleton language for inline placeholders and scoped network loading. */
@keyframes klivy-skeleton-shimmer{to{transform:translateX(100%)}}
:where(.klivy-skeleton,.k5-skeleton,.app-dashboard-loading,.saved-page__loading,.saas-loading,[data-klivy-skeleton]){
  position:relative!important;
  overflow:hidden!important;
  isolation:isolate;
  color:transparent!important;
  border-color:var(--klivy-color-border)!important;
  background:rgba(255,255,255,.045)!important;
  text-shadow:none!important;
}
:where(.klivy-skeleton,.k5-skeleton,.app-dashboard-loading,.saved-page__loading,.saas-loading,[data-klivy-skeleton])::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:2;
  transform:translateX(-100%);
  background:linear-gradient(90deg,transparent,rgba(255,255,255,.105),transparent);
  animation:klivy-skeleton-shimmer 1.5s linear infinite;
  pointer-events:none;
}
.saas-loading{min-height:150px!important;border-radius:var(--klivy-radius-lg)!important}
.saas-loading>span,.klivy-search-loader__orb,.klivy-loading-mark{display:none!important}
button.is-loading,[aria-busy="true"].klivy-button{position:relative;overflow:hidden;pointer-events:none}
button.is-loading::after,[aria-busy="true"].klivy-button::after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.2),transparent);animation:klivy-skeleton-shimmer 1.4s linear infinite}

.klivy-load-scope{position:relative!important;isolation:isolate}
.klivy-load-overlay{
  position:absolute;
  inset:0;
  z-index:80;
  display:grid;
  align-items:start;
  padding:clamp(16px,3vw,28px);
  border-radius:inherit;
  background:rgba(5,11,24,.54);
  -webkit-backdrop-filter:blur(10px) saturate(120%);
  backdrop-filter:blur(10px) saturate(120%);
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transition:opacity var(--klivy-motion-base) var(--klivy-ease-standard),visibility 0s linear var(--klivy-motion-base);
}
.klivy-load-overlay.is-visible{opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s}
.klivy-load-overlay__content{width:min(680px,100%);display:grid;gap:14px;padding:18px;border:1px solid var(--klivy-color-border);border-radius:var(--klivy-radius-lg);background:rgba(10,19,39,.88);box-shadow:var(--klivy-shadow-md)}
.klivy-load-overlay__copy{display:grid;gap:4px;color:var(--klivy-color-text)}
.klivy-load-overlay__copy strong{font-size:14px;letter-spacing:-.01em}
.klivy-load-overlay__copy span{color:var(--klivy-color-muted);font-size:12px;line-height:1.45}
.klivy-load-overlay__skeletons{display:grid;gap:10px}
.klivy-load-overlay__line{height:14px;border-radius:var(--klivy-radius-pill);background:rgba(255,255,255,.065);position:relative;overflow:hidden}
.klivy-load-overlay__line:nth-child(1){width:92%}.klivy-load-overlay__line:nth-child(2){width:76%}.klivy-load-overlay__line:nth-child(3){width:84%}
.klivy-load-overlay__line::after{content:"";position:absolute;inset:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.13),transparent);animation:klivy-skeleton-shimmer 1.5s linear infinite}
.klivy-load-overlay.is-leaving{opacity:0;pointer-events:none}
.klivy-search-loader,.klivy-loading-layer{display:none!important}

/* One reveal stage: the first frame is prepared before paint, then animated once. */
@keyframes klivy-motion-failsafe{
  to{opacity:1;filter:none;transform:none;pointer-events:auto}
}
html.klivy-motion-pending :where(
  .klivy-main > main,
  .klivy-main > .klivy-workspace,
  .list-page,
  .saved-page,
  .profile-page,
  .plans-page,
  .admin-shell,
  .auth-shell,
  .app-dashboard-shell,
  .dashboard-hero,
  .search-mode-panel,
  .results-panel,
  .klivy-content-card
){
  opacity:0;
  filter:blur(3px);
  transform:translate3d(0,6px,0);
  pointer-events:none;
  animation:klivy-motion-failsafe 1ms linear 1800ms forwards;
}
.klivy-reveal{
  opacity:0;
  filter:blur(3px);
  transform:translate3d(0,6px,0);
  pointer-events:none;
  backface-visibility:hidden;
  -webkit-font-smoothing:antialiased;
  will-change:opacity,filter,transform;
}
.klivy-reveal.is-visible{
  opacity:1;
  filter:blur(0);
  transform:translate3d(0,0,0);
  pointer-events:auto;
  transition:opacity 360ms ease-out,filter 460ms ease-out,transform 460ms var(--klivy-ease-enter);
}
.klivy-revealed{will-change:auto}

/* Canonical toast. Legacy Akcie toast classes share this visual system. */
.klivy-toast-root,.akcie-toast-root,.k5-toast-stack{position:fixed;z-index:2147482500;right:max(16px,env(safe-area-inset-right));bottom:max(16px,env(safe-area-inset-bottom));display:grid;gap:10px;width:min(410px,calc(100vw - 32px));pointer-events:none}
.klivy-toast,.akcie-toast,.k5-toast{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:start;gap:12px;padding:14px;border:1px solid var(--klivy-color-border-strong);border-radius:var(--klivy-radius-lg);background:rgba(10,18,37,.94);box-shadow:var(--klivy-shadow-lg);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);color:var(--klivy-color-text);pointer-events:auto;opacity:0;transform:translateY(10px) scale(.985);transition:opacity var(--klivy-motion-fast) ease,transform var(--klivy-motion-base) var(--klivy-ease-enter)}
.klivy-toast.is-visible,.akcie-toast,.k5-toast{opacity:1;transform:none}
.klivy-toast.is-leaving,.akcie-toast.is-leaving{opacity:0;transform:translateY(8px) scale(.985)}
.klivy-toast__icon,.akcie-toast__dot{width:12px;height:12px;margin-top:5px;border-radius:50%;background:var(--klivy-color-blue);box-shadow:0 0 0 6px rgba(91,124,255,.12)}
.klivy-toast--success .klivy-toast__icon,.akcie-toast--success .akcie-toast__dot{background:var(--klivy-color-success);box-shadow:0 0 0 6px rgba(66,215,183,.12)}
.klivy-toast--error .klivy-toast__icon,.akcie-toast--error .akcie-toast__dot{background:var(--klivy-color-danger);box-shadow:0 0 0 6px rgba(255,111,132,.12)}
.klivy-toast--warning .klivy-toast__icon{background:var(--klivy-color-warning);box-shadow:0 0 0 6px rgba(245,189,69,.12)}
.klivy-toast strong,.akcie-toast strong,.k5-toast strong{display:block;margin:0 0 3px;font-size:13px;color:var(--klivy-color-text)}
.klivy-toast p,.akcie-toast p,.k5-toast span{margin:0;color:var(--klivy-color-muted);font-size:13px;line-height:1.45}
.klivy-toast button,.akcie-toast button{width:30px;height:30px;display:grid;place-items:center;border:1px solid var(--klivy-color-border);border-radius:var(--klivy-radius-sm);background:var(--klivy-color-surface-soft);color:var(--klivy-color-text);cursor:pointer}

/* Canonical modal and drawer primitives with legacy aliases. */
.klivy-modal{position:fixed;inset:0;z-index:2147482400;display:grid;place-items:center;padding:24px;opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--klivy-motion-base) ease,visibility 0s linear var(--klivy-motion-base)}
.klivy-modal.is-open{opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s}
.klivy-modal__backdrop{position:absolute;inset:0;background:rgba(2,6,15,.72);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.klivy-modal__dialog{position:relative;width:min(640px,100%);max-height:calc(100dvh - 48px);overflow:auto;border:1px solid var(--klivy-color-border-strong);border-radius:var(--klivy-radius-xl);background:var(--klivy-gradient-surface);box-shadow:var(--klivy-shadow-lg);color:var(--klivy-color-text);transform:translateY(18px) scale(.985);transition:transform var(--klivy-motion-slow) var(--klivy-ease-enter)}
.klivy-modal.is-open .klivy-modal__dialog{transform:none}
.klivy-modal__header{display:flex;justify-content:space-between;gap:18px;padding:24px 24px 18px;border-bottom:1px solid var(--klivy-color-border)}
.klivy-modal__header h2{margin:0;font-size:clamp(24px,4vw,36px)}
.klivy-modal__body{padding:24px}
.klivy-modal__actions{display:flex;justify-content:flex-end;gap:10px;padding:18px 24px 24px}
.klivy-modal__close{width:42px;height:42px;display:grid;place-items:center;border:1px solid var(--klivy-color-border);border-radius:var(--klivy-radius-md);background:var(--klivy-color-surface-soft);color:var(--klivy-color-text);font-size:24px;cursor:pointer}
html.has-modal,body.has-modal{overflow:hidden}

.klivy-drawer{position:fixed;inset:0;z-index:2147482300;display:grid;grid-template-columns:minmax(0,1fr) min(460px,92vw);opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--klivy-motion-base) ease,visibility 0s linear var(--klivy-motion-base)}
.klivy-drawer.is-open{opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s}
.klivy-drawer__backdrop{background:rgba(2,6,15,.62);-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px)}
.klivy-drawer__panel{height:100dvh;overflow:auto;border-left:1px solid var(--klivy-color-border);background:var(--klivy-gradient-surface);box-shadow:-24px 0 70px rgba(0,0,0,.38);transform:translateX(100%);transition:transform var(--klivy-motion-slow) var(--klivy-ease-enter)}
.klivy-drawer.is-open .klivy-drawer__panel{transform:none}

/* Canonical empty state and aliases. */
:where(.klivy-empty-state,.empty-state,.saved-page__empty,.app-dashboard-empty,.saas-empty,.shopping-list__empty){min-height:150px;display:grid;place-items:center;align-content:center;gap:7px;padding:26px;border:1px dashed var(--klivy-color-border-strong)!important;border-radius:var(--klivy-radius-lg)!important;background:rgba(255,255,255,.025)!important;text-align:center;color:var(--klivy-color-muted)!important}
:where(.klivy-empty-state,.empty-state,.saved-page__empty,.app-dashboard-empty,.saas-empty,.shopping-list__empty) strong{color:var(--klivy-color-text)!important;font-size:17px}

@media (hover:hover){
  body.klivy-app :where(button,.btn,[role="button"]):not(:disabled):hover{transform:translateY(-1px);filter:brightness(1.045)}
  html.klivy-ui-foundation :where(.klivy-card,.klivy-content-card,.klivy-action-card,.klivy-utility-card,.saved-page__card,.profile-card,.plans-card,.admin-card,.product-card):hover{border-color:var(--klivy-color-border-strong)!important;box-shadow:var(--klivy-shadow-md),inset 0 1px 0 rgba(255,255,255,.055)!important}
}

@media (max-width:980px){
  :root{
    --klivy-motion-base:360ms;
    --klivy-motion-slow:500ms;
    --klivy-mobile-dock-base:76px;
    --klivy-mobile-safe-bottom:env(safe-area-inset-bottom,0px);
    --klivy-mobile-dock-total:calc(var(--klivy-mobile-dock-base) + var(--klivy-mobile-safe-bottom));
    --k63-dock-h:var(--klivy-mobile-dock-total);
    --k633-mobile-dock-h:var(--klivy-mobile-dock-total);
    --klivy-mobile-dock-space:var(--klivy-mobile-dock-total);
  }
  body.klivy-app{padding-bottom:var(--klivy-mobile-dock-total)!important}
  body.klivy-app .klivy-sidebar{
    bottom:0!important;
    height:var(--klivy-mobile-dock-total)!important;
    min-height:var(--klivy-mobile-dock-total)!important;
    padding:8px 14px calc(8px + var(--klivy-mobile-safe-bottom))!important;
    background:rgba(4,12,28,.985)!important;
  }
  body.klivy-app .klivy-nav--all{height:60px!important;min-height:60px!important}
  body.klivy-app .klivy-nav__item{height:60px!important;min-height:60px!important}
  html.klivy-motion-pending :where(.klivy-main > main,.klivy-main > .klivy-workspace,.list-page,.saved-page,.profile-page,.plans-page,.admin-shell,.auth-shell,.app-dashboard-shell,.dashboard-hero,.search-mode-panel,.results-panel,.klivy-content-card),
  .klivy-reveal{filter:blur(1.75px);transform:translate3d(0,4px,0)}
  .klivy-reveal.is-visible{filter:blur(0);transform:translate3d(0,0,0);transition-duration:320ms,400ms,400ms}
  .klivy-toast-root,.akcie-toast-root,.k5-toast-stack{left:10px;right:10px;bottom:calc(var(--klivy-mobile-dock-total) + 10px);width:auto}
  .klivy-modal{align-items:end;padding:0}
  .klivy-modal__dialog{width:100%;max-height:min(90dvh,860px);border-radius:var(--klivy-radius-xl) var(--klivy-radius-xl) 0 0;padding-bottom:env(safe-area-inset-bottom);transform:translateY(32px)}
  .klivy-modal__header,.klivy-modal__body,.klivy-modal__actions{padding-left:18px;padding-right:18px}
  .klivy-modal__actions{position:sticky;bottom:0;background:rgba(9,18,38,.94);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}
  .klivy-load-overlay{padding:12px}
  .klivy-load-overlay__content{padding:15px;border-radius:var(--klivy-radius-md)}
  :where(.klivy-button,.btn,.primary-btn,.btn-primary,.saas-primary-btn,.saas-secondary-btn,.klivy-primary-mini){min-height:46px}
}

@media (max-width:640px){
  .klivy-drawer{grid-template-columns:1fr}
  .klivy-drawer__backdrop{grid-area:1/1}
  .klivy-drawer__panel{grid-area:1/1;align-self:end;width:100%;height:min(88dvh,820px);border-left:0;border-top:1px solid var(--klivy-color-border);border-radius:var(--klivy-radius-xl) var(--klivy-radius-xl) 0 0;transform:translateY(100%)}
  .klivy-toast,.akcie-toast,.k5-toast{border-radius:16px;padding:13px}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;transition-delay:0s!important}
  html.klivy-motion-pending :where(.klivy-main > main,.klivy-main > .klivy-workspace,.list-page,.saved-page,.profile-page,.plans-page,.admin-shell,.auth-shell,.app-dashboard-shell,.dashboard-hero,.search-mode-panel,.results-panel,.klivy-content-card),.klivy-reveal{opacity:1!important;filter:none!important;transform:none!important;pointer-events:auto!important;animation:none!important}
}
