/* ==========================================================================
   KMT UI — design system for the KMT CRM panel
   Language: kmt-core.net (navy · cyan · blue · violet + signature gradient)
   Classic layer: muted gold, used sparingly for premium details.
   All components are prefixed `k-`. Perfex mapping lives in kmt-skin.css.
   ========================================================================== */

/* ---------- 1. Fonts (local, no CDN) ---------- */
@font-face{font-family:kfont;font-weight:300;font-style:normal;font-display:swap;src:url(../fonts/irsans-l.woff) format("woff")}
@font-face{font-family:kfont;font-weight:400;font-style:normal;font-display:swap;src:url(../fonts/irsans.woff) format("woff")}
@font-face{font-family:kfont;font-weight:500;font-style:normal;font-display:swap;src:url(../fonts/irsans-m.woff) format("woff")}
@font-face{font-family:kfont;font-weight:600;font-style:normal;font-display:swap;src:url(../fonts/irsans-m.woff) format("woff")}
@font-face{font-family:kfont;font-weight:700;font-style:normal;font-display:swap;src:url(../fonts/irsans-m.woff) format("woff")}
@font-face{font-family:kfont;font-weight:900;font-style:normal;font-display:swap;src:url(../fonts/irsans-b.woff) format("woff")}

/* punctuation the Persian font lacks (dashes, ellipsis, arrows) → local Inter, same family name */
@font-face{font-family:kfont;font-weight:300;font-display:swap;src:url(../fonts/kpunct.woff2) format("woff2");unicode-range:U+2010-2015,U+2026,U+2190-2193,U+2022}
@font-face{font-family:kfont;font-weight:400;font-display:swap;src:url(../fonts/kpunct.woff2) format("woff2");unicode-range:U+2010-2015,U+2026,U+2190-2193,U+2022}
@font-face{font-family:kfont;font-weight:500;font-display:swap;src:url(../fonts/kpunct.woff2) format("woff2");unicode-range:U+2010-2015,U+2026,U+2190-2193,U+2022}
@font-face{font-family:kfont;font-weight:600;font-display:swap;src:url(../fonts/kpunct.woff2) format("woff2");unicode-range:U+2010-2015,U+2026,U+2190-2193,U+2022}
@font-face{font-family:kfont;font-weight:700;font-display:swap;src:url(../fonts/kpunct.woff2) format("woff2");unicode-range:U+2010-2015,U+2026,U+2190-2193,U+2022}
@font-face{font-family:kfont;font-weight:900;font-display:swap;src:url(../fonts/kpunct.woff2) format("woff2");unicode-range:U+2010-2015,U+2026,U+2190-2193,U+2022}

/* ---------- 2. Tokens ---------- */
:root{
  /* brand (theme independent) */
  --k-cyan:#22d3ee;--k-blue:#3b82f6;--k-violet:#8b5cf6;
  --k-grad:linear-gradient(135deg,#22d3ee 0%,#3b82f6 50%,#8b5cf6 100%);

  /* type */
  --k-font:kfont,Tahoma,"Segoe UI",sans-serif;
  --k-mono:ui-monospace,"Cascadia Mono",Consolas,"SFMono-Regular",Menlo,Inter,kfont,monospace;
  --k-latin:Inter,"Segoe UI",Roboto,"Helvetica Neue",Arial,kfont,sans-serif;
  --k-fs-xs:12px;--k-fs-sm:13px;--k-fs-base:14.5px;--k-fs-md:16px;--k-fs-lg:18px;
  --k-fs-xl:22px;--k-fs-2xl:28px;--k-fs-3xl:36px;
  --k-lh:1.85;--k-lh-tight:1.4;

  /* space (4px grid) */
  --k-s1:4px;--k-s2:8px;--k-s3:12px;--k-s4:16px;--k-s5:20px;--k-s6:24px;--k-s8:32px;--k-s10:40px;--k-s12:48px;

  /* radius */
  --k-r-sm:10px;--k-r:12px;--k-r-md:14px;--k-r-lg:18px;--k-r-pill:999px;

  /* motion */
  --k-ease:cubic-bezier(.2,.7,.2,1);--k-t-fast:150ms;--k-t:220ms;--k-t-slow:300ms;

  /* layout */
  --k-side-w:268px;--k-rail-w:76px;--k-head-h:64px;--k-max:1440px;
  --k-z-head:60;--k-z-side:70;--k-z-overlay:1040;--k-z-modal:1050;--k-z-toast:1080;--k-z-cmdk:1090;
}

/* Dark (default brand theme) */
:root,
html[data-kt="dark"]{
  color-scheme:dark;
  --k-bg:#060a17;--k-bg-2:#0a1124;
  --k-surface:#0d1630;--k-surface-2:#111c3a;--k-surface-3:#16224a;
  --k-overlay:rgba(3,6,15,.72);
  --k-glass:rgba(8,13,30,.72);
  --k-line:#1e2a4a;--k-line-2:#2a3a63;--k-line-soft:rgba(42,58,99,.55);
  --k-text:#e6edf8;--k-text-2:#93a1bd;--k-text-3:#7d8aa6;--k-text-inv:#041022;

  --k-accent:#22d3ee;--k-accent-2:#3b82f6;--k-accent-ink:#67e8f9;
  --k-accent-soft:rgba(34,211,238,.12);--k-accent-line:rgba(34,211,238,.35);
  --k-gold:#c9a45c;--k-gold-soft:rgba(201,164,92,.14);--k-gold-line:rgba(201,164,92,.45);

  --k-success:#34d399;--k-success-soft:rgba(52,211,153,.12);
  --k-warning:#fbbf24;--k-warning-soft:rgba(251,191,36,.12);
  --k-danger:#fb7185;--k-danger-soft:rgba(251,113,133,.12);
  --k-info:#60a5fa;--k-info-soft:rgba(96,165,250,.12);
  --k-neutral-soft:rgba(147,161,189,.12);

  --k-btn-primary:var(--k-grad);--k-btn-primary-text:#041022;
  --k-focus:0 0 0 3px rgba(34,211,238,.45);
  --k-shadow-sm:0 1px 2px rgba(0,0,0,.35);
  --k-shadow:0 12px 32px -16px rgba(0,0,0,.65);
  --k-shadow-lg:0 28px 64px -24px rgba(0,0,0,.8);
  --k-grid-line:rgba(255,255,255,.028);
  --k-skel-a:#121d3d;--k-skel-b:#1a2850;
  --k-glow-1:rgba(34,211,238,.10);--k-glow-2:rgba(139,92,246,.10);
}

/* Light — warm paper, never pure white */
html[data-kt="light"]{
  color-scheme:light;
  --k-bg:#f5f1e8;--k-bg-2:#efe9dc;
  --k-surface:#fffcf6;--k-surface-2:#faf6ee;--k-surface-3:#f2ecdf;
  --k-overlay:rgba(26,22,14,.38);
  --k-glass:rgba(250,246,238,.78);
  --k-line:#e5dccb;--k-line-2:#d6cab3;--k-line-soft:rgba(176,160,128,.35);
  --k-text:#161c30;--k-text-2:#4f586f;--k-text-3:#666d82;--k-text-inv:#fffcf6;

  --k-accent:#0e7490;--k-accent-2:#1d4ed8;--k-accent-ink:#0e7490;
  --k-accent-soft:rgba(14,116,144,.09);--k-accent-line:rgba(14,116,144,.35);
  --k-gold:#7f6129;--k-gold-soft:rgba(168,132,60,.12);--k-gold-line:rgba(138,106,47,.4);

  --k-success:#047857;--k-success-soft:rgba(4,120,87,.09);
  --k-warning:#8d4f05;--k-warning-soft:rgba(161,98,7,.10);
  --k-danger:#be123c;--k-danger-soft:rgba(190,18,60,.08);
  --k-info:#1d4ed8;--k-info-soft:rgba(29,78,216,.08);
  --k-neutral-soft:rgba(79,88,111,.09);

  --k-btn-primary:linear-gradient(135deg,#0e7490 0%,#1d4ed8 55%,#6d28d9 100%);--k-btn-primary-text:#fff;
  --k-focus:0 0 0 3px rgba(14,116,144,.32);
  --k-shadow-sm:0 1px 2px rgba(60,48,24,.08);
  --k-shadow:0 14px 34px -18px rgba(60,48,24,.28);
  --k-shadow-lg:0 30px 70px -28px rgba(60,48,24,.38);
  --k-grid-line:rgba(60,48,24,.045);
  --k-skel-a:#efe8da;--k-skel-b:#f7f2e8;
  --k-glow-1:rgba(14,116,144,.07);--k-glow-2:rgba(109,40,217,.06);
}

/* ---------- 3. Base ---------- */
html.kmt{-webkit-text-size-adjust:100%;text-size-adjust:100%}
html.kmt body{
  font-family:var(--k-font)!important;font-size:var(--k-fs-base);line-height:var(--k-lh);
  color:var(--k-text);background:var(--k-bg);
  -webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
  font-feature-settings:"tnum" 1;
}
html.kmt body>*{font-size:var(--k-fs-base)}
html.kmt ::selection{background:rgba(34,211,238,.28)}
html.kmt :focus-visible{outline:2px solid var(--k-accent);outline-offset:2px}
html.kmt h1,html.kmt h2,html.kmt h3,html.kmt h4,html.kmt h5,html.kmt h6{font-family:var(--k-font);color:var(--k-text);line-height:var(--k-lh-tight);letter-spacing:0}
html.kmt h1{font-weight:900}html.kmt h2,html.kmt h3{font-weight:700}html.kmt h4,html.kmt h5,html.kmt h6{font-weight:600}

/* numbers, money, codes, ids: own LTR island inside RTL text */
.k-num,.k-mono,.k-ltr{direction:ltr;unicode-bidi:isolate;font-variant-numeric:tabular-nums}
.k-mono{font-family:var(--k-mono);font-size:.94em}
/* emails, codes, urls typed by the user: Latin digits */
html.kmt input.k-ltr,html.kmt .k-input.k-ltr,.k-latin{font-family:var(--k-latin)!important}

.k-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.k-ico{width:20px;height:20px;flex-shrink:0;display:inline-block;vertical-align:middle}
.k-grad-text{background:var(--k-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.k-gold{color:var(--k-gold)}
.k-hair{height:1px;border:0;margin:var(--k-s6) 0;background:linear-gradient(90deg,transparent,var(--k-gold-line),transparent)}
.k-muted{color:var(--k-text-2)}
.k-eyebrow{font-family:var(--k-mono);font-size:11px;letter-spacing:3px;text-transform:uppercase;color:var(--k-accent);direction:ltr;unicode-bidi:isolate;display:inline-block}

/* ---------- 4. Buttons ---------- */
.k-btn{
  --_h:42px;
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:var(--_h);padding:0 18px;border-radius:var(--k-r);
  font:600 var(--k-fs-base)/1 var(--k-font);white-space:nowrap;cursor:pointer;
  border:1px solid transparent;text-decoration:none!important;position:relative;
  transition:background-color var(--k-t) var(--k-ease),border-color var(--k-t) var(--k-ease),color var(--k-t) var(--k-ease),box-shadow var(--k-t) var(--k-ease),transform var(--k-t-fast) var(--k-ease);
}
.k-btn .k-ico{width:18px;height:18px}
.k-btn:active{transform:translateY(1px)}
.k-btn:focus-visible{outline:0;box-shadow:var(--k-focus)}
.k-btn[disabled],.k-btn.is-disabled{opacity:.5;pointer-events:none}
.k-btn--primary{background:var(--k-btn-primary);color:var(--k-btn-primary-text)!important;box-shadow:0 10px 26px -14px rgba(34,211,238,.7)}
.k-btn--primary:hover{box-shadow:0 14px 34px -14px rgba(34,211,238,.85);filter:saturate(1.08)}
.k-btn--secondary{background:var(--k-surface-2);border-color:var(--k-line-2);color:var(--k-text)!important}
.k-btn--secondary:hover{border-color:var(--k-accent-line);color:var(--k-accent-ink)!important}
.k-btn--danger{background:var(--k-danger-soft);border-color:color-mix(in srgb,var(--k-danger) 45%,transparent);color:var(--k-danger)!important}
.k-btn--danger:hover{background:var(--k-danger);color:#fff!important}
.k-btn--text{background:transparent;color:var(--k-accent-ink)!important;padding:0 10px}
.k-btn--text:hover{background:var(--k-accent-soft)}
.k-btn--sm{--_h:34px;padding:0 12px;font-size:var(--k-fs-sm);border-radius:var(--k-r-sm)}
.k-btn--lg{--_h:50px;padding:0 26px;font-size:var(--k-fs-md);border-radius:var(--k-r-md)}
.k-btn--block{display:flex;width:100%}
.k-btn--icon{width:var(--_h);padding:0}
.k-btn.is-loading{color:transparent!important;pointer-events:none}
.k-btn.is-loading::after{
  content:"";position:absolute;inset:0;margin:auto;width:18px;height:18px;border-radius:50%;
  border:2px solid currentColor;border-color:var(--k-btn-primary-text) transparent var(--k-btn-primary-text) transparent;
  animation:k-spin .8s linear infinite;
}
.k-btn--secondary.is-loading::after,.k-btn--text.is-loading::after{border-color:var(--k-text) transparent var(--k-text) transparent}
.k-btn--danger.is-loading::after{border-color:var(--k-danger) transparent var(--k-danger) transparent}
.k-btn-group{display:inline-flex;gap:var(--k-s2);flex-wrap:wrap}
@keyframes k-spin{to{transform:rotate(360deg)}}

/* ---------- 5. Fields ---------- */
.k-field{display:grid;gap:6px;margin-bottom:var(--k-s5)}
.k-label{font-size:var(--k-fs-sm);font-weight:600;color:var(--k-text);display:flex;align-items:center;justify-content:space-between;gap:8px}
.k-label .k-req{color:var(--k-danger);margin-inline-start:2px}
.k-hint{font-size:var(--k-fs-xs);color:var(--k-text-3);line-height:1.7}
.k-error{font-size:var(--k-fs-xs);color:var(--k-danger);display:flex;align-items:center;gap:6px;line-height:1.7}
.k-error .k-ico{width:14px;height:14px}
html.kmt .k-input,html.kmt .k-select,html.kmt .k-textarea{
  width:100%;min-height:46px;padding:10px 14px;border-radius:var(--k-r);
  background:var(--k-surface-2);border:1px solid var(--k-line-2);color:var(--k-text);
  font:400 16px/1.6 var(--k-font);  /* 16px: iOS does not zoom */
  transition:border-color var(--k-t) var(--k-ease),box-shadow var(--k-t) var(--k-ease),background-color var(--k-t) var(--k-ease);
  -webkit-appearance:none;appearance:none;
}
html.kmt .k-textarea{min-height:110px;resize:vertical}
html.kmt .k-input::placeholder,html.kmt .k-textarea::placeholder{color:var(--k-text-3);opacity:1}
html.kmt .k-input:hover,html.kmt .k-select:hover,html.kmt .k-textarea:hover{border-color:color-mix(in srgb,var(--k-accent) 30%,var(--k-line-2))}
html.kmt .k-input:focus,html.kmt .k-select:focus,html.kmt .k-textarea:focus{outline:0;border-color:var(--k-accent);box-shadow:var(--k-focus);background:var(--k-surface)}
html.kmt .k-field.has-error .k-input,html.kmt .k-input[aria-invalid="true"]{border-color:var(--k-danger)}
html.kmt .k-field.has-error .k-input:focus{box-shadow:0 0 0 3px var(--k-danger-soft)}
html.kmt .k-select{
  padding-inline-end:40px;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%2393a1bd' stroke-width='1.8' stroke-linecap='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-size:18px;background-position:left 14px center;
}
html.kmt[dir="ltr"] .k-select{background-position:right 14px center}
html.kmt .k-input-wrap{position:relative;display:flex;align-items:center}
html.kmt .k-input-wrap>.k-ico{position:absolute;inset-inline-start:14px;color:var(--k-text-3);pointer-events:none;width:18px;height:18px}
html.kmt .k-input-wrap>.k-ico~.k-input{padding-inline-start:42px}
html.kmt .k-input-wrap .k-input-act{
  position:absolute;inset-inline-end:6px;width:36px;height:36px;border-radius:var(--k-r-sm);
  display:grid;place-items:center;border:0;background:transparent;color:var(--k-text-3);cursor:pointer;
}
html.kmt .k-input-wrap .k-input-act:hover{color:var(--k-text);background:var(--k-neutral-soft)}
html.kmt .k-input-wrap .k-input-act:focus-visible{outline:0;box-shadow:var(--k-focus)}
html.kmt .k-input-wrap .k-input-act~.k-input,html.kmt .k-input-wrap .k-input:has(~.k-input-act){padding-inline-end:46px}
html.kmt .k-input.k-num{text-align:left}

/* checkbox */
.k-check{display:inline-flex;align-items:flex-start;gap:10px;cursor:pointer;font-size:var(--k-fs-base);color:var(--k-text);line-height:1.6;user-select:none}
.k-check input{
  -webkit-appearance:none;appearance:none;margin:2px 0 0;flex-shrink:0;width:20px;height:20px;border-radius:6px;
  border:1.5px solid var(--k-line-2);background:var(--k-surface-2);display:grid;place-items:center;cursor:pointer;
  transition:background-color var(--k-t-fast),border-color var(--k-t-fast);
}
.k-check input::after{content:"";width:10px;height:5px;border-bottom:2px solid var(--k-text-inv);border-left:2px solid var(--k-text-inv);transform:rotate(-45deg) scale(0);transition:transform var(--k-t-fast) var(--k-ease);margin-top:-3px}
.k-check input:checked{background:var(--k-accent);border-color:var(--k-accent)}
.k-check input:checked::after{transform:rotate(-45deg) scale(1)}
.k-check input:indeterminate::after{width:10px;height:0;border-left:0;transform:none;margin-top:0}
.k-check input:focus-visible{outline:0;box-shadow:var(--k-focus)}
.k-check input:disabled{opacity:.5}

/* switch */
.k-switch{display:inline-flex;align-items:center;gap:12px;cursor:pointer;user-select:none}
.k-switch input{
  -webkit-appearance:none;appearance:none;margin:0;width:44px;height:26px;border-radius:var(--k-r-pill);
  background:var(--k-line-2);position:relative;cursor:pointer;flex-shrink:0;transition:background-color var(--k-t) var(--k-ease);
}
.k-switch input::after{content:"";position:absolute;top:3px;inset-inline-start:3px;width:20px;height:20px;border-radius:50%;background:#fff;box-shadow:0 1px 3px rgba(0,0,0,.3);transition:inset-inline-start var(--k-t) var(--k-ease)}
.k-switch input:checked{background:var(--k-accent)}
.k-switch input:checked::after{inset-inline-start:21px}
.k-switch input:focus-visible{outline:0;box-shadow:var(--k-focus)}

/* password field extras */
.k-input-act .k-ico--hide{display:none}
.k-input-act.is-on .k-ico--hide{display:inline-block}
.k-input-act.is-on .k-ico--show{display:none}
.k-meter{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;margin-top:2px}
.k-meter i{height:4px;border-radius:4px;background:var(--k-line);transition:background-color var(--k-t)}
.k-meter[data-score="1"] i:nth-child(-n+1){background:var(--k-danger)}
.k-meter[data-score="2"] i:nth-child(-n+2){background:var(--k-warning)}
.k-meter[data-score="3"] i:nth-child(-n+3){background:var(--k-info)}
.k-meter[data-score="4"] i{background:var(--k-success)}
.k-recaptcha{margin-bottom:var(--k-s5)}

/* Jalali date picker */
.k-jdate{position:relative}
.k-jdate .k-input{cursor:pointer}
.k-cal{
  position:absolute;z-index:1060;top:calc(100% + 6px);inset-inline-start:0;width:300px;padding:12px;
  background:var(--k-surface);border:1px solid var(--k-line-2);border-radius:var(--k-r-md);box-shadow:var(--k-shadow-lg);
}
.k-cal__head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.k-cal__head b{font-size:var(--k-fs-base);font-weight:700}
.k-cal__grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;text-align:center}
.k-cal__wd{font-size:var(--k-fs-xs);color:var(--k-text-3);padding:4px 0}
.k-cal__day{height:36px;border:0;border-radius:10px;background:transparent;color:var(--k-text);font:400 var(--k-fs-sm)/1 var(--k-font);cursor:pointer}
.k-cal__day:hover{background:var(--k-accent-soft)}
.k-cal__day:focus-visible{outline:0;box-shadow:var(--k-focus)}
.k-cal__day.is-fri{color:var(--k-danger)}
.k-cal__day.is-today{box-shadow:inset 0 0 0 1px var(--k-gold-line);color:var(--k-gold);font-weight:700}
.k-cal__day.is-sel{background:var(--k-accent);color:var(--k-text-inv);font-weight:700}
.k-cal__foot{display:flex;justify-content:space-between;margin-top:8px;padding-top:8px;border-top:1px solid var(--k-line)}

/* ---------- 6. Cards & KPI ---------- */
.k-card{
  background:var(--k-surface);border:1px solid var(--k-line);border-radius:var(--k-r-lg);
  box-shadow:var(--k-shadow-sm);position:relative;
}
.k-card__head{display:flex;align-items:center;justify-content:space-between;gap:var(--k-s3);padding:var(--k-s5) var(--k-s6);border-bottom:1px solid var(--k-line)}
.k-card__title{margin:0;font-size:var(--k-fs-md);font-weight:700;display:flex;align-items:center;gap:10px}
.k-card__title .k-ico{color:var(--k-accent)}
.k-card__sub{margin:2px 0 0;font-size:var(--k-fs-sm);color:var(--k-text-2)}
.k-card__body{padding:var(--k-s6)}
.k-card__foot{padding:var(--k-s4) var(--k-s6);border-top:1px solid var(--k-line);display:flex;gap:var(--k-s2);justify-content:flex-end;flex-wrap:wrap}
.k-card--premium{border-color:var(--k-gold-line)}
.k-card--premium::before{content:"";position:absolute;inset-inline:24px;top:-1px;height:1px;background:linear-gradient(90deg,transparent,var(--k-gold),transparent)}
.k-card--hover{transition:border-color var(--k-t) var(--k-ease),box-shadow var(--k-t) var(--k-ease),transform var(--k-t) var(--k-ease)}
.k-card--hover:hover{border-color:var(--k-accent-line);box-shadow:var(--k-shadow);transform:translateY(-2px)}

.k-kpi{padding:var(--k-s5) var(--k-s6);display:grid;gap:6px;overflow:hidden}
.k-kpi__top{display:flex;align-items:center;justify-content:space-between;gap:8px}
.k-kpi__label{font-size:var(--k-fs-sm);color:var(--k-text-2);font-weight:600}
.k-kpi__ico{width:38px;height:38px;border-radius:var(--k-r);display:grid;place-items:center;background:var(--k-accent-soft);color:var(--k-accent);border:1px solid var(--k-accent-line)}
.k-kpi__ico .k-ico{width:19px;height:19px}
.k-kpi__value{font-size:var(--k-fs-2xl);font-weight:900;line-height:1.25;color:var(--k-text);direction:ltr;unicode-bidi:isolate;text-align:right;font-variant-numeric:tabular-nums}
.k-kpi__value small{font-size:var(--k-fs-sm);font-weight:600;color:var(--k-text-2);margin-inline-start:4px}
.k-kpi__meta{display:flex;align-items:center;justify-content:space-between;gap:8px;font-size:var(--k-fs-xs);color:var(--k-text-3)}
.k-trend{display:inline-flex;align-items:center;gap:4px;font-weight:700;font-size:var(--k-fs-xs);padding:2px 8px;border-radius:var(--k-r-pill);direction:ltr;unicode-bidi:isolate}
.k-trend .k-ico{width:13px;height:13px}
.k-trend--up{color:var(--k-success);background:var(--k-success-soft)}
.k-trend--down{color:var(--k-danger);background:var(--k-danger-soft)}
.k-trend--flat{color:var(--k-text-2);background:var(--k-neutral-soft)}
.k-spark{width:100%;height:40px;display:block;color:var(--k-accent)}
.k-spark path.k-spark__area{fill:url(#k-spark-fill);stroke:none;opacity:.35}
.k-spark path.k-spark__line{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.k-progress{height:6px;border-radius:var(--k-r-pill);background:var(--k-line);overflow:hidden}
.k-progress>i{display:block;height:100%;border-radius:inherit;background:var(--k-grad)}

/* grid helpers */
.k-grid{display:grid;gap:var(--k-s5)}
.k-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}
.k-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}
.k-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:1180px){.k-cols-4{grid-template-columns:repeat(2,minmax(0,1fr))}.k-cols-3{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:640px){.k-cols-2,.k-cols-3,.k-cols-4{grid-template-columns:minmax(0,1fr)}}
.k-stack{display:grid;gap:var(--k-s4)}
.k-row{display:flex;align-items:center;gap:var(--k-s3);flex-wrap:wrap}
.k-spacer{flex:1}

/* ---------- 7. Badge, chip, avatar ---------- */
.k-badge{
  display:inline-flex;align-items:center;gap:6px;padding:3px 10px;border-radius:var(--k-r-pill);
  font-size:var(--k-fs-xs);font-weight:600;line-height:1.6;white-space:nowrap;
  background:var(--k-neutral-soft);color:var(--k-text-2);border:1px solid transparent;
}
.k-badge::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex-shrink:0}
.k-badge--plain::before{display:none}
.k-badge--success{background:var(--k-success-soft);color:var(--k-success)}
.k-badge--warning{background:var(--k-warning-soft);color:var(--k-warning)}
.k-badge--danger{background:var(--k-danger-soft);color:var(--k-danger)}
.k-badge--info{background:var(--k-info-soft);color:var(--k-info)}
.k-badge--accent{background:var(--k-accent-soft);color:var(--k-accent-ink)}
.k-badge--gold{background:var(--k-gold-soft);color:var(--k-gold);border-color:var(--k-gold-line)}
.k-badge--gold::before{display:none}
.k-chip{display:inline-flex;align-items:center;gap:8px;padding:5px 12px;border-radius:var(--k-r-pill);border:1px solid var(--k-line-2);background:var(--k-surface-2);font-size:var(--k-fs-sm);color:var(--k-text-2)}

.k-avatar{
  --_s:36px;width:var(--_s);height:var(--_s);border-radius:50%;flex-shrink:0;
  display:inline-grid;place-items:center;overflow:hidden;font-weight:700;font-size:calc(var(--_s) * .38);
  background:var(--k-surface-3);color:var(--k-text);border:1px solid var(--k-line-2);
}
.k-avatar img{width:100%;height:100%;object-fit:cover}
.k-avatar--sm{--_s:28px}.k-avatar--lg{--_s:48px}
.k-avatar--ring{box-shadow:0 0 0 2px var(--k-surface),0 0 0 3px var(--k-gold-line)}
.k-avatars{display:inline-flex}
.k-avatars .k-avatar{margin-inline-start:-8px;box-shadow:0 0 0 2px var(--k-surface)}
.k-avatars .k-avatar:first-child{margin-inline-start:0}

/* ---------- 8. Tabs, breadcrumb ---------- */
.k-tabs{display:flex;gap:4px;border-bottom:1px solid var(--k-line);overflow-x:auto;scrollbar-width:none}
.k-tabs::-webkit-scrollbar{display:none}
.k-tab{
  position:relative;padding:12px 16px;border:0;background:none;color:var(--k-text-2);font:600 var(--k-fs-base)/1.4 var(--k-font);
  cursor:pointer;white-space:nowrap;transition:color var(--k-t) var(--k-ease);
}
.k-tab::after{content:"";position:absolute;inset-inline:12px;bottom:-1px;height:2px;border-radius:2px;background:var(--k-grad);transform:scaleX(0);transition:transform var(--k-t) var(--k-ease)}
.k-tab:hover{color:var(--k-text)}
.k-tab[aria-selected="true"]{color:var(--k-text)}
.k-tab[aria-selected="true"]::after{transform:scaleX(1)}
.k-tab:focus-visible{outline:0;box-shadow:inset 0 0 0 2px var(--k-accent-line);border-radius:var(--k-r-sm)}
.k-tabpanel{padding-top:var(--k-s5)}
.k-tabpanel[hidden]{display:none}
.k-seg{display:inline-flex;padding:4px;border-radius:var(--k-r);background:var(--k-surface-2);border:1px solid var(--k-line)}
.k-seg button{border:0;background:none;padding:6px 14px;border-radius:9px;color:var(--k-text-2);font:600 var(--k-fs-sm)/1.4 var(--k-font);cursor:pointer;display:inline-flex;align-items:center;gap:6px}
.k-seg button .k-ico{width:16px;height:16px}
.k-seg button[aria-pressed="true"]{background:var(--k-surface);color:var(--k-text);box-shadow:var(--k-shadow-sm)}

.k-crumbs{display:flex;align-items:center;gap:6px;font-size:var(--k-fs-sm);color:var(--k-text-3);flex-wrap:wrap;margin:0;padding:0;list-style:none}
.k-crumbs a{color:var(--k-text-2)!important;text-decoration:none!important}
.k-crumbs a:hover{color:var(--k-accent-ink)!important}
.k-crumbs li{display:inline-flex;align-items:center;gap:6px}
.k-crumbs li+li::before{content:"";width:6px;height:6px;border-top:1.5px solid var(--k-text-3);border-left:1.5px solid var(--k-text-3);transform:rotate(-45deg);opacity:.7}
[dir="ltr"] .k-crumbs li+li::before{transform:rotate(135deg)}
.k-crumbs [aria-current="page"]{color:var(--k-text);font-weight:600}

/* ---------- 9. Data table ---------- */
.k-table-card{overflow:hidden}
.k-toolbar{display:flex;align-items:center;gap:var(--k-s3);flex-wrap:wrap;padding:var(--k-s4) var(--k-s5);border-bottom:1px solid var(--k-line)}
.k-toolbar .k-input-wrap{flex:1 1 220px;max-width:340px}
.k-toolbar .k-input{min-height:40px;padding-block:6px}
.k-table-wrap{overflow:auto;max-height:var(--k-table-max,560px);-webkit-overflow-scrolling:touch}
.k-table{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--k-fs-base)}
.k-table th,.k-table td{padding:13px 16px;text-align:start;border-bottom:1px solid var(--k-line);vertical-align:middle;line-height:1.6}
.k-table thead th{
  position:sticky;top:0;z-index:2;background:var(--k-surface-2);color:var(--k-text-2);
  font-size:var(--k-fs-sm);font-weight:600;white-space:nowrap;
}
.k-table tbody tr{transition:background-color var(--k-t-fast)}
.k-table tbody tr:hover{background:var(--k-accent-soft)}
.k-table tbody tr:last-child td{border-bottom:0}
.k-table td.k-num,.k-table th.k-num{text-align:left}
.k-th-sort{display:inline-flex;align-items:center;gap:6px;border:0;background:none;color:inherit;font:inherit;cursor:pointer;padding:0}
.k-th-sort .k-ico{width:14px;height:14px;opacity:.45;transition:transform var(--k-t-fast),opacity var(--k-t-fast)}
.k-th-sort[aria-sort="ascending"] .k-ico,.k-th-sort[aria-sort="descending"] .k-ico{opacity:1;color:var(--k-accent)}
th[aria-sort="descending"] .k-th-sort .k-ico{transform:scaleY(-1)}
th[aria-sort] {color:var(--k-text)}
.k-table .k-row-title{font-weight:600;color:var(--k-text)}
.k-table .k-row-sub{display:block;font-size:var(--k-fs-xs);color:var(--k-text-3)}
.k-pager{display:flex;align-items:center;justify-content:space-between;gap:var(--k-s3);flex-wrap:wrap;padding:var(--k-s3) var(--k-s5);border-top:1px solid var(--k-line);font-size:var(--k-fs-sm);color:var(--k-text-2)}
.k-pager__nav{display:inline-flex;gap:4px}
.k-pager__nav button{min-width:34px;height:34px;padding:0 8px;border-radius:var(--k-r-sm);border:1px solid var(--k-line);background:var(--k-surface);color:var(--k-text-2);font:600 var(--k-fs-sm)/1 var(--k-font);cursor:pointer;direction:ltr;unicode-bidi:isolate}
.k-pager__nav button:hover{border-color:var(--k-accent-line);color:var(--k-text)}
.k-pager__nav button[aria-current="page"]{background:var(--k-accent-soft);border-color:var(--k-accent-line);color:var(--k-accent-ink)}
.k-pager__nav button:disabled{opacity:.4;pointer-events:none}

/* skeleton */
.k-skel{display:block;border-radius:8px;height:12px;background:linear-gradient(90deg,var(--k-skel-a) 0%,var(--k-skel-b) 50%,var(--k-skel-a) 100%);background-size:200% 100%;animation:k-shimmer 1.4s ease-in-out infinite}
.k-skel--title{height:18px;width:40%}
.k-skel--circle{border-radius:50%;width:36px;height:36px}
@keyframes k-shimmer{0%{background-position:200% 0}100%{background-position:-200% 0}}

/* states: empty / error / loading */
.k-state{display:grid;justify-items:center;text-align:center;gap:10px;padding:var(--k-s12) var(--k-s6);color:var(--k-text-2)}
.k-state__ico{width:64px;height:64px;border-radius:20px;display:grid;place-items:center;background:var(--k-surface-2);border:1px solid var(--k-line);color:var(--k-accent);margin-bottom:6px;position:relative}
.k-state__ico::after{content:"";position:absolute;inset:-7px;border-radius:24px;border:1px dashed var(--k-line-2)}
.k-state__ico .k-ico{width:28px;height:28px}
.k-state h3,.k-state__title{margin:0;font-size:var(--k-fs-lg);font-weight:700;color:var(--k-text)}
.k-state p{margin:0;max-width:420px;font-size:var(--k-fs-base)}
.k-state--error .k-state__ico{color:var(--k-danger)}
.k-state .k-btn-group{margin-top:8px}

/* ---------- 10. Overlays: dropdown/menu, modal, drawer, toast ---------- */
.k-menu{
  min-width:220px;padding:6px;border-radius:var(--k-r-md);background:var(--k-glass);
  -webkit-backdrop-filter:blur(16px) saturate(1.2);backdrop-filter:blur(16px) saturate(1.2);
  border:1px solid var(--k-line-2);box-shadow:var(--k-shadow-lg);
}
.k-menu a,.k-menu button.k-menu__item{
  display:flex;align-items:center;gap:10px;width:100%;padding:9px 12px;border-radius:var(--k-r-sm);border:0;background:none;
  color:var(--k-text)!important;font:400 var(--k-fs-base)/1.5 var(--k-font);text-decoration:none!important;cursor:pointer;text-align:start;
}
.k-menu a .k-ico,.k-menu button.k-menu__item .k-ico{width:18px;height:18px;color:var(--k-text-3)}
.k-menu a:hover,.k-menu a:focus,.k-menu button.k-menu__item:hover{background:var(--k-accent-soft);outline:0}
.k-menu a:hover .k-ico{color:var(--k-accent)}
.k-menu__sep{height:1px;margin:6px 4px;background:var(--k-line)}
.k-menu__head{padding:10px 12px 8px;display:flex;align-items:center;gap:10px}
.k-menu__head b{display:block;font-size:var(--k-fs-base);line-height:1.5}
.k-menu__head small{display:block;color:var(--k-text-3);font-size:var(--k-fs-xs);direction:ltr;unicode-bidi:isolate;text-align:right}
.k-menu .is-danger,.k-menu .is-danger .k-ico{color:var(--k-danger)!important}

.k-backdrop{position:fixed;inset:0;z-index:var(--k-z-overlay);background:var(--k-overlay);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);opacity:0;visibility:hidden;transition:opacity var(--k-t) var(--k-ease),visibility var(--k-t)}
.k-backdrop.is-open{opacity:1;visibility:visible}
.k-modal{
  position:fixed;z-index:var(--k-z-modal);top:50%;left:50%;width:min(560px,calc(100vw - 32px));max-height:calc(100dvh - 48px);overflow:auto;
  background:var(--k-surface);border:1px solid var(--k-line-2);border-radius:var(--k-r-lg);box-shadow:var(--k-shadow-lg);
  transform:translate(-50%,-48%) scale(.98);opacity:0;visibility:hidden;transition:transform var(--k-t-slow) var(--k-ease),opacity var(--k-t) var(--k-ease),visibility var(--k-t);
}
.k-modal.is-open{transform:translate(-50%,-50%);opacity:1;visibility:visible}
.k-modal__head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:var(--k-s5) var(--k-s6);border-bottom:1px solid var(--k-line)}
.k-modal__head h2{margin:0;font-size:var(--k-fs-lg)}
.k-modal__body{padding:var(--k-s6)}
.k-modal__foot{display:flex;justify-content:flex-end;gap:var(--k-s2);padding:var(--k-s4) var(--k-s6);border-top:1px solid var(--k-line);flex-wrap:wrap}
.k-close{width:36px;height:36px;border-radius:var(--k-r-sm);display:grid;place-items:center;border:0;background:transparent;color:var(--k-text-2);cursor:pointer}
.k-close:hover{background:var(--k-neutral-soft);color:var(--k-text)}
.k-close:focus-visible{outline:0;box-shadow:var(--k-focus)}
.k-drawer{
  position:fixed;z-index:var(--k-z-modal);top:0;bottom:0;inset-inline-end:0;width:min(440px,100vw);
  background:var(--k-surface);border-inline-start:1px solid var(--k-line-2);box-shadow:var(--k-shadow-lg);
  display:flex;flex-direction:column;transform:translateX(-100%);visibility:hidden;transition:transform var(--k-t-slow) var(--k-ease),visibility var(--k-t-slow);
}
[dir="ltr"] .k-drawer{transform:translateX(100%)}
.k-drawer.is-open{transform:none;visibility:visible}
.k-drawer .k-modal__body{flex:1;overflow:auto}

.k-toasts{position:fixed;z-index:var(--k-z-toast);bottom:20px;inset-inline-start:20px;display:grid;gap:10px;width:min(380px,calc(100vw - 32px));pointer-events:none}
.k-toast{
  pointer-events:auto;display:flex;align-items:flex-start;gap:12px;padding:14px 16px;border-radius:var(--k-r-md);
  background:var(--k-glass);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);
  border:1px solid var(--k-line-2);border-inline-start:3px solid var(--k-accent);box-shadow:var(--k-shadow-lg);color:var(--k-text);
  animation:k-toast-in var(--k-t-slow) var(--k-ease) both;
}
.k-toast .k-ico{color:var(--k-accent);margin-top:2px}
.k-toast b{display:block;font-size:var(--k-fs-base);line-height:1.6}
.k-toast p{margin:0;font-size:var(--k-fs-sm);color:var(--k-text-2);line-height:1.7}
.k-toast--success{border-inline-start-color:var(--k-success)}.k-toast--success .k-ico{color:var(--k-success)}
.k-toast--danger{border-inline-start-color:var(--k-danger)}.k-toast--danger .k-ico{color:var(--k-danger)}
.k-toast--warning{border-inline-start-color:var(--k-warning)}.k-toast--warning .k-ico{color:var(--k-warning)}
.k-toast.is-leaving{animation:k-toast-out var(--k-t) var(--k-ease) both}
@keyframes k-toast-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes k-toast-out{to{opacity:0;transform:translateY(8px)}}

/* ---------- 11. Timeline ---------- */
.k-timeline{list-style:none;margin:0;padding:0;position:relative}
.k-timeline li{position:relative;padding-inline-start:28px;padding-bottom:var(--k-s5)}
.k-timeline li::before{content:"";position:absolute;inset-inline-start:6px;top:10px;bottom:-4px;width:1px;background:var(--k-line-2)}
.k-timeline li:last-child::before{display:none}
.k-timeline li::after{content:"";position:absolute;inset-inline-start:1px;top:7px;width:11px;height:11px;border-radius:50%;background:var(--k-surface);border:2px solid var(--k-accent)}
.k-timeline li.is-gold::after{border-color:var(--k-gold)}
.k-timeline__text{font-size:var(--k-fs-base);color:var(--k-text);line-height:1.75}
.k-timeline__meta{font-size:var(--k-fs-xs);color:var(--k-text-3);display:flex;gap:10px;flex-wrap:wrap}

/* ---------- 12. Command palette (Ctrl+K) ---------- */
.k-cmdk{position:fixed;inset:0;z-index:var(--k-z-cmdk);display:flex;align-items:flex-start;justify-content:center;padding:12vh 16px 16px;visibility:hidden;pointer-events:none}
.k-cmdk.is-open{visibility:visible;pointer-events:auto}
.k-cmdk__scrim{position:absolute;inset:0;background:var(--k-overlay);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);opacity:0;transition:opacity var(--k-t) var(--k-ease)}
.k-cmdk.is-open .k-cmdk__scrim{opacity:1}
.k-cmdk__box{
  position:relative;width:min(680px,100%);max-height:72vh;display:flex;flex-direction:column;overflow:hidden;
  background:var(--k-surface);border:1px solid var(--k-line-2);border-radius:var(--k-r-lg);box-shadow:var(--k-shadow-lg);
  transform:translateY(-6px) scale(.985);opacity:0;transition:transform var(--k-t) var(--k-ease),opacity var(--k-t) var(--k-ease);
}
.k-cmdk.is-open .k-cmdk__box{transform:none;opacity:1}
.k-cmdk__bar{display:flex;align-items:center;gap:12px;padding:6px 18px;border-bottom:1px solid var(--k-line)}
.k-cmdk__bar>.k-ico{color:var(--k-accent);width:20px;height:20px}
.k-cmdk__results{overflow:auto;padding:8px}
.k-cmdk__foot{display:flex;gap:16px;justify-content:flex-start;padding:10px 18px;border-top:1px solid var(--k-line);font-size:var(--k-fs-xs);color:var(--k-text-3);flex-wrap:wrap}
.k-kbd{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;border-radius:6px;border:1px solid var(--k-line-2);border-bottom-width:2px;background:var(--k-surface-2);font:600 11px/1 var(--k-mono);color:var(--k-text-2);direction:ltr;unicode-bidi:isolate}

/* ---------- 13. Brand mark ---------- */
.k-brand{display:flex;align-items:center;gap:12px;text-decoration:none!important;color:var(--k-text)!important;min-width:0}
.k-brand img,.k-brand svg{width:40px;height:40px;flex-shrink:0}
.k-brand b{display:block;font-size:16px;font-weight:900;line-height:1.35;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.k-brand small{display:block;font-size:10px;color:var(--k-accent);letter-spacing:3px;direction:ltr;unicode-bidi:isolate;text-align:right;font-family:var(--k-mono);line-height:1.4}

/* ---------- 14. Page header ---------- */
.k-page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:var(--k-s4);flex-wrap:wrap;margin-bottom:var(--k-s6)}
.k-page-head h1{margin:4px 0 0;font-size:clamp(22px,2.4vw,30px);font-weight:900}
.k-page-head p{margin:4px 0 0;color:var(--k-text-2)}

/* ---------- 15. Auth (login, reset, 2FA) ---------- */
.k-auth{min-height:100dvh;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.05fr);background:var(--k-bg)}
.k-auth__form{display:flex;flex-direction:column;justify-content:center;padding:var(--k-s10) clamp(20px,6vw,88px);position:relative}
.k-auth__inner{width:100%;max-width:420px;margin:0 auto}
.k-auth__top{position:absolute;top:24px;inset-inline:clamp(20px,6vw,88px);display:flex;align-items:center;justify-content:space-between;gap:12px}
.k-auth__brand-sm{display:none}
.k-auth h1{font-size:clamp(26px,3vw,34px);font-weight:900;margin:0 0 8px;line-height:1.35}
.k-auth__lead{color:var(--k-text-2);margin:0 0 var(--k-s8);font-size:var(--k-fs-md);line-height:1.9}
.k-auth__row{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:-4px 0 var(--k-s6);flex-wrap:wrap}
.k-auth__foot{margin-top:var(--k-s8);font-size:var(--k-fs-sm);color:var(--k-text-3);text-align:center}
.k-auth__foot a{color:var(--k-accent-ink)}
.k-auth a.k-link,.k-link{color:var(--k-accent-ink)!important;text-decoration:none;font-weight:600;font-size:var(--k-fs-sm)}
.k-auth a.k-link:hover,.k-link:hover{text-decoration:underline}
.k-auth__panel{
  position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;
  padding:var(--k-s10) clamp(28px,5vw,72px);color:#e6edf8;
  background:
    radial-gradient(700px 420px at 85% 0%,rgba(34,211,238,.20),transparent 60%),
    radial-gradient(700px 480px at 0% 100%,rgba(139,92,246,.24),transparent 60%),
    linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px) 0 0/44px 44px,
    linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px) 0 0/44px 44px,
    #070c1c;
  border-inline-start:1px solid rgba(42,58,99,.6);
}
.k-auth__panel::after{content:"";position:absolute;inset:auto 0 0 0;height:40%;background:linear-gradient(180deg,transparent,rgba(6,10,23,.6));pointer-events:none}
.k-auth__panel>*{position:relative;z-index:1}
.k-auth__panel .k-brand{color:#e6edf8!important}
.k-auth__panel .k-brand small{color:#22d3ee}
.k-auth__mark{width:min(360px,70%);aspect-ratio:1;margin:var(--k-s8) auto;display:grid;place-items:center;position:relative}
.k-auth__mark img{width:46%;filter:drop-shadow(0 20px 60px rgba(34,211,238,.35))}
.k-auth__mark::before,.k-auth__mark::after{content:"";position:absolute;inset:0;border-radius:50%;border:1px solid rgba(34,211,238,.18)}
.k-auth__mark::after{inset:16%;border-color:rgba(201,164,92,.35);border-style:dashed}
.k-auth__slogan{max-width:460px}
.k-auth__slogan h2{color:#fff;font-size:clamp(24px,2.6vw,34px);font-weight:900;line-height:1.5;margin:10px 0 12px}
.k-auth__slogan p{color:#93a1bd;margin:0;font-size:var(--k-fs-md);line-height:1.95}
.k-auth__seal{display:flex;align-items:center;gap:12px;margin-top:var(--k-s8);padding-top:var(--k-s5);border-top:1px solid rgba(201,164,92,.28);font-size:var(--k-fs-sm);color:#93a1bd}
.k-auth__seal .k-ico{color:#c9a45c}
.k-alert{display:flex;gap:10px;align-items:flex-start;padding:12px 14px;border-radius:var(--k-r);border:1px solid var(--k-line-2);background:var(--k-surface-2);font-size:var(--k-fs-sm);line-height:1.8;margin-bottom:var(--k-s5);color:var(--k-text)}
.k-alert .k-ico{width:18px;height:18px;margin-top:3px}
.k-alert--danger{background:var(--k-danger-soft);border-color:color-mix(in srgb,var(--k-danger) 40%,transparent)}
.k-alert--danger .k-ico{color:var(--k-danger)}
.k-alert--success{background:var(--k-success-soft);border-color:color-mix(in srgb,var(--k-success) 40%,transparent)}
.k-alert--success .k-ico{color:var(--k-success)}
.k-alert--info{background:var(--k-info-soft);border-color:color-mix(in srgb,var(--k-info) 40%,transparent)}
.k-alert--info .k-ico{color:var(--k-info)}
.k-alert p{margin:0}
.k-otp{letter-spacing:.6em;text-align:center;font-family:var(--k-mono);font-size:22px!important;direction:ltr}
@media (max-width:960px){
  .k-auth{grid-template-columns:minmax(0,1fr)}
  .k-auth__panel{display:none}
  .k-auth__brand-sm{display:flex}
  .k-auth__form{justify-content:flex-start;padding-top:110px}
}

/* theme toggle (icon swaps by theme) */
.k-theme-toggle .k-ico--sun{display:none}
html[data-kt="dark"] .k-theme-toggle .k-ico--sun{display:inline-block}
html[data-kt="dark"] .k-theme-toggle .k-ico--moon{display:none}
.k-iconbtn{
  width:40px;height:40px;border-radius:var(--k-r);display:inline-grid;place-items:center;flex-shrink:0;position:relative;
  border:1px solid var(--k-line);background:transparent;color:var(--k-text-2);cursor:pointer;
  transition:color var(--k-t-fast),border-color var(--k-t-fast),background-color var(--k-t-fast);
}
.k-iconbtn:hover{color:var(--k-text);border-color:var(--k-line-2);background:var(--k-neutral-soft)}
.k-iconbtn:focus-visible{outline:0;box-shadow:var(--k-focus)}
.k-iconbtn .k-ico{width:19px;height:19px}
.k-dot{position:absolute;top:6px;inset-inline-end:6px;min-width:17px;height:17px;padding:0 4px;border-radius:9px;background:var(--k-danger);color:#fff;font:700 10px/17px var(--k-font);text-align:center;box-shadow:0 0 0 2px var(--k-surface);direction:ltr}

/* ---------- 16. Error pages ---------- */
.k-errpage{min-height:100dvh;display:grid;place-items:center;padding:24px;background:
  radial-gradient(800px 460px at 85% -10%,var(--k-glow-1),transparent 60%),
  radial-gradient(800px 460px at 0% 110%,var(--k-glow-2),transparent 60%),
  linear-gradient(var(--k-grid-line) 1px,transparent 1px) 0 0/44px 44px,
  linear-gradient(90deg,var(--k-grid-line) 1px,transparent 1px) 0 0/44px 44px,var(--k-bg)}
.k-errpage__box{max-width:560px;text-align:center}
.k-errpage__code{font:900 clamp(72px,14vw,132px)/1 var(--k-font);background:var(--k-grad);-webkit-background-clip:text;background-clip:text;color:transparent;direction:ltr;margin-bottom:8px}
.k-errpage h1{font-size:clamp(22px,3vw,30px);margin:0 0 10px}
.k-errpage p{color:var(--k-text-2);margin:0 0 var(--k-s6)}
.k-errpage pre{text-align:left;direction:ltr;font-size:12px;max-height:200px;overflow:auto;background:var(--k-surface-2);border:1px solid var(--k-line);border-radius:var(--k-r);padding:12px;color:var(--k-text-2)}

/* ---------- 17. Motion preferences ---------- */
@media (prefers-reduced-motion:reduce){
  html.kmt *,html.kmt *::before,html.kmt *::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
}

/* ---------- 18. Catalog page ---------- */
.k-catalog__toc{display:flex;flex-wrap:wrap;gap:6px;padding:10px;margin-bottom:var(--k-s8);position:sticky;top:calc(var(--k-head-h) + 8px);z-index:5;background:var(--k-glass);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
@media (max-width:768px){.k-catalog__toc{position:static;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none}.k-catalog__toc a{white-space:nowrap}}
.k-catalog__toc a{padding:6px 12px;border-radius:var(--k-r-sm);color:var(--k-text-2)!important;font-size:var(--k-fs-sm);text-decoration:none!important}
.k-catalog__toc a:hover{background:var(--k-accent-soft);color:var(--k-text)!important}
.k-catalog__sec{margin-bottom:var(--k-s10);scroll-margin-top:140px}
.k-catalog__h{font-size:var(--k-fs-xl);margin:0 0 var(--k-s4);display:flex;align-items:center;gap:12px}
.k-catalog__h::after{content:"";flex:1;height:1px;background:linear-gradient(90deg,var(--k-gold-line),transparent)}
html[dir="rtl"] .k-catalog__h::after{background:linear-gradient(270deg,var(--k-gold-line),transparent)}
.k-swatches{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:12px}
.k-swatch{display:grid;gap:4px;font-size:var(--k-fs-sm)}
.k-swatch i{height:52px;border-radius:var(--k-r);border:1px solid var(--k-line-2)}
.k-swatch code{font-size:11px;background:none!important;padding:0!important;color:var(--k-text-3)!important}
.k-demo-box{width:72px;height:56px;display:grid;place-items:center;background:var(--k-surface-2);border:1px solid var(--k-line);font-size:var(--k-fs-sm);color:var(--k-text-2)}
.k-errcard{max-width:720px;margin:clamp(24px,8vh,80px) auto}
.k-errcard .k-errpage__code{font-size:clamp(64px,10vw,96px)}
html.kmt .k-auth__panel{--k-text:#e6edf8;--k-text-2:#93a1bd;--k-accent:#22d3ee;--k-accent-ink:#67e8f9;color-scheme:dark}
html.kmt .k-auth__panel h2,html.kmt .k-auth__slogan h2{color:#fff}
html.kmt .k-auth__panel .k-eyebrow{color:#22d3ee}
/* Perfex date field enhanced with the Shamsi picker */
.k-jsrc{position:absolute!important;inset-inline-start:0;bottom:0;width:1px!important;height:1px!important;min-height:0!important;padding:0!important;border:0!important;opacity:0;pointer-events:none}
.k-jdisplay{cursor:pointer}
.k-jdate.input-group{position:relative}
.k-jdate .input-group-addon{cursor:pointer}
.k-cal__day:disabled{opacity:.3;cursor:not-allowed;background:none}
