:root {
  --kinko-ink: #15181c;
  --kinko-ink-soft: #1d2228;
  --kinko-text: #182230;
  --kinko-muted: #697586;
  --kinko-faint: #98a2b3;
  --kinko-line: #e6ebf2;
  --kinko-bg: #f7f9fc;
  --kinko-surface: #ffffff;
  --kinko-blue: #1769ff;
  --kinko-blue-brand: #4f7cff;
  --kinko-blue-soft: #eef4ff;
  --kinko-orange: #ff7a1a;
  --kinko-orange-soft: #fff2e8;
  --kinko-green: #169b62;
  --kinko-red: #d9485b;
  --kinko-radius-sm: 12px;
  --kinko-radius: 18px;
  --kinko-radius-lg: 24px;
  --kinko-shadow: 0 12px 34px rgba(24, 34, 48, .075);
  --kinko-shadow-soft: 0 3px 14px rgba(24, 34, 48, .045);
  --kinko-focus: 0 0 0 4px rgba(23, 105, 255, .18);
  --kinko-surface-elevated: #ffffff;
  --kinko-surface-subtle: #fbfcfe;
  --kinko-surface-muted: #f0f3f7;
  --kinko-line-strong: #dbe2ec;
  --kinko-text-secondary: #536071;
  --kinko-header-bg: rgba(255,255,255,.97);
  --kinko-success-soft: #eaf8f1;
  --kinko-danger-soft: #fff0f2;
  --kinko-rail-width: 228px;
  --kinko-header-height: 76px;
  --kinko-page-max: 1600px;
}

html[data-theme="light"] { color-scheme: light; }
html[data-theme="dark"] {
  color-scheme: dark;
  --kinko-ink: #f3f6fa;
  --kinko-ink-soft: #e7edf5;
  --kinko-text: #e8edf4;
  --kinko-muted: #a8b2bf;
  --kinko-faint: #7f8b99;
  --kinko-line: #2a3643;
  --kinko-bg: #0e131a;
  --kinko-surface: #171f28;
  --kinko-surface-elevated: #1c2631;
  --kinko-surface-subtle: #151d26;
  --kinko-surface-muted: #111820;
  --kinko-line-strong: #394858;
  --kinko-text-secondary: #b5bfcb;
  --kinko-header-bg: rgba(14,19,26,.96);
  --kinko-blue-soft: rgba(79,124,255,.13);
  --kinko-orange-soft: rgba(255,122,26,.13);
  --kinko-success-soft: rgba(22,155,98,.16);
  --kinko-danger-soft: rgba(217,72,91,.16);
  --kinko-shadow: 0 10px 24px rgba(0,0,0,.16);
  --kinko-shadow-soft: 0 2px 9px rgba(0,0,0,.12);
  --kinko-focus: 0 0 0 4px rgba(79,124,255,.28);
}

*, *::before, *::after { box-sizing: border-box; }
html { min-height: 100%; background: var(--kinko-bg); }
body.kinko-v2 {
  min-height: 100vh;
  margin: 0;
  overflow-x: hidden;
  color: var(--kinko-text);
  background: var(--kinko-bg);
  font-family: Inter, ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 14px;
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}
body.kinko-v2 a { color: var(--kinko-blue); text-decoration: none; }
body.kinko-v2 button, body.kinko-v2 input, body.kinko-v2 select, body.kinko-v2 textarea { font: inherit; }
body.kinko-v2 :focus-visible { outline: 0; box-shadow: var(--kinko-focus) !important; }
body.kinko-v2 img, body.kinko-v2 canvas { max-width: 100%; }
.app-wrapper { display: block; min-height: 100vh; }
.kinko-skip-link { position: fixed; z-index: 9999; top: 8px; left: 8px; transform: translateY(-160%); padding: 10px 15px; border-radius: 10px; background: var(--kinko-ink); color: #fff !important; }
.kinko-skip-link:focus { transform: none; }

/* Appearance controls */
.kinko-theme-toggle,
.kinko-landing-theme-toggle {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border: 1px solid var(--kinko-line);
  border-radius: 12px;
  background: var(--kinko-surface);
  color: var(--kinko-muted);
  cursor: pointer;
  transition: border-color .16s ease, background-color .16s ease, color .16s ease;
}
.kinko-theme-toggle:hover,
.kinko-landing-theme-toggle:hover { border-color: var(--kinko-blue); background: var(--kinko-blue-soft); color: var(--kinko-blue); }
.v2-appearance-form { display: grid; gap: 10px; margin: 0 18px; padding: 14px; border: 1px solid var(--kinko-line); border-radius: 13px; background: var(--kinko-surface-subtle); }
.v2-appearance-form fieldset { min-width: 0; margin: 0; padding: 0; border: 0; }
.v2-appearance-form legend { margin: 0; color: var(--kinko-text); font-size: 11px; font-weight: 750; }
.v2-appearance-form p { margin: 2px 0 10px; color: var(--kinko-muted); font-size: 8px; }
.v2-appearance-form > small { color: var(--kinko-muted); font-size: 8px; }
.v2-theme-options { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 7px; }
.v2-theme-options button { display: inline-flex; align-items: center; justify-content: center; gap: 7px; min-height: 42px; padding: 8px 10px; border: 1px solid var(--kinko-line); border-radius: 10px; background: var(--kinko-surface); color: var(--kinko-muted); font-size: 9px; font-weight: 700; }
.v2-theme-options button:hover { border-color: var(--kinko-blue); color: var(--kinko-blue); }
.v2-theme-options button[aria-pressed="true"] { border-color: var(--kinko-blue); background: var(--kinko-blue-soft); color: var(--kinko-blue); box-shadow: inset 0 0 0 1px rgba(23,105,255,.08); }
.kinko-mobile-theme-action { display: flex; align-items: center; justify-content: space-between; gap: 12px; width: 100%; min-height: 48px; padding: 10px 4px; border: 0; border-bottom: 1px solid var(--kinko-line); background: transparent; color: var(--kinko-text); text-align: left; }
.kinko-mobile-theme-action > span:first-child { display: flex; align-items: center; gap: 10px; }
.kinko-mobile-theme-action > span:last-child { color: var(--kinko-muted); font-size: 10px; font-weight: 700; }

/* Approved Kinko logo and mascot */
.kinko-wordmark { display: inline-flex; align-items: center; flex: 0 0 auto; width: 172px; color: var(--kinko-ink) !important; line-height: 1; }
.kinko-wordmark img { display: block; width: 100%; height: auto; }
.kinko-wordmark--dark { width: 172px; }
.kinko-mascot { display: block; width: 190px; max-width: 100%; aspect-ratio: 1; background: url('/assets/img/kinko-v2/husky-sprite-sheet.png') no-repeat; background-size: 400% 400%; }
.kinko-mascot-neutral { background-position: 0 0; }
.kinko-mascot-happy { background-position: 33.333% 0; }
.kinko-mascot-success { background-position: 66.667% 0; }
.kinko-mascot-saving { background-position: 100% 0; }
.kinko-mascot-coins { background-position: 0 33.333%; }
.kinko-mascot-analysis { background-position: 33.333% 33.333%; }
.kinko-mascot-import { background-position: 66.667% 33.333%; }
.kinko-mascot-search { background-position: 100% 33.333%; }
.kinko-mascot-tip { background-position: 0 66.667%; }
.kinko-mascot-goal { background-position: 33.333% 66.667%; }
.kinko-mascot-calendar { background-position: 66.667% 66.667%; }
.kinko-mascot-year { background-position: 100% 66.667%; }
.kinko-mascot-calendar,
.kinko-mascot-year { clip-path: inset(0 0 10px 0); }
.kinko-mascot-empty { background-position: 0 100%; }
.kinko-mascot-error { background-position: 33.333% 100%; }
.kinko-mascot-security {
  background-image: url('/assets/img/kinko-v2/husky-security.png');
  background-position: center;
  background-size: contain;
}
.kinko-mascot-wave { background-position: 100% 100%; }

/* Desktop app shell */
.kinko-brand-rail {
  position: fixed;
  z-index: 1040;
  inset: 0 auto 0 0;
  display: flex;
  flex-direction: column;
  width: var(--kinko-rail-width);
  padding: 24px 22px 20px;
  overflow: hidden;
  border-right: 1px solid var(--kinko-line);
  background: #fff;
}
.kinko-brand-rail-main { position: relative; z-index: 1; margin-top: 22px; }
.kinko-brand-rail .kinko-mascot { width: 164px; margin: 0 auto; filter: drop-shadow(0 15px 18px rgba(24,34,48,.08)); }
.kinko-brand-rail h2 { margin: 16px 0 10px; color: var(--kinko-ink); font-size: 20px; font-weight: 800; line-height: 1.34; letter-spacing: -.04em; }
.kinko-brand-rail h2 em { color: var(--kinko-blue); font-style: normal; }
.kinko-brand-rail-main > p { margin: 0; color: var(--kinko-muted); font-size: 12px; line-height: 1.7; }
.kinko-brand-rail ul { display: grid; gap: 14px; margin: 22px 0 0; padding: 0; list-style: none; }
.kinko-brand-rail li { display: flex; align-items: center; gap: 12px; }
.kinko-brand-rail li > span { display: grid; place-items: center; flex: 0 0 40px; width: 40px; height: 40px; border-radius: 13px; background: var(--kinko-blue-soft); color: var(--kinko-blue); font-size: 17px; box-shadow: var(--kinko-shadow-soft); }
.kinko-brand-rail li > span.is-orange { background: var(--kinko-orange-soft); color: var(--kinko-orange); }
.kinko-brand-rail li div { display: grid; }
.kinko-brand-rail li strong { color: var(--kinko-text); font-size: 12px; }
.kinko-brand-rail li small { margin-top: 2px; color: var(--kinko-muted); font-size: 10px; }
.kinko-brand-landscape { position: absolute; right: -30px; bottom: -32px; left: -30px; height: 150px; border-radius: 55% 55% 0 0; background: linear-gradient(178deg, #fff 8%, #eef4ff 9%, #dce8ff 72%); opacity: .9; }

.kinko-desktop-header {
  position: fixed;
  z-index: 1035;
  top: 0;
  right: 0;
  left: var(--kinko-rail-width);
  height: var(--kinko-header-height);
  margin: 0;
  padding: 0;
  border-bottom: 1px solid var(--kinko-line);
  background: rgba(255,255,255,.97);
  backdrop-filter: blur(16px);
}
.kinko-shell-container { height: 100%; max-width: var(--kinko-page-max); padding: 0 30px; gap: 18px; }
.kinko-desktop-header > .container-fluid > .kinko-wordmark { display: none; }
.kinko-primary-nav { align-self: stretch; display: flex; align-items: stretch; gap: 3px; margin: 0; }
.kinko-primary-nav > li { display: flex; align-items: stretch; }
.kinko-primary-nav a, .kinko-nav-more {
  position: relative;
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 0 13px;
  border: 0;
  background: transparent;
  color: #536071 !important;
  font-size: 12px;
  font-weight: 600;
  white-space: nowrap;
}
.kinko-primary-nav a::after, .kinko-nav-more::after { content: ""; position: absolute; right: 10px; bottom: 0; left: 10px; height: 3px; border-radius: 4px 4px 0 0; background: var(--kinko-blue); transform: scaleX(0); }
.kinko-primary-nav a:hover, .kinko-primary-nav a.is-active, .kinko-nav-more:hover, .kinko-nav-more.is-active { color: var(--kinko-blue) !important; }
.kinko-primary-nav a.is-active::after, .kinko-nav-more.is-active::after { transform: scaleX(1); }
.kinko-primary-nav i { font-size: 16px; }
.kinko-nav-caret { font-size: 10px !important; }
.kinko-header-actions { gap: 8px; }
.kinko-profile-button { display: flex; align-items: center; gap: 9px; min-height: 46px; padding: 4px 8px 4px 4px; border: 1px solid transparent; border-radius: 14px; background: transparent; color: var(--kinko-text); }
.kinko-profile-button:hover { border-color: var(--kinko-line); background: var(--kinko-bg); }
.kinko-avatar { display: grid; place-items: center; width: 38px; height: 38px; overflow: hidden; border: 2px solid #fff; border-radius: 50%; background: var(--kinko-blue-soft); color: var(--kinko-blue); font-weight: 800; box-shadow: 0 0 0 1px var(--kinko-line); }
.kinko-avatar img { width: 100%; height: 100%; object-fit: cover; }
.kinko-profile-copy { display: grid; min-width: 72px; text-align: left; line-height: 1.15; }
.kinko-profile-copy strong { max-width: 110px; overflow: hidden; color: var(--kinko-text); font-size: 11px; text-overflow: ellipsis; }
.kinko-profile-copy small { margin-top: 3px; color: var(--kinko-muted); font-size: 9px; }
.kinko-profile-button > .bi-chevron-down { color: var(--kinko-muted); font-size: 10px; }
.kinko-nav-menu, .kinko-profile-menu { min-width: 230px; padding: 8px; border: 1px solid var(--kinko-line); border-radius: 14px; background: #fff; box-shadow: var(--kinko-shadow); }
.kinko-nav-menu .dropdown-item, .kinko-profile-menu .dropdown-item { display: flex; align-items: center; gap: 10px; min-height: 40px; padding: 8px 10px; border-radius: 9px; color: var(--kinko-text) !important; font-size: 12px; font-weight: 600; }
.kinko-nav-menu .dropdown-item:hover, .kinko-profile-menu .dropdown-item:hover { background: var(--kinko-blue-soft); color: var(--kinko-blue) !important; }

/* New page canvas */
body.kinko-v2 .app-main, .v2-page {
  display: block;
  width: auto;
  min-height: 100vh;
  margin: 0 0 0 var(--kinko-rail-width);
  padding: calc(var(--kinko-header-height) + 28px) clamp(24px, 3vw, 42px) 54px;
  background: var(--kinko-bg);
}
.v2-page { max-width: none; }
.v2-page > * { width: min(100%, calc(var(--kinko-page-max) - var(--kinko-rail-width) - 60px)); margin-right: auto; margin-left: auto; }
.v2-page-head { display: flex; align-items: center; justify-content: space-between; gap: 22px; margin-bottom: 20px; }
.v2-page-head h1 { margin: 0; color: var(--kinko-ink); font-size: clamp(29px, 2.3vw, 38px); font-weight: 800; line-height: 1.08; letter-spacing: -.055em; }
.v2-page-head p { margin: 7px 0 0; color: var(--kinko-muted); font-size: 12px; }
.v2-period-control { display: inline-flex; align-items: center; min-height: 46px; padding: 0 8px 0 13px; border: 1px solid var(--kinko-line); border-radius: 13px; background: #fff; box-shadow: var(--kinko-shadow-soft); }
.v2-period-control > i { margin-right: 7px; color: #536071; }
.v2-period-control select { min-width: 88px; height: 40px; padding: 0 5px; border: 0; outline: 0; background: #fff; color: var(--kinko-text); font-size: 12px; font-weight: 650; appearance: none; }
.v2-period-control select[name="year"] { min-width: 58px; color: var(--kinko-muted); }
.v2-period-control button { display: grid; place-items: center; width: 38px; height: 38px; border: 0; border-radius: 10px; background: transparent; color: var(--kinko-muted); }

.v2-panel, .v2-kpi {
  border: 1px solid var(--kinko-line);
  border-radius: var(--kinko-radius);
  background: var(--kinko-surface);
  box-shadow: var(--kinko-shadow-soft);
}
.v2-section-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 16px; padding: 20px 21px 14px; }
.v2-section-head h2 { margin: 0; color: var(--kinko-text); font-size: 15px; font-weight: 750; letter-spacing: -.02em; }
.v2-section-head p { margin: 4px 0 0; color: var(--kinko-muted); font-size: 10px; }
.v2-section-head > a { padding-top: 2px; color: var(--kinko-blue); font-size: 10px; font-weight: 700; }

.v2-kpi-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 16px; margin-bottom: 18px; }
.v2-kpi { position: relative; min-width: 0; min-height: 172px; padding: 19px; overflow: hidden; }
.v2-kpi-head { display: flex; align-items: center; justify-content: space-between; gap: 12px; color: var(--kinko-text); font-size: 11px; font-weight: 700; }
.v2-kpi-head i { display: grid; place-items: center; width: 32px; height: 32px; border: 1px solid #bfd0ff; border-radius: 50%; color: var(--kinko-blue); font-size: 15px; }
.v2-kpi-orange .v2-kpi-head i { border-color: #ffd0ad; color: var(--kinko-orange); }
.v2-kpi > strong { display: block; margin-top: 8px; color: var(--kinko-ink); font-size: clamp(23px, 2vw, 29px); font-weight: 800; line-height: 1.15; letter-spacing: -.045em; }
.v2-kpi > small { display: block; margin-top: 6px; color: var(--kinko-muted); font-size: 9px; }
.v2-spark { position: absolute; right: 16px; bottom: 12px; left: 16px; height: 38px; overflow: hidden; }
.v2-spark::before { content: ""; position: absolute; inset: auto 0 6px; height: 1px; background: #edf1f7; }
.v2-spark { color: var(--kinko-blue); }
.v2-kpi-orange .v2-spark { color: var(--kinko-orange); }
.v2-spark svg { position: absolute; inset: 0 0 6px; width: 100%; height: 30px; overflow: visible; }
.v2-spark polyline { fill: none; stroke: currentColor; stroke-width: 4; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.v2-bars { position: absolute; right: 18px; bottom: 14px; left: 18px; display: flex; align-items: end; gap: 6px; height: 38px; }
.v2-bars i { flex: 1; height: 35%; border-radius: 3px 3px 0 0; background: #a9c3ff; }
.v2-bars i:nth-child(2) { height: 58%; } .v2-bars i:nth-child(3) { height: 43%; } .v2-bars i:nth-child(4) { height: 74%; } .v2-bars i:nth-child(5) { height: 52%; } .v2-bars i:nth-child(6) { height: 84%; } .v2-bars i:nth-child(7) { height: 66%; }
.v2-kpi-orange .v2-bars i { background: #ffbd8d; }
.v2-mini-ring { position: absolute; right: 18px; bottom: 17px; width: 62px; height: 62px; border-radius: 50%; background: conic-gradient(var(--kinko-blue) calc(var(--value) * 1%), #e8edf4 0); }
.v2-mini-ring::after { content: ""; position: absolute; inset: 10px; border-radius: 50%; background: #fff; }

.v2-dashboard-primary { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(330px, .95fr); gap: 18px; margin-bottom: 18px; }
.v2-trend-panel, .v2-account-overview { min-height: 390px; }
.v2-chart-stage { position: relative; height: 300px; padding: 4px 18px 18px; }
.v2-account-rows { padding: 0 18px; }
.v2-account-row { display: grid; grid-template-columns: max-content minmax(0,1fr) auto 12px; align-items: center; gap: 10px; min-height: 58px; border-bottom: 1px solid #eef1f5; color: var(--kinko-text) !important; }
.v2-account-row:last-child { border-bottom: 0; }
.v2-icon { display: grid; place-items: center; width: 36px; height: 36px; border-radius: 12px; background: var(--kinko-blue-soft); color: var(--kinko-blue); font-size: 16px; }
.v2-icon.is-orange { background: var(--kinko-orange-soft); color: var(--kinko-orange); }
.v2-account-row > span:nth-child(2) { display: grid; min-width: 0; }
.v2-account-row strong { overflow: hidden; color: var(--kinko-text); font-size: 11px; text-overflow: ellipsis; white-space: nowrap; }
.v2-account-row small { margin-top: 2px; color: var(--kinko-muted); font-size: 9px; }
.v2-account-row b { color: var(--kinko-text); font-size: 11px; white-space: nowrap; }
.v2-account-row b.is-negative { color: var(--kinko-orange); }
.v2-account-row > i { color: var(--kinko-faint); font-size: 10px; }
.v2-panel-total { display: flex; align-items: center; justify-content: space-between; margin: 8px 18px 0; padding: 14px 0; border-top: 1px solid var(--kinko-line); font-size: 12px; font-weight: 700; }
.v2-panel-total strong { color: var(--kinko-blue); font-size: 16px; }

.v2-dashboard-secondary { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(360px,.8fr); grid-template-rows: auto auto; align-items: start; gap: 18px; margin-bottom: 18px; }
.v2-dashboard-secondary > .v2-allocation-panel { grid-row: 1 / span 2; }
.v2-dashboard-secondary > .v2-panel { min-height: 0; }
.v2-allocation-layout { display: grid; grid-template-columns: 160px minmax(0,1fr); align-items: center; gap: 13px; padding: 5px 18px 18px; }
.v2-donut-wrap { position: relative; height: 160px; }
.v2-donut-wrap > div { position: absolute; inset: 50% auto auto 50%; display: grid; width: 104px; transform: translate(-50%,-50%); text-align: center; pointer-events: none; }
.v2-donut-wrap strong { overflow: hidden; color: var(--kinko-ink); font-size: 12px; text-overflow: ellipsis; white-space: nowrap; }
.v2-donut-wrap small { color: var(--kinko-muted); font-size: 9px; }
.v2-legend { display: grid; gap: 11px; margin: 0; padding: 0; list-style: none; }
.v2-legend li { display: grid; grid-template-columns: 8px minmax(0,1fr) auto; align-items: center; gap: 7px; color: var(--kinko-muted); font-size: 9px; }
.v2-legend li i { width: 7px; height: 7px; border-radius: 50%; background: var(--kinko-blue); }
.v2-legend li:nth-child(2) i { background: var(--kinko-orange); } .v2-legend li:nth-child(3) i { background: #85adff; } .v2-legend li:nth-child(4) i { background: #303947; }
.v2-legend li strong { color: var(--kinko-text); font-size: 9px; }
.v2-allocation-stack { display: grid; gap: 16px; padding: 4px 20px 20px; }
.v2-allocation-total { display: flex; align-items: end; justify-content: space-between; gap: 14px; padding: 14px 15px; border: 1px solid #cfdbff; border-radius: 13px; background: #f5f8ff; }
.v2-allocation-total span { color: var(--kinko-muted); font-size: 9px; font-weight: 650; }
.v2-allocation-total strong { color: var(--kinko-ink); font-size: 18px; letter-spacing: -.035em; }
.v2-allocation-list { display: grid; gap: 13px; margin: 0; padding: 0; list-style: none; }
.v2-allocation-list li { display: grid; gap: 6px; }
.v2-allocation-list li > div:first-child { display: flex; align-items: center; justify-content: space-between; gap: 12px; min-width: 0; }
.v2-allocation-list li > div:first-child > span { display: flex; align-items: center; min-width: 0; overflow: hidden; color: #536071; font-size: 9px; font-weight: 650; text-overflow: ellipsis; white-space: nowrap; }
.v2-allocation-list li i { flex: 0 0 8px; width: 8px; height: 8px; margin-right: 8px; border-radius: 50%; background: var(--kinko-blue); }
.v2-allocation-list li:nth-child(2) i { background: var(--kinko-orange); }
.v2-allocation-list li:nth-child(3) i { background: #85adff; }
.v2-allocation-list li:nth-child(4) i { background: #303947; }
.v2-allocation-list li:nth-child(5n) i { background: #8b6bd8; }
.v2-allocation-list li strong { color: var(--kinko-text); font-size: 9px; white-space: nowrap; }
.v2-allocation-track { height: 7px; overflow: hidden; border-radius: 999px; background: #edf1f7; }
.v2-allocation-track span { display: block; height: 100%; border-radius: inherit; background: var(--kinko-blue); }
.v2-allocation-list li:nth-child(2) .v2-allocation-track span { background: var(--kinko-orange); }
.v2-allocation-list li:nth-child(3) .v2-allocation-track span { background: #85adff; }
.v2-allocation-list li:nth-child(4) .v2-allocation-track span { background: #303947; }
.v2-allocation-list li:nth-child(5n) .v2-allocation-track span { background: #8b6bd8; }
.v2-month-summary dl { display: grid; gap: 0; margin: 0; padding: 2px 20px; }
.v2-month-summary dl > div { display: flex; justify-content: space-between; gap: 12px; padding: 11px 0; border-bottom: 1px solid #eef1f5; }
.v2-month-summary dt { color: var(--kinko-muted); font-size: 10px; font-weight: 600; }
.v2-month-summary dt i { margin-right: 7px; color: var(--kinko-blue); }
.v2-month-summary dd { margin: 0; color: var(--kinko-blue); font-size: 10px; font-weight: 750; }
.v2-month-summary .is-orange dt i, .v2-month-summary .is-orange dd { color: var(--kinko-orange); }
.v2-summary-result { display: flex; justify-content: space-between; margin: 10px 18px 0; padding: 12px; border: 1px solid #cfdbff; border-radius: 11px; background: #f6f9ff; color: var(--kinko-text); font-size: 11px; font-weight: 700; }
.v2-summary-result strong { color: var(--kinko-blue); }
.v2-text-link { display: block; margin: 14px 20px 18px; color: var(--kinko-blue); text-align: center; font-size: 10px; font-weight: 700; }
.v2-progress-feature { display: flex; align-items: center; gap: 12px; padding: 6px 20px 12px; }
.v2-progress-feature > div { display: grid; }
.v2-progress-feature strong { color: var(--kinko-text); font-size: 18px; }
.v2-progress-feature small { color: var(--kinko-muted); font-size: 9px; }
.v2-progress-track { height: 7px; margin: 4px 20px 0; overflow: hidden; border-radius: 999px; background: #e8edf4; }
.v2-progress-track span { display: block; height: 100%; border-radius: inherit; background: var(--kinko-blue); }
.v2-progress-panel > p { margin: 12px 20px 0; color: var(--kinko-muted); font-size: 10px; }

.v2-mascot-banner { display: grid; grid-template-columns: 145px minmax(0,1fr) auto; align-items: center; gap: 22px; min-height: 150px; padding: 10px 28px; overflow: hidden; border: 1px solid #cbd9ff; border-radius: var(--kinko-radius); background: #f2f6ff; }
.v2-mascot-banner .kinko-mascot { align-self: end; width: 140px; margin-bottom: -22px; }
.v2-mascot-banner h2 { margin: 0; color: var(--kinko-ink); font-size: 18px; font-weight: 800; letter-spacing: -.03em; }
.v2-mascot-banner p { max-width: 650px; margin: 6px 0 0; color: #536071; font-size: 11px; }
.v2-button { display: inline-flex; align-items: center; justify-content: center; min-height: 44px; padding: 10px 17px; border: 0; border-radius: 11px; background: var(--kinko-blue); color: #fff !important; font-size: 11px; font-weight: 750; box-shadow: 0 10px 22px rgba(23,105,255,.2); }
.v2-button:hover { background: #075ce9; }
.v2-empty { display: grid; justify-items: center; padding: 24px; text-align: center; }
.v2-empty .kinko-mascot { width: 110px; }
.v2-empty h3 { margin: 8px 0 3px; font-size: 14px; }
.v2-empty p { margin: 0 0 12px; color: var(--kinko-muted); font-size: 10px; }

/* Accounts */
.v2-page-head > .v2-button { gap: 8px; }
.v2-account-card-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; margin-bottom: 18px; }
.v2-account-card { position: relative; min-width: 0; min-height: 248px; padding: 18px; overflow: hidden; border: 1px solid var(--kinko-line); border-radius: var(--kinko-radius); background: #fff; box-shadow: var(--kinko-shadow-soft); }
.v2-account-card-top { display: grid; grid-template-columns: max-content minmax(0,1fr) auto; align-items: center; gap: 11px; }
.v2-account-card-top h2 { margin: 0; overflow: hidden; color: var(--kinko-text); font-size: 13px; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
.v2-account-card-top p { margin: 2px 0 0; color: var(--kinko-muted); font-size: 9px; }
.v2-institution-mark { display: inline-grid; place-items: center; flex: 0 0 auto; width: 56px; height: 42px; padding: 4px; border-radius: 12px; background: var(--institution-surface,#edf3ff); color: var(--institution-color,#1769ff); font-style: normal; box-shadow: inset 0 0 0 1px rgba(16,24,40,.04); }
.v2-institution-mark img { display: block; width: auto; height: auto; object-fit: contain; }
.v2-institution-mark.is-icon img { max-width: 32px; max-height: 32px; }
.v2-institution-mark.is-wordmark { background: #fff; }
.v2-institution-mark.is-wordmark img { max-width: 48px; max-height: 22px; }
.v2-institution-mark i { font-size: 17px; }
.v2-account-row .v2-institution-mark { width: 44px; height: 34px; border-radius: 10px; }
.v2-account-row .v2-institution-mark.is-icon img { max-width: 25px; max-height: 25px; }
.v2-account-row .v2-institution-mark.is-wordmark img { max-width: 38px; max-height: 17px; }
.v2-balance-group > header .v2-institution-mark { width: 52px; height: 40px; }
.v2-balance-group > header .v2-institution-mark.is-icon img { max-width: 30px; max-height: 30px; }
.v2-balance-group > header .v2-institution-mark.is-wordmark img { max-width: 44px; max-height: 20px; }
.v2-modal-subtitle { margin: 3px 30px 0 0; color: var(--kinko-muted); font-size: 11px; font-weight: 450; }
.v2-institution-picker { display: grid; gap: 10px; }
.v2-institution-search { display: grid; grid-template-columns: 20px minmax(0,1fr); align-items: center; gap: 7px; min-height: 46px; padding: 0 13px; border: 1px solid #dbe2ec; border-radius: 12px; background: #fff; color: var(--kinko-muted); }
.v2-institution-search:focus-within { border-color: #9fbaff; box-shadow: 0 0 0 3px rgba(23,105,255,.11); }
.v2-institution-search input { width: 100%; min-width: 0; border: 0; outline: 0; background: transparent; color: var(--kinko-text); font-size: 13px; }
.v2-institution-choice-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 9px; }
.v2-institution-choice { position: relative; display: grid; grid-template-columns: 56px minmax(0,1fr) 18px; align-items: center; gap: 10px; min-height: 68px; padding: 10px; border: 1px solid var(--kinko-line); border-radius: 14px; background: #fff; cursor: pointer; transition: border-color .16s ease,background .16s ease,box-shadow .16s ease; }
.v2-institution-choice:hover { border-color: #b8caff; background: #f9fbff; }
.v2-institution-choice.is-selected { border-color: var(--kinko-blue); background: #f4f7ff; box-shadow: 0 0 0 2px rgba(23,105,255,.09); }
.v2-institution-choice > input { position: absolute; width: 1px; height: 1px; overflow: hidden; opacity: 0; pointer-events: none; }
.v2-institution-choice > span:nth-of-type(2) { display: grid; min-width: 0; }
.v2-institution-choice strong { color: var(--kinko-text); font-size: 12px; }
.v2-institution-choice small { margin-top: 2px; color: var(--kinko-muted); font-size: 9px; }
.v2-institution-choice > .bi-check-circle-fill { color: var(--kinko-blue); opacity: 0; }
.v2-institution-choice.is-selected > .bi-check-circle-fill { opacity: 1; }
.v2-institution-choice[hidden] { display: none; }
.v2-institution-no-results { margin: 0; padding: 12px; border-radius: 11px; background: var(--kinko-blue-soft); color: var(--kinko-muted); font-size: 10px; }
.v2-custom-account-options { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 12px; margin-top: 12px; padding: 14px; border: 1px solid #d9e3ff; border-radius: 13px; background: #f6f8ff; }
.v2-custom-account-options:not([hidden]) { display: grid; }
.v2-field-help { margin: 6px 0 0; color: var(--kinko-muted); font-size: 10px; }
.v2-icon-button { display: grid; place-items: center; width: 34px; height: 34px; padding: 0; border: 0; border-radius: 9px; background: transparent; color: var(--kinko-muted); }
.v2-icon-button:hover { background: var(--kinko-bg); color: var(--kinko-text); }
.v2-account-balance { display: block; margin-top: 26px; color: var(--kinko-ink); font-size: 23px; font-weight: 800; letter-spacing: -.04em; }
.v2-account-balance.is-negative { color: var(--kinko-orange); }
.v2-account-caption { display: block; margin-top: 4px; color: var(--kinko-muted); font-size: 9px; }
.v2-account-spark { position: relative; height: 44px; margin-top: 10px; overflow: hidden; border-bottom: 1px solid #edf1f7; }
.v2-account-spark { color: var(--kinko-blue); }
.v2-account-card.is-investment .v2-account-spark { color: var(--kinko-orange); }
.v2-account-spark svg { position: absolute; inset: 0 0 3px; width: 100%; height: calc(100% - 3px); overflow: visible; }
.v2-account-spark polyline { fill: none; stroke: currentColor; stroke-width: 4; stroke-linecap: round; stroke-linejoin: round; vector-effect: non-scaling-stroke; }
.v2-account-card footer { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding-top: 12px; color: var(--kinko-muted); font-size: 9px; }
.v2-account-card footer a { font-weight: 700; }
.v2-accounts-middle { display: grid; grid-template-columns: minmax(0,1.3fr) minmax(330px,.7fr); grid-template-rows: auto auto; align-items: start; gap: 18px; margin-bottom: 18px; }
.v2-accounts-middle > .v2-subaccount-panel { grid-row: 1 / span 2; }
.v2-accounts-middle > .v2-panel { min-height: 0; }
.v2-text-button { padding: 3px; border: 0; background: transparent; color: var(--kinko-blue); font-size: 10px; font-weight: 700; }
.v2-subaccount-list { padding: 0 20px 17px; }
.v2-subaccount-item { display: grid; grid-template-columns: 38px minmax(0,1fr) auto 32px; align-items: center; gap: 11px; min-height: 64px; border-bottom: 1px solid #eef1f5; }
.v2-subaccount-item:last-child { border-bottom: 0; }
.v2-subaccount-item > div { min-width: 0; }
.v2-subaccount-item strong { display: block; overflow: hidden; color: var(--kinko-text); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.v2-subaccount-item small { color: var(--kinko-muted); font-size: 8px; }
.v2-subaccount-item .v2-progress-track { height: 5px; margin: 5px 0 0; }
.v2-subaccount-item > b { color: var(--kinko-text); font-size: 9px; white-space: nowrap; }
.v2-total-overview { position: relative; }
.v2-total-overview dl { display: grid; margin: 2px 20px 20px; }
.v2-total-overview dl > div { display: flex; justify-content: space-between; gap: 12px; padding: 13px 0; border-bottom: 1px solid #eef1f5; }
.v2-total-overview dt { color: var(--kinko-muted); font-size: 10px; font-weight: 600; }
.v2-total-overview dd { margin: 0; color: var(--kinko-text); font-size: 11px; font-weight: 750; }
.v2-total-overview dl > div:first-child dd { color: var(--kinko-blue); font-size: 14px; }
.v2-total-overview .v2-section-head > .v2-mini-ring { position: relative; right: auto; bottom: auto; flex: 0 0 auto; }
.v2-accounts-bottom { display: grid; grid-template-columns: minmax(0,1.45fr) minmax(260px,.75fr) minmax(260px,.72fr); align-items: start; gap: 18px; }
.v2-identity-groups { padding: 0 20px 18px; }
.v2-identity-row { display: grid; grid-template-columns: 38px minmax(0,1fr) 34px; align-items: center; gap: 11px; min-height: 61px; border-bottom: 1px solid #eef1f5; }
.v2-identity-row > div { display: grid; min-width: 0; }
.v2-identity-target { overflow: hidden; color: var(--kinko-blue); font-size: 8px; font-weight: 750; text-overflow: ellipsis; white-space: nowrap; }
.v2-identity-row strong { overflow: hidden; color: var(--kinko-text); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.v2-identity-row small { color: var(--kinko-muted); font-size: 8px; }
.v2-alias-list { display: grid; gap: 0; padding: 0 20px 18px; }
.v2-alias-list > div { display: flex; align-items: center; justify-content: space-between; gap: 10px; min-height: 72px; border-bottom: 1px solid #eef1f5; }
.v2-alias-list span { display: grid; }
.v2-alias-list strong { font-size: 10px; }
.v2-alias-list small { color: var(--kinko-muted); font-size: 8px; }
.v2-muted-copy { color: var(--kinko-muted); font-size: 10px; }
.v2-account-insight { display: flex; flex-direction: column; min-height: 320px; padding: 22px; overflow: hidden; border: 1px solid #cad8ff; border-radius: var(--kinko-radius); background: #f1f6ff; }
.v2-account-insight h2 { margin: 0; color: var(--kinko-ink); font-size: 18px; font-weight: 800; letter-spacing: -.035em; }
.v2-account-insight p { margin: 7px 0 0; color: #536071; font-size: 10px; line-height: 1.6; }
.v2-account-insight .kinko-mascot { width: 150px; margin: auto auto -13px; }
.v2-account-insight .v2-button { width: 100%; }
.v2-quiet-empty { display: flex; align-items: center; gap: 10px; padding: 22px 0; color: var(--kinko-muted); }
.v2-quiet-empty i { font-size: 22px; }
.v2-quiet-empty p { margin: 0; font-size: 10px; }
.v2-empty-large { min-height: 470px; }
.v2-empty-large .kinko-mascot { width: 190px; }

/* Monthly */
.v2-monthly-analysis { display: grid; grid-template-columns: 1.08fr .92fr; gap: 18px; margin-bottom: 18px; }
.v2-monthly-analysis > .v2-panel { min-height: 380px; }
.v2-category-chart-layout { display: grid; grid-template-columns: 250px minmax(0,1fr); align-items: center; gap: 20px; padding: 8px 24px 24px; }
.v2-category-chart-layout .v2-donut-wrap { height: 245px; }
.v2-category-chart-layout .v2-donut-wrap > div { width: 128px; }
.v2-category-chart-layout .v2-donut-wrap strong { font-size: 15px; }
.v2-top-categories ol { display: grid; gap: 0; margin: 0; padding: 2px 22px 20px; list-style: none; }
.v2-top-categories li { display: grid; grid-template-columns: 38px 18px minmax(0,1fr) auto; align-items: center; gap: 10px; min-height: 59px; border-bottom: 1px solid #eef1f5; }
.v2-top-categories li:last-child { border-bottom: 0; }
.v2-top-categories li.v2-quiet-empty { grid-template-columns: minmax(0,1fr); justify-items: center; padding: 18px 12px; text-align: center; }
.v2-top-categories li > b { color: var(--kinko-muted); font-size: 10px; }
.v2-top-categories li > div { min-width: 0; }
.v2-top-categories li strong { display: block; color: var(--kinko-text); font-size: 10px; }
.v2-top-categories li .v2-progress-track { height: 5px; margin: 6px 0 0; }
.v2-top-categories li em { color: var(--kinko-text); font-size: 10px; font-style: normal; font-weight: 750; }
.v2-monthly-highlights { display: grid; grid-template-columns: 1fr 1fr .86fr; gap: 18px; margin-bottom: 18px; }
.v2-monthly-highlights > article { min-height: 260px; }
.v2-highlight-list ul { display: grid; gap: 0; margin: 0; padding: 0 20px 18px; list-style: none; }
.v2-highlight-list li { display: flex; align-items: center; gap: 12px; min-height: 58px; border-bottom: 1px solid #eef1f5; }
.v2-highlight-list li:last-child { border-bottom: 0; }
.v2-highlight-list p { margin: 0; color: var(--kinko-muted); font-size: 10px; }
.v2-highlight-list p strong { color: var(--kinko-text); }
.v2-outlook-panel { position: relative; overflow: hidden; }
.v2-outlook-panel dl { position: relative; z-index: 1; display: grid; width: 68%; margin: 2px 20px 20px; }
.v2-outlook-panel dl > div { display: flex; justify-content: space-between; gap: 12px; padding: 12px 0; border-bottom: 1px solid #eef1f5; }
.v2-outlook-panel dt { color: var(--kinko-muted); font-size: 9px; font-weight: 600; }
.v2-outlook-panel dd { margin: 0; color: var(--kinko-blue); font-size: 9px; font-weight: 750; }
.v2-outlook-panel dd.is-orange { color: var(--kinko-orange); }
.v2-outlook-panel .kinko-mascot { position: absolute; right: -16px; bottom: -24px; width: 135px; }
.v2-status-state { display: flex; align-items: center; gap: 11px; margin: 4px 20px 18px; }
.v2-status-state > div { display: grid; }
.v2-status-state strong { font-size: 12px; }
.v2-status-state small { color: var(--kinko-muted); font-size: 9px; }
.v2-month-status-panel form { padding: 0 20px 20px; }
.v2-month-close-action { padding: 0 20px 20px; }
.v2-month-close-action .v2-button { width: 100%; }
.v2-preflight-good { display: flex; gap: 12px; align-items: flex-start; color: var(--kinko-green); }.v2-preflight-good > i { font-size: 24px; }.v2-preflight-good p,.v2-preflight-attention p { margin: 4px 0 0; color: var(--kinko-muted); }.v2-preflight-attention ul { display: grid; gap: 7px; margin: 14px 0 0; padding: 0; list-style: none; }.v2-preflight-attention a { display: flex; justify-content: space-between; gap: 10px; padding: 9px 10px; border: 1px solid var(--kinko-line); border-radius: 9px; background: #fbfcfe; }
.v2-balance-group.is-focused { outline: 3px solid rgba(23,105,255,.2); box-shadow: 0 0 0 6px rgba(23,105,255,.08); transition: box-shadow .2s ease,outline-color .2s ease; }
.v2-inline-actions { display: flex; align-items: center; gap: 4px; }.v2-inline-actions form { margin: 0; }
.v2-import-details { margin-top: 3px; }.v2-import-details summary { width: max-content; color: var(--kinko-blue); font-size: 9px; font-weight: 800; cursor: pointer; }.v2-import-details small { display: block; margin-top: 3px; white-space: normal; }
.v2-recurring-upcoming ul { display: grid; gap: 0; margin: 0; padding: 0 14px 14px; list-style: none; }.v2-recurring-upcoming li { display: grid; grid-template-columns: 44px minmax(0,1fr) auto; align-items: center; gap: 9px; min-height: 54px; border-top: 1px solid var(--kinko-line); }.v2-recurring-upcoming time { color: var(--kinko-blue); font-size: 10px; font-weight: 800; }.v2-recurring-upcoming li span { display: grid; min-width: 0; }.v2-recurring-upcoming li strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 11px; }.v2-recurring-upcoming li small { color: var(--kinko-muted); font-size: 9px; }.v2-recurring-upcoming li b { font-size: 11px; }.v2-recurring-upcoming li.is-empty { display: block; padding: 14px 0; color: var(--kinko-muted); font-size: 10px; }
.v2-yoy-panel { overflow: hidden; }.v2-yoy-metrics { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); border-top: 1px solid var(--kinko-line); border-bottom: 1px solid var(--kinko-line); }.v2-yoy-metrics article { display: grid; gap: 4px; padding: 14px 16px; border-right: 1px solid var(--kinko-line); }.v2-yoy-metrics article:last-child { border-right: 0; }.v2-yoy-metrics span { color: var(--kinko-muted); font-size: 9px; font-weight: 700; }.v2-yoy-metrics strong { font-size: 16px; }.v2-yoy-metrics .is-positive,.v2-yoy-categories .is-positive { color: var(--kinko-green); }.v2-yoy-metrics .is-negative,.v2-yoy-categories .is-negative { color: var(--kinko-red); }.v2-yoy-categories { display: grid; grid-template-columns: 180px 1fr; gap: 16px; padding: 14px 16px; }.v2-yoy-categories > strong { font-size: 10px; }.v2-yoy-categories ul { display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }.v2-yoy-categories li { display: flex; gap: 6px; padding: 5px 8px; border: 1px solid var(--kinko-line); border-radius: 8px; font-size: 9px; }
.v2-month-status-panel .v2-button { width: 100%; }
.v2-balance-workspace { margin-bottom: 18px; overflow: hidden; }
.v2-balance-workspace-head { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 22px; border-bottom: 1px solid var(--kinko-line); }
.v2-balance-workspace-head h2 { margin: 0; font-size: 21px; font-weight: 800; letter-spacing: -.03em; }
.v2-balance-workspace-head p { margin: 6px 0 0; color: var(--kinko-muted); font-size: 13px; }
.v2-balance-workspace-head > div:last-child { display: flex; gap: 8px; }
.v2-secondary-button { min-height: 38px; padding: 7px 11px; border: 1px solid #cbd5e1; border-radius: 10px; background: #fff; color: #536071; font-size: 10px; font-weight: 700; }
.v2-balance-groups { display: grid; gap: 12px; padding: 18px 22px; }
.v2-balance-group { overflow: hidden; border: 1px solid var(--kinko-line); border-radius: 14px; background: #fff; }
.v2-balance-group > header { display: grid; grid-template-columns: max-content minmax(0,1fr) auto; align-items: center; gap: 14px; padding: 18px 20px; border-bottom: 1px solid var(--kinko-line); background: #fbfcfe; }
.v2-balance-group h3 { margin: 0; font-size: 16px; font-weight: 750; }
.v2-balance-group header p { margin: 4px 0 0; color: var(--kinko-muted); font-size: 12px; }
.v2-balance-group header > strong { color: var(--kinko-blue); font-size: 16px; }
.v2-balance-items { display: grid; }
.v2-balance-item { display: grid; grid-template-columns: minmax(0,1.25fr) minmax(280px,.65fr) 100px; align-items: center; gap: 24px; min-height: 118px; padding: 20px; border-bottom: 1px solid #eef1f5; }
.v2-balance-item:last-child { border-bottom: 0; }
.v2-balance-copy { display: grid; gap: 7px; min-width: 0; }
.v2-balance-copy > strong { font-size: 15px; }
.v2-balance-metrics { display: flex; flex-wrap: wrap; gap: 9px 24px; margin: 0; }
.v2-balance-metrics > div { display: grid; gap: 1px; }
.v2-balance-metrics dt { color: var(--kinko-muted); font-size: 11px; font-weight: 650; }
.v2-balance-metrics dd { margin: 0; color: var(--kinko-text); font-size: 15px; font-weight: 750; }
.v2-balance-metrics dd.is-negative { color: var(--kinko-orange); }
.v2-balance-item label > span { display: block; margin-bottom: 6px; color: var(--kinko-muted); font-size: 11px; font-weight: 650; }
.v2-money-input { display: flex; min-height: 50px; overflow: hidden; border: 1px solid #dbe2ec; border-radius: 12px; }
.v2-money-input > span { display: grid; place-items: center; padding: 0 13px; border-right: 1px solid #dbe2ec; background: #f8fafc; color: var(--kinko-muted); font-size: 14px; }
.v2-money-input input { min-width: 0; width: 100%; padding: 10px 13px; border: 0; outline: 0; color: var(--kinko-text); font-size: 16px; }
.v2-balance-item details { color: var(--kinko-blue); font-size: 12px; font-weight: 650; }
.v2-balance-item details ul { position: absolute; z-index: 2; width: 280px; margin: 6px 0 0; padding: 10px; border: 1px solid var(--kinko-line); border-radius: 10px; background: #fff; box-shadow: var(--kinko-shadow); list-style: none; }
.v2-balance-item details li { display: flex; justify-content: space-between; gap: 10px; padding: 5px; color: var(--kinko-muted); }
.v2-balance-savebar { display: flex; align-items: center; justify-content: space-between; gap: 18px; padding: 16px 22px; border-top: 1px solid var(--kinko-line); background: #fbfcfe; }
.v2-balance-savebar > div { display: grid; }
.v2-balance-savebar span, .v2-balance-savebar small { color: var(--kinko-muted); font-size: 8px; }
.v2-balance-savebar strong { font-size: 14px; }
.v2-quiet-empty-center { justify-content: center; min-height: 280px; padding: 30px; }

/* Yearly */
.v2-yearly-primary { display: grid; grid-template-columns: .92fr 1.08fr; gap: 18px; margin-bottom: 18px; }
.v2-yearly-primary > .v2-panel { min-height: 500px; }
.v2-year-bars { display: flex; flex-direction: column; }
.v2-year-bars .v2-chart-stage { flex: 1; height: auto; min-height: 355px; }
.v2-month-table { padding: 0 20px 18px; }
.v2-month-table-head, .v2-month-table > a { display: grid; grid-template-columns: minmax(74px,.65fr) repeat(3,minmax(125px,1fr)) minmax(80px,.65fr); align-items: stretch; gap: 0; min-height: 42px; padding: 0 10px; color: var(--kinko-text) !important; font-size: 12px; }
.v2-month-table-head { min-height: 46px; border: 1px solid #e7ecf4; border-radius: 10px; background: #f5f8fd; color: var(--kinko-muted); font-weight: 750; }
.v2-month-table-head span, .v2-month-table > a span { display: flex; align-items: center; padding: 0 12px; }
.v2-month-table-head span:not(:first-child), .v2-month-table > a span:not(:first-child) { justify-content: flex-end; border-left: 1px solid #edf1f7; text-align: right; }
.v2-month-table > a { border-bottom: 1px solid #eef1f5; }
.v2-month-table > a:nth-of-type(even) { background: #fbfcfe; }
.v2-month-table > a:hover { background: #f8faff; }
.v2-month-table .is-orange { color: var(--kinko-orange); }
.v2-yearly-secondary { display: grid; grid-template-columns: .8fr 1.2fr; gap: 18px; margin-bottom: 18px; }
.v2-yearly-secondary > .v2-panel { min-height: 330px; }
.v2-year-categories .v2-category-chart-layout { grid-template-columns: 190px minmax(0,1fr); padding: 2px 18px 18px; }
.v2-year-categories .v2-donut-wrap { height: 190px; }
.v2-year-assets .v2-chart-stage { height: 250px; }
.v2-yearly-bottom { display: grid; grid-template-columns: 1.1fr .9fr; gap: 18px; }
.v2-year-highlights ul { display: grid; gap: 0; margin: 0; padding: 0 22px 20px; list-style: none; }
.v2-year-highlights li { display: flex; align-items: center; gap: 12px; min-height: 60px; border-bottom: 1px solid #eef1f5; }
.v2-year-highlights li:last-child { border-bottom: 0; }
.v2-year-highlights p { margin: 0; color: var(--kinko-muted); font-size: 10px; }
.v2-year-highlights p strong { color: var(--kinko-text); }
.v2-year-insight { display: grid; grid-template-columns: 170px minmax(0,1fr); align-items: center; min-height: 245px; padding: 18px 24px; overflow: hidden; border: 1px solid #cbd9ff; border-radius: var(--kinko-radius); background: #f2f6ff; }
.v2-year-insight .kinko-mascot { align-self: end; width: 175px; margin-bottom: -29px; }
.v2-year-insight h2 { margin: 0; font-size: 20px; font-weight: 800; }
.v2-year-insight p { margin: 8px 0 16px; color: #536071; font-size: 10px; line-height: 1.6; }

/* Cashflows */
.v2-head-actions { display: flex; align-items: center; gap: 9px; }
.v2-button-badge { margin-left: 4px; padding: 2px 6px; border-radius: 999px; background: rgba(255,255,255,.2); font-size: 8px; letter-spacing: .05em; text-transform: uppercase; }
.v2-filter-pills { display: flex; flex-wrap: wrap; gap: 7px; margin: 0 auto 12px; }
.v2-filter-pills a, .v2-filter-pills span { display: inline-flex; align-items: center; gap: 6px; min-height: 35px; padding: 7px 12px; border: 1px solid var(--kinko-line); border-radius: 999px; background: #fff; color: #697586; font-size: 9px; font-weight: 700; }
.v2-filter-pills a:hover, .v2-filter-pills a.is-active { border-color: #b7c9ff; background: var(--kinko-blue-soft); color: var(--kinko-blue); }
.v2-filter-pills a.is-orange.is-active { border-color: #ffd3ac; background: var(--kinko-orange-soft); color: var(--kinko-orange); }
.v2-filter-bar { display: grid; grid-template-columns: auto auto minmax(220px,1fr) auto auto; align-items: center; gap: 8px; margin-bottom: 18px; padding: 10px; border: 1px solid var(--kinko-line); border-radius: 14px; background: #fff; box-shadow: 0 4px 15px rgba(24,34,48,.03); }
.v2-filter-bar label { display: flex; align-items: center; gap: 6px; min-height: 42px; padding: 0 8px; border: 1px solid #e1e6ee; border-radius: 10px; color: var(--kinko-muted); }
.v2-filter-bar select, .v2-filter-bar input { min-width: 0; height: 38px; padding: 0 5px; border: 0; outline: 0; background: transparent; color: var(--kinko-text); font-size: 10px; font-weight: 650; }
.v2-filter-bar .v2-search-field input { width: 100%; }
.v2-filter-bar .v2-secondary-button, .v2-filter-privacy { min-height: 42px; }
.v2-filter-privacy:empty { display: none; }
.v2-cashflow-layout { display: grid; grid-template-columns: minmax(0,1fr) 285px; gap: 18px; margin-bottom: 18px; }
.v2-transactions-panel { min-width: 0; overflow: visible; }
.v2-transaction-head, .v2-transaction-row { display: grid; grid-template-columns: 116px minmax(170px,1.35fr) minmax(105px,.72fr) minmax(125px,.8fr) 112px 34px; align-items: center; gap: 10px; }
.v2-transaction-head { min-height: 38px; padding: 0 16px; border-bottom: 1px solid var(--kinko-line); color: var(--kinko-muted); font-size: 8px; font-weight: 700; }
.v2-transaction-head span:nth-last-child(-n+2) { text-align: right; }
.v2-transaction-row { min-height: 70px; padding: 9px 16px; border-bottom: 1px solid #edf0f4; font-size: 9px; }
.v2-transaction-row:last-child { border-bottom: 0; }
.v2-transaction-row:hover { background: #fbfcff; }
.v2-transaction-date { display: flex; align-items: center; gap: 8px; }
.v2-transaction-date b { font-size: 9px; font-weight: 700; }
.v2-transaction-copy { display: grid; min-width: 0; gap: 3px; }
.v2-transaction-copy strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 10px; }
.v2-transaction-copy small { overflow: hidden; color: var(--kinko-muted); text-overflow: ellipsis; white-space: nowrap; font-size: 8px; }
.v2-category-chip { display: inline-flex; max-width: 100%; padding: 5px 8px; overflow: hidden; border-radius: 999px; background: var(--kinko-blue-soft); color: var(--kinko-blue); font-style: normal; font-size: 8px; font-weight: 700; text-overflow: ellipsis; white-space: nowrap; }
.v2-category-chip.is-orange { background: var(--kinko-orange-soft); color: var(--kinko-orange); }
.v2-transaction-account { overflow: hidden; color: #536071; text-overflow: ellipsis; white-space: nowrap; }
.v2-transaction-amount { text-align: right; font-size: 10px; }
.v2-transaction-amount.is-positive { color: var(--kinko-blue); }
.v2-transaction-amount.is-negative { color: var(--kinko-orange); }
.v2-icon-button { display: grid; place-items: center; width: 32px; height: 32px; padding: 0; border: 0; border-radius: 9px; background: transparent; color: var(--kinko-muted); }
.v2-icon-button:hover { background: #eef3ff; color: var(--kinko-blue); }
.v2-cashflow-aside { display: grid; align-content: start; gap: 18px; }
.v2-cashflow-summary dl { margin: 0; padding: 0 17px; }
.v2-cashflow-summary dl div { display: flex; align-items: center; justify-content: space-between; min-height: 43px; border-bottom: 1px solid #edf0f4; }
.v2-cashflow-summary dt { color: var(--kinko-muted); font-size: 9px; font-weight: 600; }
.v2-cashflow-summary dd { margin: 0; color: var(--kinko-blue); font-size: 10px; font-weight: 800; }
.v2-cashflow-summary dd.is-orange { color: var(--kinko-orange); }
.v2-mini-cash-chart { display: flex; align-items: end; gap: 5px; height: 74px; margin: 14px 17px; padding-top: 10px; border-bottom: 1px solid #dce3ee; }
.v2-mini-cash-chart span { flex: 1; height: 45%; border-radius: 3px 3px 0 0; background: #9fbaff; }
.v2-mini-cash-chart span:nth-child(2n) { height: 72%; background: var(--kinko-blue); }
.v2-mini-cash-chart span:nth-child(3n) { height: 38%; background: #ffd2ac; }
.v2-text-link { display: block; padding: 0 17px 17px; color: var(--kinko-blue) !important; font-size: 9px; font-weight: 700; }
.v2-cashflow-insight { min-height: 285px; padding: 20px; overflow: hidden; border: 1px solid #cbd9ff; border-radius: var(--kinko-radius); background: #f1f5ff; }
.v2-cashflow-insight h2 { margin: 0; font-size: 13px; }
.v2-cashflow-insight .kinko-mascot { display: block; width: 130px; height: 120px; margin: -5px auto -15px; }
.v2-cashflow-insight strong { display: block; color: var(--kinko-blue); font-size: 11px; }
.v2-cashflow-insight p { margin: 5px 0 9px; color: #536071; font-size: 9px; line-height: 1.55; }
.v2-cashflow-insight a { color: var(--kinko-blue) !important; font-size: 9px; font-weight: 700; }
.v2-empty { display: grid; place-items: center; min-height: 360px; padding: 28px; text-align: center; }
.v2-empty .kinko-mascot { width: 140px; height: 120px; }
.v2-empty h3 { margin: 0; font-size: 15px; }
.v2-empty p { color: var(--kinko-muted); font-size: 10px; }
.v2-ai-assistant { display: grid; grid-template-columns: 42px minmax(0,1fr); gap: 12px; margin-top: 18px; padding: 14px; border: 1px solid #cad8ff; border-radius: 13px; background: #f3f6ff; }
.v2-ai-assistant > i { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 12px; background: var(--kinko-blue); color: #fff; }
.v2-ai-assistant strong { font-size: 11px; }
.v2-ai-assistant p { margin: 3px 0 9px; color: var(--kinko-muted); font-size: 9px; }

/* Import */
.v2-alert-action { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.v2-import-steps { display: grid; grid-template-columns: repeat(4,1fr); margin: 0 auto 18px; padding: 0; list-style: none; }
.v2-import-steps li { position: relative; display: flex; align-items: center; gap: 9px; min-height: 38px; color: #9aa4b2; font-size: 9px; }
.v2-import-steps li::after { content: ""; position: absolute; z-index: -1; top: 50%; right: 8px; left: 40px; height: 1px; background: #dfe5ed; }
.v2-import-steps li:last-child::after { display: none; }
.v2-import-steps span { display: grid; place-items: center; width: 29px; height: 29px; border: 1px solid #d6dde7; border-radius: 50%; background: #fff; font-weight: 800; }
.v2-import-steps li.is-active { color: var(--kinko-text); }
.v2-import-steps li.is-active span { border-color: var(--kinko-blue); background: var(--kinko-blue); color: #fff; }
.v2-import-steps li.is-complete span { font-size: 0; }
.v2-import-steps li.is-complete span::after { content: "✓"; font-size: 12px; }
.v2-import-upload { container-type: inline-size; margin-bottom: 18px; padding: 20px; }
.v2-import-upload-copy { display: flex; align-items: center; gap: 13px; margin-bottom: 18px; }
.v2-import-hero-icon { display: grid; place-items: center; flex: 0 0 50px; width: 50px; height: 50px; border-radius: 14px; background: var(--kinko-blue-soft); color: var(--kinko-blue); font-size: 21px; }
.v2-import-upload h2 { margin: 0; font-size: 14px; }
.v2-import-upload p { margin: 4px 0 0; color: var(--kinko-muted); font-size: 9px; }
.v2-import-upload-form { display: grid; grid-template-columns: 1.1fr 90px 125px minmax(230px,1.5fr) auto; align-items: end; gap: 10px; }
.v2-import-upload-form label, .v2-import-options-body > label { display: grid; gap: 5px; }
.v2-import-upload-form label > span, .v2-import-options-body label > span { color: #536071; font-size: 9px; font-weight: 700; }
@container (max-width: 720px) {
  .v2-import-upload-form { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .v2-import-upload-form label:first-of-type,
  .v2-import-upload-form .v2-file-field,
  .v2-import-upload-form .v2-button { grid-column: 1 / -1; }
}
.v2-import-beta-link { display: flex; align-items: center; gap: 15px; margin-top: 20px; padding: 18px 20px; border: 1px solid #9fbbff; border-radius: 16px; background: linear-gradient(135deg,#edf3ff 0%,#f7f9ff 68%,#fff 100%); color: var(--kinko-text) !important; box-shadow: 0 12px 28px rgba(23,105,255,.1); }
.v2-import-beta-link > i:first-child { display: grid; place-items: center; flex: 0 0 44px; width: 44px; height: 44px; border-radius: 12px; background: var(--kinko-blue); color: #fff; font-size: 20px; }
.v2-import-beta-link > i:last-child { margin-left: auto; color: var(--kinko-blue); }
.v2-import-beta-link span { display: grid; gap: 4px; }
.v2-import-beta-link strong { font-size: 14px; }
.v2-import-beta-link strong em { margin-left: 6px; padding: 3px 7px; border-radius: 999px; background: var(--kinko-blue); color: #fff; font-size: 9px; font-style: normal; letter-spacing: .06em; text-transform: uppercase; }
.v2-import-beta-link small { color: var(--kinko-muted); font-size: 11px; }
.v2-import-grid { display: grid; grid-template-columns: minmax(0,1.35fr) minmax(290px,.65fr); gap: 18px; margin-bottom: 18px; }
.v2-count-badge { padding: 5px 8px; border-radius: 999px; background: var(--kinko-blue-soft); color: var(--kinko-blue); font-size: 8px; font-weight: 800; }
.v2-mapping-list { padding: 0 18px 17px; }
.v2-mapping-row { display: grid; grid-template-columns: minmax(160px,1fr) minmax(150px,.85fr) minmax(150px,.85fr); align-items: center; gap: 10px; min-height: 66px; border-bottom: 1px solid #edf0f4; }
.v2-mapping-row:last-child { border-bottom: 0; }
.v2-mapping-row > div:first-child { display: flex; align-items: center; gap: 9px; min-width: 0; }
.v2-mapping-row > div:first-child > span:last-child { display: grid; min-width: 0; }
.v2-mapping-row strong { overflow: hidden; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.v2-mapping-row small { color: var(--kinko-muted); font-size: 8px; }
.v2-import-options-body { display: grid; gap: 12px; padding: 0 18px 18px; }
.v2-safe-note { display: grid; grid-template-columns: 32px minmax(0,1fr); gap: 8px; padding: 10px; border: 1px solid #c4ead6; border-radius: 11px; background: #f0faf5; color: #16714d; }
.v2-safe-note > i { display: grid; place-items: center; font-size: 16px; }
.v2-safe-note p { margin: 0; font-size: 8px; line-height: 1.5; }
.v2-ai-import { display: grid; grid-template-columns: 35px minmax(0,1fr); gap: 9px; padding: 11px; border: 1px solid #cbd8ff; border-radius: 12px; background: #f3f6ff; }
.v2-ai-import > i { display: grid; place-items: center; width: 35px; height: 35px; border-radius: 10px; background: var(--kinko-blue); color: #fff; }
.v2-ai-import strong { font-size: 9px; }
.v2-ai-import strong em { padding: 2px 5px; border-radius: 999px; background: #ffeedc; color: var(--kinko-orange); font-style: normal; font-size: 7px; }
.v2-ai-import p { margin: 3px 0 8px; color: var(--kinko-muted); font-size: 8px; }
.v2-ai-import div > div { display: flex; flex-wrap: wrap; gap: 5px; }
.v2-import-review { overflow: visible; }
.v2-import-review-head { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 17px 18px; border-bottom: 1px solid var(--kinko-line); }
.v2-import-review-head h2 { margin: 0; font-size: 13px; }
.v2-import-review-head p { margin: 3px 0 0; color: var(--kinko-muted); font-size: 8px; }
.v2-import-review-head > div:last-child { display: flex; gap: 7px; }
.v2-import-row-head, .v2-import-row { display: grid; grid-template-columns: 40px minmax(230px,1.1fr) minmax(160px,.72fr) minmax(175px,.82fr) minmax(150px,.68fr); gap: 10px; }
.v2-import-row-head { min-height: 38px; align-items: center; padding: 0 16px; border-bottom: 1px solid var(--kinko-line); color: var(--kinko-muted); font-size: 8px; font-weight: 700; }
.v2-import-row { align-items: start; padding: 14px 16px; border-bottom: 1px solid #e9edf3; }
.v2-import-row:last-child { border-bottom: 0; }
.v2-import-row.needs-review { background: #fffaf4; }
.v2-import-row.is-duplicate { background: #f5f6f8; opacity: .68; }
.v2-import-check { display: grid; place-items: center; min-height: 40px; }
.v2-import-transaction { display: grid; grid-template-columns: 34px minmax(0,1fr) auto; gap: 9px; min-width: 0; }
.v2-import-transaction > div { display: grid; min-width: 0; }
.v2-import-transaction strong { overflow: hidden; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }
.v2-import-transaction small, .v2-import-transaction p { margin: 1px 0 0; overflow: hidden; color: var(--kinko-muted); font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.v2-import-transaction em { margin-top: 5px; color: #a66a18; font-size: 7px; font-style: normal; }
.v2-import-transaction em.is-safe { color: #16714d; }
.v2-import-transaction > b { font-size: 9px; white-space: nowrap; }
.v2-import-transaction > b.is-negative { color: var(--kinko-orange); }
.v2-import-transaction > b.is-positive { color: var(--kinko-blue); }
.v2-import-classification, .v2-import-target > div, .v2-import-extras { display: grid; gap: 6px; }
.v2-import-classification small, .v2-import-target small, .v2-import-extras small { color: var(--kinko-muted); font-size: 7px; }
.v2-import-target strong { overflow: hidden; margin-bottom: 2px; font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }
.v2-import-target p { margin: 3px 0; color: #9b661c; font-size: 7px; }
.v2-import-target .collapse { display: none; gap: 5px; margin-top: 5px; }
.v2-import-target .collapse.show { display: grid; }
.v2-import-extras a { color: var(--kinko-blue) !important; font-size: 8px; font-weight: 700; }
.v2-import-footer { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 15px 18px; border-top: 1px solid var(--kinko-line); background: #fbfcfe; }
.v2-import-footer p { margin: 0; color: var(--kinko-muted); font-size: 8px; }
.v2-import-footer p i { margin-right: 5px; color: #16835a; }
.v2-import-empty { display: grid; grid-template-columns: 170px minmax(0,1fr); align-items: center; min-height: 220px; padding: 20px 28px; overflow: hidden; border: 1px solid #cbd9ff; border-radius: var(--kinko-radius); background: #f2f6ff; }
.v2-import-empty .kinko-mascot { align-self: end; width: 175px; margin-bottom: -28px; }
.v2-import-empty h2 { margin: 0; font-size: 19px; }
.v2-import-empty p { max-width: 560px; margin: 7px 0 0; color: #536071; font-size: 10px; line-height: 1.6; }
.v2-import-start-layout { display: grid; grid-template-columns: minmax(0,.95fr) minmax(420px,1.05fr); align-items: stretch; gap: 18px; margin-bottom: 18px; }
.v2-import-start-layout > .v2-import-upload,
.v2-import-start-layout > .v2-import-empty { min-width: 0; margin: 0; }
.v2-import-start-layout > .v2-import-empty { grid-template-columns: 190px minmax(0,1fr); min-height: 100%; }

/* Currency */
.v2-base-currency { display: inline-flex; align-items: center; gap: 7px; min-height: 40px; padding: 8px 12px; border: 1px solid var(--kinko-line); border-radius: 11px; background: #fff; color: var(--kinko-muted); font-size: 9px; }
.v2-base-currency strong { color: var(--kinko-blue); }
.v2-currency-layout { display: grid; grid-template-columns: minmax(0,1.08fr) minmax(310px,.92fr); gap: 18px; margin-bottom: 18px; }
.v2-converter-card, .v2-currency-result { min-height: 420px; }
.v2-converter-body { display: grid; gap: 22px; padding: 20px 24px 24px; }
.v2-converter-amount { position: relative; display: grid; gap: 6px; }
.v2-converter-amount > span, .v2-currency-pair label > span { color: var(--kinko-muted); font-size: 9px; font-weight: 700; }
.v2-converter-amount input { height: 72px; width: 100%; padding: 12px 70px 12px 16px; border: 1px solid #dbe2ec; border-radius: 14px; outline: 0; color: var(--kinko-text); font-size: 27px; font-weight: 800; }
.v2-converter-amount input:focus { border-color: var(--kinko-blue); box-shadow: var(--kinko-focus); }
.v2-converter-amount em { position: absolute; right: 16px; bottom: 24px; color: var(--kinko-muted); font-size: 12px; font-style: normal; font-weight: 800; }
.v2-currency-pair { display: grid; grid-template-columns: 1fr 42px 1fr; align-items: end; gap: 10px; }
.v2-currency-pair label { display: grid; gap: 6px; }
.v2-swap-currency { display: grid; place-items: center; width: 42px; height: 42px; border: 1px solid #c9d5f6; border-radius: 12px; background: var(--kinko-blue-soft); color: var(--kinko-blue); }
.v2-currency-result { display: grid; place-items: center; overflow: hidden; border: 1px solid #cbd9ff; border-radius: var(--kinko-radius); background: #f2f6ff; text-align: center; }
.v2-currency-result > div { display: grid; place-items: center; padding: 20px; }
.v2-currency-result .kinko-mascot { width: 150px; height: 135px; margin-bottom: -18px; }
.v2-currency-result small { color: var(--kinko-muted); font-size: 9px; }
.v2-currency-result h2 { margin: 8px 0 0; font-size: 19px; }
.v2-currency-result p { margin: 6px 0 0; color: #536071; font-size: 10px; }
.v2-currency-result strong { margin: 6px 0; color: var(--kinko-blue); font-size: 32px; letter-spacing: -.04em; }
.v2-currency-result em { color: var(--kinko-muted); font-size: 9px; font-style: normal; }
.v2-currency-result .v2-secondary-button { margin-top: 17px; }

/* Upgrade */
.v2-plan-badge { display: inline-flex; align-items: center; gap: 7px; min-height: 40px; padding: 8px 12px; border: 1px solid var(--kinko-line); border-radius: 999px; background: #fff; color: #536071; font-size: 9px; font-weight: 700; }
.v2-plan-badge.is-pro { border-color: #ffd2a8; background: var(--kinko-orange-soft); color: var(--kinko-orange); }
.v2-feature-callout { display: grid; grid-template-columns: 42px minmax(0,1fr); gap: 12px; margin-bottom: 18px; padding: 14px; border: 1px solid #ffd2a8; border-radius: 14px; background: #fff7ef; }
.v2-feature-callout > i { display: grid; place-items: center; width: 42px; height: 42px; border-radius: 12px; background: var(--kinko-orange); color: #fff; }
.v2-feature-callout strong { font-size: 10px; }
.v2-feature-callout p { margin: 3px 0 0; color: #75573c; font-size: 9px; }
.v2-pricing-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; margin-bottom: 18px; }
.v2-price-card { display: grid; grid-template-rows: auto 1fr auto; min-height: 500px; padding: 24px; border: 1px solid var(--kinko-line); border-radius: var(--kinko-radius); background: #fff; box-shadow: var(--kinko-shadow); }
.v2-price-card.is-pro { border-color: #b8c9ff; background: linear-gradient(160deg,#f7f9ff,#eef3ff); }
.v2-price-card header > span { display: flex; align-items: center; gap: 8px; color: var(--kinko-blue); font-size: 12px; font-weight: 800; }
.v2-price-card header em { padding: 3px 7px; border-radius: 999px; background: var(--kinko-orange); color: #fff; font-size: 7px; font-style: normal; }
.v2-price-card header > strong { display: block; margin-top: 13px; font-size: 28px; letter-spacing: -.04em; }
.v2-price-card header p { max-width: 450px; margin: 8px 0 0; color: var(--kinko-muted); font-size: 10px; line-height: 1.6; }
.v2-price-card ul { display: grid; align-content: start; gap: 12px; margin: 24px 0; padding: 0; list-style: none; }
.v2-price-card li { display: flex; align-items: flex-start; gap: 10px; color: #536071; font-size: 9px; }
.v2-price-card li > i { color: var(--kinko-blue); font-size: 14px; }
.v2-price-card li span { display: grid; }
.v2-price-card li span strong { color: var(--kinko-text); font-size: 9px; }
.v2-price-card li span small { color: var(--kinko-muted); font-size: 8px; }
.v2-current-plan { display: flex; align-items: center; justify-content: center; gap: 7px; min-height: 44px; border: 1px solid #c5ead7; border-radius: 12px; background: #eef9f4; color: #16714d; font-size: 10px; font-weight: 700; }
.v2-pro-button { display: flex; align-items: center; justify-content: center; min-height: 44px; padding: 10px 14px; border-radius: 12px; background: var(--kinko-blue); color: #fff !important; font-size: 10px; font-weight: 800; }
.v2-price-actions { display: grid; gap: 8px; }
.v2-price-actions .v2-secondary-button { display: flex; align-items: center; justify-content: center; }
.v2-price-actions small { color: var(--kinko-orange); text-align: center; font-size: 8px; }
.v2-feature-grid-panel { margin-bottom: 18px; }
.v2-feature-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 12px; padding: 0 18px 18px; }
.v2-feature-grid article { display: grid; align-content: start; min-height: 180px; padding: 16px; border: 1px solid var(--kinko-line); border-radius: 14px; background: #fff; }
.v2-feature-grid article > span { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 11px; background: var(--kinko-orange-soft); color: var(--kinko-orange); }
.v2-feature-grid h3 { margin: 12px 0 0; font-size: 11px; }
.v2-feature-grid p { margin: 5px 0 12px; color: var(--kinko-muted); font-size: 8px; line-height: 1.55; }
.v2-feature-grid a { margin-top: auto; color: var(--kinko-blue) !important; font-size: 9px; font-weight: 700; }
.v2-access-hero { display: grid; grid-template-columns: 210px minmax(0,1fr) minmax(260px,.7fr); align-items: center; gap: 28px; min-height: 270px; margin-bottom: 18px; padding: 20px 34px; overflow: hidden; border: 1px solid #cbd9ff; border-radius: var(--kinko-radius); background: #f2f6ff; }.v2-access-hero.is-pro { border-color: #ffd1a5; background: #fff7ef; }.v2-access-hero .kinko-mascot { align-self: end; width: 210px; margin-bottom: -36px; }.v2-access-hero small { color: var(--kinko-muted); font-size: 9px; font-weight: 700; text-transform: uppercase; letter-spacing: .08em; }.v2-access-hero h2 { margin: 4px 0; font-size: 30px; letter-spacing: -.04em; }.v2-access-hero p { max-width: 650px; margin: 0 0 14px; color: #536071; font-size: 10px; line-height: 1.6; }.v2-access-state { display: inline-flex; align-items: center; gap: 7px; padding: 7px 10px; border-radius: 999px; background: #fff; color: var(--kinko-blue); font-size: 8px; font-weight: 700; }.v2-access-hero-summary { display: grid; gap: 8px; margin: 0; padding: 14px; border: 1px solid rgba(255,122,26,.16); border-radius: 14px; background: rgba(255,255,255,.72); list-style: none; }.v2-access-hero-summary li { display: flex; align-items: center; gap: 9px; color: var(--kinko-text); font-size: 10px; font-weight: 700; }.v2-access-hero-summary i { display: grid; place-items: center; flex: 0 0 26px; width: 26px; height: 26px; border-radius: 8px; background: var(--kinko-orange-soft); color: var(--kinko-orange); }.v2-feature-grid article > em { margin-top: auto; color: var(--kinko-muted); font-size: 8px; font-style: normal; }.v2-feature-grid article.is-locked > span { background: #f0f2f5; color: #8b96a5; }.v2-free-access { display: grid; grid-template-columns: minmax(260px,.8fr) minmax(0,1.2fr); gap: 20px; margin-top: 18px; padding: 19px; }.v2-free-access > div { display: flex; align-items: center; gap: 11px; }.v2-free-access > div > i { display: grid; place-items: center; width: 40px; height: 40px; border-radius: 11px; background: #eaf8f1; color: #16714d; }.v2-free-access > div span { display: grid; }.v2-free-access strong { font-size: 10px; }.v2-free-access small { color: var(--kinko-muted); font-size: 8px; }.v2-free-access ul { display: flex; align-items: center; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none; }.v2-free-access li { display: inline-flex; align-items: center; gap: 5px; color: #536071; font-size: 8px; }.v2-free-access li i { color: #16714d; }

/* Settings */
.v2-security-state { display: inline-flex; align-items: center; gap: 7px; min-height: 40px; padding: 8px 12px; border: 1px solid #c4ead6; border-radius: 999px; background: #eff9f4; color: #16714d; font-size: 9px; font-weight: 700; }
.v2-recovery-key { display: grid; grid-template-columns: 45px minmax(0,1fr); gap: 12px; margin-bottom: 18px; padding: 15px; border: 1px solid #ffd1a5; border-radius: 14px; background: #fff7ef; }
.v2-recovery-key > i { display: grid; place-items: center; width: 45px; height: 45px; border-radius: 12px; background: var(--kinko-orange); color: #fff; }
.v2-recovery-key h2 { margin: 0; font-size: 12px; }.v2-recovery-key p { margin: 3px 0 8px; color: #72563f; font-size: 8px; }.v2-recovery-key code { display: block; padding: 10px; border-radius: 8px; background: #fff; color: #805020; font-size: 10px; }
.v2-settings-layout { display: grid; grid-template-columns: 250px minmax(0,1fr); gap: 18px; align-items: start; }
.v2-settings-sidebar { position: sticky; top: calc(var(--kinko-header-height) + 18px); display: grid; gap: 10px; }
.v2-profile-card { display: grid; justify-items: center; padding: 22px 15px; border: 1px solid var(--kinko-line); border-radius: var(--kinko-radius); background: #fff; box-shadow: var(--kinko-shadow); text-align: center; }
.v2-profile-avatar { display: grid; place-items: center; width: 78px; height: 78px; overflow: hidden; border: 4px solid #fff; border-radius: 50%; background: var(--kinko-blue); color: #fff; box-shadow: 0 0 0 1px #cfdaeb; font-size: 22px; font-weight: 800; }.v2-profile-avatar img { width: 100%; height: 100%; object-fit: cover; }
.v2-profile-card h2 { margin: 12px 0 2px; font-size: 14px; }.v2-profile-card p { margin: 0; color: var(--kinko-muted); font-size: 8px; }.v2-profile-card > span { margin-top: 9px; padding: 4px 8px; border-radius: 999px; background: var(--kinko-blue-soft); color: var(--kinko-blue); font-size: 7px; font-weight: 700; }
.v2-settings-nav { display: grid; padding: 7px; border: 1px solid var(--kinko-line); border-radius: 14px; background: #fff; }.v2-settings-nav a { display: flex; align-items: center; gap: 9px; min-height: 40px; padding: 8px 10px; border-radius: 9px; color: #536071 !important; font-size: 9px; font-weight: 650; }.v2-settings-nav a.is-active,.v2-settings-nav a:hover { background: var(--kinko-blue-soft); color: var(--kinko-blue) !important; }
.v2-avatar-form { display: grid; gap: 7px; padding: 12px; border: 1px solid var(--kinko-line); border-radius: 13px; background: #fff; }.v2-avatar-form label { display: grid; gap: 5px; }.v2-avatar-form label span { color: var(--kinko-muted); font-size: 8px; font-weight: 700; }.v2-text-danger { padding: 7px; border: 0; background: transparent; color: #ba4052; font-size: 8px; }
.v2-settings-content { display: grid; gap: 18px; }.v2-settings-section { scroll-margin-top: calc(var(--kinko-header-height) + 18px); }.v2-settings-forms { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 14px; padding: 0 18px 18px; }.v2-settings-forms label,.v2-security-grid label,.v2-pin-form label,.v2-preference-form label { display: grid; gap: 5px; }.v2-settings-forms label > span,.v2-security-grid label > span,.v2-pin-form label > span,.v2-preference-form label > span { color: var(--kinko-muted); font-size: 8px; font-weight: 700; }.v2-settings-forms label > div { display: flex; gap: 6px; }
.v2-security-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; padding: 0 18px 18px; }.v2-security-grid form { display: grid; align-content: start; gap: 9px; padding: 14px; border: 1px solid var(--kinko-line); border-radius: 13px; background: #fbfcfe; }.v2-security-grid h3,.v2-pin-form h3 { margin: 0; font-size: 11px; }.v2-security-grid p,.v2-pin-form p { margin: 2px 0 6px; color: var(--kinko-muted); font-size: 8px; }
.v2-pin-form { display: grid; grid-template-columns: minmax(180px,1.4fr) repeat(3,minmax(110px,.65fr)) auto; align-items: end; gap: 9px; margin: 0 18px 18px; padding: 14px; border: 1px solid #ffd2aa; border-radius: 13px; background: #fff8f2; }
.v2-settings-pair { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 18px; }.v2-preference-form,.v2-plan-settings { display: grid; gap: 10px; padding: 0 18px 18px; }.v2-preference-form small,.v2-plan-settings p { color: var(--kinko-muted); font-size: 8px; }.v2-guide-reset { display: grid; grid-template-columns: 34px minmax(0,1fr) auto; align-items: center; gap: 9px; margin: 0 18px 18px; padding: 10px; border: 1px solid var(--kinko-line); border-radius: 11px; }.v2-guide-reset > i { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 9px; background: var(--kinko-blue-soft); color: var(--kinko-blue); }.v2-guide-reset span { display: grid; }.v2-guide-reset strong { font-size: 9px; }.v2-guide-reset small { color: var(--kinko-muted); font-size: 7px; }
.v2-plan-settings > strong { color: var(--kinko-blue); font-size: 21px; }.v2-plan-settings form { display: grid; }.v2-legal-links { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }.v2-legal-links a { display: grid; grid-template-columns: 34px minmax(0,1fr) auto; align-items: center; gap: 9px; min-height: 65px; padding: 11px; border: 1px solid var(--kinko-line); border-radius: 13px; background: #fff; color: var(--kinko-text) !important; }.v2-legal-links a > i:first-child { display: grid; place-items: center; width: 34px; height: 34px; border-radius: 9px; background: var(--kinko-blue-soft); color: var(--kinko-blue); }.v2-legal-links span { display: grid; }.v2-legal-links strong { font-size: 9px; }.v2-legal-links small { color: var(--kinko-muted); font-size: 7px; }.v2-legal-links a > i:last-child { color: var(--kinko-blue); }

/* Wishlist */
.v2-wishlist-layout { display: grid; grid-template-columns: minmax(0,1fr) 280px; gap: 18px; }.v2-wishlist-layout > aside { display: grid; align-content: start; gap: 18px; }.v2-wishlist-items { display: grid; padding: 0 17px 17px; }.v2-wishlist-item { display: grid; grid-template-columns: 40px minmax(0,1fr) 80px 105px 90px; align-items: center; gap: 10px; min-height: 84px; border-bottom: 1px solid #edf0f4; }.v2-wishlist-item:last-child { border-bottom: 0; }.v2-wishlist-item.is-done { opacity: .6; }.v2-wishlist-item > div { display: grid; min-width: 0; }.v2-wishlist-item > div strong { font-size: 10px; }.v2-wishlist-item > div p { margin: 3px 0 0; overflow: hidden; color: var(--kinko-muted); font-size: 8px; text-overflow: ellipsis; white-space: nowrap; }.v2-wishlist-item > div a { margin-top: 3px; color: var(--kinko-blue) !important; font-size: 7px; }.v2-wishlist-item > em { justify-self: start; padding: 5px 8px; border-radius: 999px; background: var(--kinko-blue-soft); color: var(--kinko-blue); font-size: 7px; font-style: normal; font-weight: 700; }.v2-wishlist-item > b { text-align: right; font-size: 10px; }.v2-wishlist-actions { display: flex; justify-content: flex-end; }.v2-wishlist-actions form { display: flex; }.v2-purchase-history > div:last-child { display: grid; padding: 0 16px 16px; }.v2-purchase-history > div:last-child > span { display: grid; grid-template-columns: 50px 1fr auto; align-items: center; min-height: 51px; border-bottom: 1px solid #edf0f4; }.v2-purchase-history > div:last-child > span:last-child { border-bottom: 0; }.v2-purchase-history strong { font-size: 10px; }.v2-purchase-history small { color: var(--kinko-muted); font-size: 8px; }.v2-purchase-history b { font-size: 9px; }.v2-purchase-history p { padding: 15px; color: var(--kinko-muted); font-size: 9px; text-align: center; }.v2-wishlist-insight { min-height: 260px; padding: 17px; overflow: hidden; border: 1px solid #cbd9ff; border-radius: var(--kinko-radius); background: #f1f5ff; text-align: center; }.v2-wishlist-insight .kinko-mascot { display: block; width: 130px; height: 125px; margin: -4px auto -15px; }.v2-wishlist-insight h2 { margin: 0; font-size: 14px; }.v2-wishlist-insight p { margin: 6px 0 0; color: #536071; font-size: 9px; }.v2-modal-fields { display: grid; gap: 13px; }.v2-modal-fields label { display: grid; gap: 5px; }.v2-modal-fields label > span { color: var(--kinko-muted); font-size: 9px; font-weight: 700; }

.v2-wishlist-insight { display: grid; justify-items: center; align-content: start; gap: 7px; }
.v2-wishlist-insight .kinko-mascot { margin: 0 auto; }
.v2-wishlist-insight h2 { position: relative; z-index: 1; }
.v2-wishlist-insight p { margin-top: 0; }

/* Recurring */
.v2-recurring-toolbar { display: flex; align-items: center; justify-content: space-between; gap: 14px; margin-bottom: 12px; }.v2-recurring-toolbar .v2-filter-pills { margin: 0; }.v2-recurring-toolbar form { min-width: 210px; }.v2-recurring-layout { display: grid; grid-template-columns: minmax(0,1fr) 270px; gap: 18px; }.v2-recurring-layout > aside { display: grid; align-content: start; gap: 18px; }.v2-recurring-list .v2-section-head > strong { color: var(--kinko-blue); font-size: 10px; }.v2-recurring-items { display: grid; padding: 0 16px 16px; }.v2-recurring-item { display: grid; grid-template-columns: 40px minmax(150px,1.2fr) minmax(100px,.75fr) 86px 98px 78px 90px; align-items: center; gap: 10px; min-height: 80px; border-bottom: 1px solid #edf0f4; }.v2-recurring-item:last-child { border-bottom: 0; }.v2-recurring-item.is-paused { opacity: .52; }.v2-recurring-item > div { display: grid; min-width: 0; }.v2-recurring-item > div strong { overflow: hidden; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }.v2-recurring-item > div p { margin: 2px 0 0; overflow: hidden; color: var(--kinko-muted); font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }.v2-recurring-frequency,.v2-recurring-next,.v2-recurring-value { display: grid; }.v2-recurring-frequency strong,.v2-recurring-next strong,.v2-recurring-value strong { font-size: 8px; }.v2-recurring-frequency small,.v2-recurring-next small,.v2-recurring-value small { color: var(--kinko-muted); font-size: 7px; }.v2-recurring-value { text-align: right; }.v2-recurring-item > em { justify-self: start; padding: 5px 7px; border-radius: 999px; background: #eaf8f1; color: #16714d; font-size: 7px; font-style: normal; font-weight: 700; }.v2-recurring-item > em.needs-review { background: #fff1e5; color: var(--kinko-orange); }.v2-recurring-actions { display: flex; justify-content: flex-end; }.v2-recurring-actions form { display: flex; }.v2-recurring-status dl { margin: 0; padding: 0 16px 16px; }.v2-recurring-status dl div { display: flex; justify-content: space-between; align-items: center; min-height: 45px; border-bottom: 1px solid #edf0f4; }.v2-recurring-status dt { color: var(--kinko-muted); font-size: 8px; }.v2-recurring-status dd { margin: 0; color: var(--kinko-blue); font-size: 12px; font-weight: 800; }.v2-recurring-insight { min-height: 260px; padding: 17px; overflow: hidden; border: 1px solid #cbd9ff; border-radius: var(--kinko-radius); background: #f1f5ff; text-align: center; }.v2-recurring-insight .kinko-mascot { display: block; width: 135px; height: 130px; margin: -5px auto -17px; }.v2-recurring-insight h2 { margin: 0; font-size: 14px; }.v2-recurring-insight p { margin: 6px 0 0; color: #536071; font-size: 9px; }

.v2-recurring-toolbar .v2-filter-pills a { min-height: 44px; }

/* Plans */
.v2-plans-shell { display: grid; grid-template-columns: 240px minmax(0,1fr); align-items: start; gap: 18px; }.v2-plan-switcher { position: sticky; top: calc(var(--kinko-header-height) + 18px); padding-bottom: 12px; }.v2-plan-switcher nav { display: grid; padding: 0 8px 10px; }.v2-plan-switcher nav > a { display: grid; grid-template-columns: 34px minmax(0,1fr) auto; align-items: center; gap: 8px; min-height: 58px; padding: 8px; border-radius: 11px; color: var(--kinko-text) !important; }.v2-plan-switcher nav > a.is-active { background: var(--kinko-blue-soft); }.v2-plan-switcher nav > a > span:nth-child(2) { display: grid; min-width: 0; }.v2-plan-switcher nav strong { overflow: hidden; font-size: 9px; text-overflow: ellipsis; white-space: nowrap; }.v2-plan-switcher nav small { overflow: hidden; color: var(--kinko-muted); font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }.v2-plan-switcher nav em { padding: 4px 6px; border-radius: 999px; background: #eef1f5; color: #677386; font-size: 6px; font-style: normal; }.v2-plan-switcher > .v2-secondary-button { display: flex; width: calc(100% - 16px); align-items: center; justify-content: center; margin: 0 8px; }.v2-plan-list-empty { display: grid; justify-items: center; padding: 20px; color: var(--kinko-muted); }.v2-plan-list-empty i { font-size: 22px; }.v2-plan-list-empty p { font-size: 8px; }.v2-plan-workspace { display: grid; gap: 18px; min-width: 0; }.v2-plan-empty { display: grid; grid-template-columns: 190px minmax(0,1fr); align-items: center; min-height: 310px; padding: 24px; overflow: hidden; border: 1px solid #cbd9ff; border-radius: var(--kinko-radius); background: #f2f6ff; }.v2-plan-empty .kinko-mascot { align-self: end; width: 190px; margin-bottom: -36px; }.v2-plan-empty h2 { margin: 0; font-size: 21px; }.v2-plan-empty p { max-width: 530px; color: #536071; font-size: 10px; }.v2-plan-title { display: flex; align-items: flex-start; justify-content: space-between; gap: 20px; padding: 19px 21px; border: 1px solid var(--kinko-line); border-radius: var(--kinko-radius); background: #fff; box-shadow: var(--kinko-shadow); }.v2-plan-title > div:first-child > span { color: var(--kinko-blue); font-size: 8px; font-weight: 800; text-transform: uppercase; }.v2-plan-title h2 { margin: 3px 0; font-size: 20px; }.v2-plan-title p { max-width: 620px; margin: 0; color: var(--kinko-muted); font-size: 9px; }.v2-plan-title > div:last-child { display: flex; align-items: center; gap: 7px; }.v2-plan-title em { padding: 6px 8px; border-radius: 999px; background: #eaf8f1; color: #16714d; font-size: 7px; font-style: normal; font-weight: 700; }.v2-plan-kpis { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 10px; }.v2-plan-kpis article { display: grid; min-height: 110px; padding: 15px; border: 1px solid var(--kinko-line); border-radius: 14px; background: #fff; }.v2-plan-kpis span,.v2-plan-kpis small { color: var(--kinko-muted); font-size: 8px; }.v2-plan-kpis strong { align-self: end; color: var(--kinko-blue); font-size: 17px; }.v2-add-plan-cost form { display: grid; grid-template-columns: 1.3fr 1fr .7fr .6fr .55fr .75fr; align-items: end; gap: 9px; padding: 0 18px 18px; }.v2-add-plan-cost label { display: grid; gap: 5px; }.v2-add-plan-cost label > span { color: var(--kinko-muted); font-size: 8px; font-weight: 700; }.v2-add-plan-cost .v2-plan-required { display: flex; align-items: center; min-height: 42px; font-size: 8px; }.v2-add-plan-cost .v2-plan-notes { grid-column: span 3; }.v2-plan-costs > header { display: flex; align-items: center; justify-content: space-between; gap: 14px; padding: 17px 18px; border-bottom: 1px solid var(--kinko-line); }.v2-plan-costs > header h2 { margin: 0; font-size: 13px; }.v2-plan-costs > header p { margin: 2px 0 0; color: var(--kinko-muted); font-size: 8px; }.v2-plan-costs > header form { min-width: 170px; }.v2-plan-cost-list { display: grid; padding: 0 15px 15px; }.v2-plan-cost { border-bottom: 1px solid #edf0f4; }.v2-plan-cost:last-child { border-bottom: 0; }.v2-plan-cost.is-cancelled { opacity: .55; }.v2-plan-cost > button { display: grid; grid-template-columns: 38px minmax(0,1fr) 70px 110px 20px; align-items: center; gap: 10px; width: 100%; min-height: 74px; padding: 9px; border: 0; background: transparent; color: var(--kinko-text); text-align: left; }.v2-plan-cost > button > span:nth-child(2) { display: grid; min-width: 0; }.v2-plan-cost > button strong { font-size: 9px; }.v2-plan-cost > button small { overflow: hidden; color: var(--kinko-muted); font-size: 7px; text-overflow: ellipsis; white-space: nowrap; }.v2-plan-cost > button em { padding: 4px 7px; border-radius: 999px; background: #f0f2f5; color: var(--kinko-muted); font-size: 7px; font-style: normal; }.v2-plan-cost > button b { color: var(--kinko-blue); text-align: right; font-size: 10px; }.v2-plan-cost-detail { display: grid; grid-template-columns: .8fr 1.2fr; gap: 16px; margin: 0 8px 12px 46px; padding: 14px; border: 1px solid #dce3ee; border-radius: 12px; background: #fbfcfe; }.v2-plan-cost-detail h3 { margin: 0 0 6px; font-size: 9px; }.v2-plan-cost-detail p { margin: 0 0 8px; color: var(--kinko-muted); font-size: 8px; }.v2-plan-cost-detail a { color: var(--kinko-blue) !important; font-size: 8px; }.v2-plan-cost-actions { display: flex; flex-wrap: wrap; gap: 5px; margin-top: 10px; }.v2-plan-cost-actions form { display: flex; }.v2-plan-options { display: grid; gap: 5px; margin-bottom: 7px; }.v2-plan-options article { display: grid; grid-template-columns: minmax(0,1fr) 30px 30px; align-items: center; gap: 4px; padding: 7px; border: 1px solid var(--kinko-line); border-radius: 9px; background: #fff; }.v2-plan-options article.is-selected { border-color: #aec3ff; background: var(--kinko-blue-soft); }.v2-plan-options span { display: grid; }.v2-plan-options strong { font-size: 8px; }.v2-plan-options small { color: var(--kinko-muted); font-size: 7px; }.v2-plan-options form { display: flex; }

/* Shared inputs and modal primitives for the rewritten views */
body.kinko-v2 .form-label { margin-bottom: 6px; color: #354052; font-size: 11px; font-weight: 700; }
body.kinko-v2 .form-control, body.kinko-v2 .form-select, body.kinko-v2 .input-group-text { min-height: 44px; border: 1px solid #dbe2ec; border-radius: 11px; background-color: #fff; color: var(--kinko-text); font-size: 12px; }
body.kinko-v2 .form-control:focus, body.kinko-v2 .form-select:focus { border-color: var(--kinko-blue); box-shadow: var(--kinko-focus); }
body.kinko-v2 .btn { min-height: 42px; padding: 9px 14px; border-radius: 11px; font-size: 11px; font-weight: 700; }
body.kinko-v2 .btn-primary, body.kinko-v2 a.btn-primary { border-color: var(--kinko-blue); background: var(--kinko-blue); color: #fff !important; }
body.kinko-v2 .btn-outline-primary { border-color: #b9cbff; color: var(--kinko-blue); }
body.kinko-v2 .modal-content, body.kinko-v2 .offcanvas { border: 1px solid var(--kinko-line); border-radius: 20px; box-shadow: 0 28px 80px rgba(24,34,48,.2); }
body.kinko-v2 .modal-header, body.kinko-v2 .offcanvas-header { padding: 18px 20px; border-bottom: 1px solid var(--kinko-line); }
body.kinko-v2 .modal-body, body.kinko-v2 .offcanvas-body { padding: 20px; }
body.kinko-v2 .modal-dialog { max-height: calc(100dvh - 2rem); }
body.kinko-v2 .modal-content { max-height: calc(100dvh - 2rem); overflow: hidden; }
body.kinko-v2 .modal-content > form { display: flex; flex-direction: column; min-height: 0; max-height: calc(100dvh - 2rem); }
body.kinko-v2 .modal-content > form > .modal-body { min-height: 0; overflow-y: auto; overscroll-behavior: contain; }
body.kinko-v2 .modal-footer { flex: 0 0 auto; padding: 14px 20px; border-top: 1px solid var(--kinko-line); background: #fff; }
body.kinko-v2 .alert { padding: 12px 14px; border: 1px solid transparent; border-radius: 12px; font-size: 11px; }
body.kinko-v2 .alert-danger { border-color: #f3c5cc; background: #fff0f2; color: #ac3042; }
body.kinko-v2 .alert-success { border-color: #b8e7cf; background: #eaf8f1; color: #11794d; }

/* Privacy controls */
.kinko-privacy-desktop-item { display: flex; align-items: center; }
.kinko-privacy-toggle { display: inline-flex; align-items: center; gap: 7px; min-height: 40px; padding: 8px 10px; border: 1px solid var(--kinko-line); border-radius: 11px; background: #fff; color: #536071; font-size: 10px; font-weight: 700; }
.kinko-privacy-toggle.is-active { border-color: #b8c9ff; background: var(--kinko-blue-soft); color: var(--kinko-blue); }

/* Transitional surface for specialist and admin screens */
body.kinko-v2 .app-main:not(.v2-page) { min-height: calc(100dvh - var(--kinko-header-height)); margin-top: var(--kinko-header-height); margin-left: var(--kinko-rail-width); padding: 26px clamp(16px,2.2vw,34px) 52px; background: var(--kinko-bg); }.app-main:not(.v2-page) .app-content-header { padding: 0 0 16px; }.app-main:not(.v2-page) .app-content-header .container-fluid,.app-main:not(.v2-page) .app-content > .container-fluid { max-width: 1540px; padding: 0; }.app-main:not(.v2-page) .kinko-page-title { margin: 0; color: var(--kinko-text); font-size: 25px; font-weight: 800; letter-spacing: -.04em; }.app-main:not(.v2-page) .card,.app-main:not(.v2-page) .info-box { overflow: hidden; border: 1px solid var(--kinko-line); border-radius: var(--kinko-radius); background: #fff; box-shadow: var(--kinko-shadow); }.app-main:not(.v2-page) .card-header { min-height: 54px; padding: 15px 18px; border-bottom: 1px solid var(--kinko-line); background: #fff; }.app-main:not(.v2-page) .card-title { margin: 0; font-size: 13px; font-weight: 780; }.app-main:not(.v2-page) .card-body { padding: 18px; }.app-main:not(.v2-page) .card-footer { padding: 14px 18px; border-top: 1px solid var(--kinko-line); background: #fbfcfe; }.app-main:not(.v2-page) .info-box { display: flex; align-items: center; min-height: 105px; padding: 14px; }.app-main:not(.v2-page) .info-box-icon { display: grid; place-items: center; flex: 0 0 42px; width: 42px; height: 42px; border-radius: 12px; background: var(--kinko-blue-soft) !important; color: var(--kinko-blue) !important; }.app-main:not(.v2-page) .info-box-content { display: grid; gap: 4px; margin-left: 11px; }.app-main:not(.v2-page) .info-box-text { color: var(--kinko-muted); font-size: 8px; }.app-main:not(.v2-page) .info-box-number { color: var(--kinko-text); font-size: 16px; }.app-main:not(.v2-page) .table { --bs-table-bg: transparent; font-size: 9px; }.app-main:not(.v2-page) .table > :not(caption) > * > * { padding: 11px; border-color: #edf0f4; }.app-main:not(.v2-page) .badge { border-radius: 999px; font-size: 7px; }.app-main:not(.v2-page) .form-control,.app-main:not(.v2-page) .form-select { min-height: 42px; border-color: #dbe2ec; border-radius: 10px; font-size: 10px; }.app-main:not(.v2-page) .btn { min-height: 38px; border-radius: 10px; font-size: 9px; font-weight: 700; }.app-main:not(.v2-page) .btn-primary { border-color: var(--kinko-blue); background: var(--kinko-blue); }

/* Setup, unlock and recovery */
.kinko-auth-body {
  position: relative;
  min-height: 100dvh;
  overflow-x: hidden;
  background:
    radial-gradient(circle at 12% 15%, rgba(23,105,255,.12), transparent 28%),
    radial-gradient(circle at 88% 88%, rgba(242,130,40,.12), transparent 30%),
    #f5f7fb;
}
.kinko-auth-body::before { display: none; }
.kinko-auth-body .pin-box,
.kinko-auth-body .currency-box {
  position: relative;
  z-index: 1;
  display: grid;
  width: min(100%, 520px);
  margin: 0 auto;
}
.kinko-auth-wordmark {
  position: static;
  z-index: 2;
  justify-self: center;
  width: 180px;
  margin-bottom: 12px;
}
.kinko-auth-mascot {
  position: static;
  z-index: 1;
  width: 154px;
  height: auto;
  margin: 0 auto 14px;
  filter: drop-shadow(0 14px 18px rgba(24,34,48,.1));
}
.kinko-auth-body .card { overflow: hidden; border: 1px solid var(--kinko-line); border-radius: 22px; background: rgba(255,255,255,.97); box-shadow: 0 25px 70px rgba(24,34,48,.14) !important; }
.kinko-auth-body h1 { color: var(--kinko-text); font-size: 26px !important; font-weight: 800; letter-spacing: -.04em; }
.kinko-auth-body .text-secondary { color: var(--kinko-muted) !important; font-size: 11px; }
.kinko-auth-body .form-control,.kinko-auth-body .form-select,.kinko-auth-body .input-group-text { min-height: 48px; border-color: #dbe2ec; }
.kinko-auth-body .btn { min-height: 46px; border-radius: 12px; font-weight: 700; }
.kinko-auth-body .btn-primary { border-color: var(--kinko-blue); background: var(--kinko-blue); }
.kinko-auth-body .recovery-key-box,.kinko-auth-body .recovery-key-display { padding: 14px; border: 1px dashed #f2a45f; border-radius: 12px; background: #fff8f1; color: #7c4c23; font-family: ui-monospace,SFMono-Regular,Menlo,monospace; overflow-wrap: anywhere; }
.kinko-auth-body .currency-icon { display: grid; place-items: center; width: 52px; height: 52px; margin: 0 auto 12px; border-radius: 15px; background: var(--kinko-blue-soft); color: var(--kinko-blue); font-size: 22px; }

/* Mobile app shell */
.kinko-mobile-only { display: none !important; }
@media (min-width: 1800px) {
  :root {
    --kinko-rail-width: 248px;
    --kinko-header-height: 86px;
    --kinko-page-max: 2320px;
  }
  body.kinko-v2 { font-size: 16px; }
  .kinko-brand-rail { padding: 28px 24px 24px; }
  .kinko-brand-rail .kinko-mascot { width: 184px; }
  .kinko-brand-rail h2 { font-size: 22px; }
  .kinko-brand-rail-main > p { font-size: 13px; }
  .kinko-brand-rail li strong { font-size: 13px; }
  .kinko-brand-rail li small { font-size: 11px; }
  .kinko-shell-container { padding-inline: 42px; }
  .kinko-primary-nav a,
  .kinko-nav-more { padding-inline: 16px; font-size: 14px; }
  .kinko-profile-copy strong { font-size: 13px; }
  .kinko-profile-copy small { font-size: 11px; }
  body.kinko-v2 .app-main,
  .v2-page { padding: calc(var(--kinko-header-height) + 36px) 48px 70px; }
  .v2-page > * { width: min(100%, calc(var(--kinko-page-max) - var(--kinko-rail-width) - 84px)); }
  .v2-page-head { margin-bottom: 26px; }
  .v2-page-head h1 { font-size: 42px; }
  .v2-page-head p { font-size: 15px; }
  .v2-period-control { min-height: 52px; }
  .v2-period-control select { height: 46px; font-size: 14px; }
  .v2-period-control button { width: 42px; height: 42px; }
  .v2-kpi-grid,
  .v2-dashboard-primary,
  .v2-dashboard-secondary { gap: 22px; margin-bottom: 22px; }
  .v2-account-card-grid { grid-template-columns: repeat(5,minmax(0,1fr)); gap: 20px; }
  .v2-feature-grid { grid-template-columns: repeat(4,minmax(0,1fr)); gap: 16px; padding: 0 24px 24px; }
  .v2-feature-grid article { min-height: 200px; padding: 20px; }
  .v2-kpi { min-height: 205px; padding: 24px; }
  .v2-kpi-head { font-size: 14px; }
  .v2-kpi-head i { width: 38px; height: 38px; font-size: 18px; }
  .v2-kpi > strong { font-size: 34px; }
  .v2-kpi > small { font-size: 12px; }
  .v2-spark,
  .v2-bars { height: 48px; }
  .v2-section-head { padding: 25px 26px 18px; }
  .v2-section-head h2 { font-size: 19px; }
  .v2-section-head p,
  .v2-section-head > a { font-size: 13px; }
  .v2-trend-panel,
  .v2-account-overview { min-height: 480px; }
  .v2-chart-stage { height: 375px; padding-inline: 24px; }
  .v2-account-rows { padding-inline: 24px; }
  .v2-account-row { min-height: 70px; }
  .v2-account-row strong,
  .v2-account-row b { font-size: 14px; }
  .v2-account-row small { font-size: 12px; }
  .v2-panel-total { font-size: 14px; }
  .v2-page small { font-size: 12px; }
  .v2-page label > span,
  .v2-page dt { font-size: 12px; }
  .v2-page dd { font-size: 14px; }
  .v2-filter-pills a,
  .v2-filter-pills span,
  .v2-filter-bar select,
  .v2-filter-bar input,
  .v2-secondary-button,
  .v2-text-button,
  .v2-text-link { font-size: 13px; }
  .v2-filter-pills a,
  .v2-filter-pills span { min-height: 42px; }
  .v2-recurring-toolbar .v2-filter-pills a,
  .v2-recurring-toolbar .form-select { min-height: 50px; }
  .v2-filter-bar label,
  .v2-filter-bar .v2-secondary-button,
  .v2-filter-privacy { min-height: 50px; }
  .v2-filter-bar select,
  .v2-filter-bar input { height: 46px; }
  .v2-import-steps li { min-height: 50px; font-size: 12px; }
  .v2-import-start-layout { gap: 22px; margin-bottom: 22px; }
  .v2-transaction-head,
  .v2-month-table-head,
  .v2-month-table > a,
  .v2-import-row-head { font-size: 12px; }
  .v2-month-table-head,
  .v2-month-table > a { min-height: 43px; font-size: 14px; }
  .v2-month-table { padding: 0 26px 24px; }
  .v2-spark svg { height: 40px; }
  .v2-account-spark { height: 54px; }
  .v2-allocation-stack { gap: 20px; padding: 4px 26px 26px; }
  .v2-allocation-total { padding: 18px; }
  .v2-allocation-total span { font-size: 12px; }
  .v2-allocation-total strong { font-size: 25px; }
  .v2-allocation-list { gap: 17px; }
  .v2-allocation-list li > div:first-child > span,
  .v2-allocation-list li strong { font-size: 12px; }
  .v2-allocation-track { height: 9px; }
  .v2-identity-target { font-size: 11px; }
  .v2-balance-workspace-head h2 { font-size: 25px; }
  .v2-balance-workspace-head p { font-size: 14px; }
  .v2-balance-group h3 { font-size: 18px; }
  .v2-balance-group header p { font-size: 13px; }
  .v2-balance-group header > strong { font-size: 18px; }
  .v2-balance-item { min-height: 136px; padding: 24px; }
  .v2-balance-copy > strong { font-size: 17px; }
  .v2-balance-metrics dt { font-size: 13px; }
  .v2-balance-metrics dd { font-size: 18px; }
  .v2-balance-item label > span { font-size: 13px; }
  .v2-money-input input { font-size: 18px; }
  .v2-transaction-row,
  .v2-recurring-item,
  .v2-wishlist-item,
  .v2-plan-cost > button { min-height: 84px; }
  .v2-transaction-date b,
  .v2-transaction-copy strong,
  .v2-transaction-amount,
  .v2-category-chip,
  .v2-subaccount-item strong,
  .v2-subaccount-item > b,
  .v2-identity-row strong,
  .v2-alias-list strong,
  .v2-top-categories li > b,
  .v2-top-categories li strong,
  .v2-top-categories li em,
  .v2-balance-item > div:first-child strong,
  .v2-mapping-row strong,
  .v2-import-transaction strong,
  .v2-import-transaction > b,
  .v2-import-target strong,
  .v2-wishlist-item > div strong,
  .v2-wishlist-item > b,
  .v2-purchase-history strong,
  .v2-purchase-history b,
  .v2-recurring-item > div strong,
  .v2-recurring-frequency strong,
  .v2-recurring-next strong,
  .v2-recurring-value strong,
  .v2-plan-switcher nav strong,
  .v2-plan-cost > button strong,
  .v2-plan-cost > button b,
  .v2-plan-options strong { font-size: 13px; }
  .v2-balance-item .v2-balance-copy > strong:first-child { font-size: 17px; }
  .v2-count-badge,
  .v2-import-transaction em,
  .v2-import-extras a,
  .v2-price-card header em,
  .v2-access-state,
  .v2-profile-card > span,
  .v2-text-danger,
  .v2-settings-nav a,
  .v2-wishlist-item > em,
  .v2-wishlist-item > div a,
  .v2-recurring-item > em,
  .v2-plan-switcher nav em,
  .v2-plan-title > div:first-child > span,
  .v2-plan-title em,
  .v2-plan-cost-detail a { font-size: 12px; }
  .v2-account-card-top p,
  .v2-account-caption,
  .v2-account-card footer,
  .v2-muted-copy,
  .v2-highlight-list p,
  .v2-year-highlights p,
  .v2-year-insight p,
  .v2-cashflow-insight p,
  .v2-ai-assistant p,
  .v2-import-upload p,
  .v2-safe-note p,
  .v2-ai-import p,
  .v2-import-review-head p,
  .v2-import-transaction p,
  .v2-import-target p,
  .v2-import-footer p,
  .v2-import-empty p,
  .v2-currency-result p,
  .v2-feature-callout p,
  .v2-price-card header p,
  .v2-feature-grid p,
  .v2-access-hero p,
  .v2-recovery-key p,
  .v2-profile-card p,
  .v2-security-grid p,
  .v2-pin-form p,
  .v2-plan-settings p,
  .v2-wishlist-item > div p,
  .v2-purchase-history p,
  .v2-wishlist-insight p,
  .v2-recurring-item > div p,
  .v2-recurring-insight p,
  .v2-plan-list-empty p,
  .v2-plan-empty p,
  .v2-plan-title p,
  .v2-plan-costs > header p,
  .v2-plan-cost-detail p { font-size: 12px; }
  body.kinko-v2 .form-label { font-size: 13px; }
  body.kinko-v2 .form-control,
  body.kinko-v2 .form-select,
  body.kinko-v2 .input-group-text { min-height: 50px; font-size: 14px; }
  body.kinko-v2 .btn { min-height: 48px; font-size: 13px; }
  .v2-transaction-row,
  .v2-import-row,
  .v2-mapping-row { font-size: 13px; }
  .v2-empty h3 { font-size: 19px; }
  .v2-empty p { font-size: 13px; }
  body.kinko-v2 .app-main:not(.v2-page) { padding: 34px 46px 70px; }
  .app-main:not(.v2-page) .app-content-header .container-fluid,
  .app-main:not(.v2-page) .app-content > .container-fluid { max-width: 1820px; }
  .app-main:not(.v2-page) .kinko-page-title { font-size: 34px; }
  .app-main:not(.v2-page) .card-title { font-size: 16px; }
  .app-main:not(.v2-page) .table { font-size: 12px; }
  .app-main:not(.v2-page) .info-box-text { font-size: 11px; }
  .app-main:not(.v2-page) .info-box-number { font-size: 20px; }
  .app-main:not(.v2-page) .form-control,
  .app-main:not(.v2-page) .form-select { font-size: 13px; }
  .app-main:not(.v2-page) .btn { font-size: 12px; }
  .kinko-auth-body .pin-box,
  .kinko-auth-body .currency-box { width: min(100%, 570px); }
  .kinko-auth-wordmark { width: 190px; }
  .kinko-auth-mascot { width: 180px; }
  .kinko-auth-body h1 { font-size: 31px !important; }
  .kinko-auth-body .text-secondary { font-size: 14px; }
}
@media (min-width: 2400px) {
  .v2-page > * { width: min(100%,2280px); }
  .app-main:not(.v2-page) .app-content-header .container-fluid,
  .app-main:not(.v2-page) .app-content > .container-fluid { max-width: 2280px; }
}
@media (min-width: 768px) and (max-width: 1799.98px) and (orientation: landscape) {
  .v2-account-card-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
  .v2-feature-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }
}
@media (max-width: 1199.98px) {
  :root { --kinko-rail-width: 0px; }
  .kinko-brand-rail { display: none; }
  .kinko-desktop-header > .container-fluid > .kinko-wordmark { display: inline-flex; width: 150px; }
  .kinko-primary-nav a, .kinko-nav-more { padding-inline: 9px; font-size: 11px; }
  body.kinko-v2 .app-main, .v2-page { margin-left: 0; }
}
@media (max-width: 767.98px), (min-width: 768px) and (max-width: 1024px) and (orientation: portrait) {
  :root { --kinko-header-height: 68px; }
  .kinko-desktop-header { display: none !important; }
  .kinko-mobile-only { display: flex !important; }
  body.kinko-v2 .app-main, .v2-page { min-height: 100dvh; margin: 0; padding: calc(86px + env(safe-area-inset-top)) 14px calc(100px + env(safe-area-inset-bottom)); }
  .v2-page > * { width: 100%; }
  .kinko-mobile-header { position: fixed; z-index: 1050; top: 0; right: 0; left: 0; align-items: center; min-height: calc(68px + env(safe-area-inset-top)); padding: calc(10px + env(safe-area-inset-top)) 15px 10px; border-bottom: 1px solid rgba(230,235,242,.92); background: rgba(255,255,255,.97); backdrop-filter: blur(18px); }
  .kinko-mobile-header-brand { display: inline-flex; flex: 0 0 auto; width: 124px; color: var(--kinko-ink) !important; }
  .kinko-mobile-header-brand img { display: block; width: 100%; height: auto; }
  .kinko-mobile-header-copy { display: none; }
  .kinko-mobile-avatar-button, .kinko-mobile-privacy-button { display: grid; place-items: center; flex: 0 0 40px; width: 40px; height: 40px; margin-left: 8px; padding: 0; overflow: hidden; border: 1px solid var(--kinko-line); border-radius: 50%; background: #fff; color: #536071; }
  .kinko-mobile-privacy-button { margin-left: auto; border-radius: 12px; }
  .kinko-mobile-avatar-button img { width: 100%; height: 100%; object-fit: cover; }
  .kinko-mobile-bottom-nav { position: fixed; z-index: 1050; right: 0; bottom: 0; left: 0; align-items: flex-start; justify-content: space-around; min-height: calc(72px + env(safe-area-inset-bottom)); padding: 8px max(8px, env(safe-area-inset-right)) env(safe-area-inset-bottom) max(8px, env(safe-area-inset-left)); border-top: 1px solid var(--kinko-line); background: rgba(255,255,255,.98); box-shadow: 0 -10px 28px rgba(24,34,48,.07); }
  .kinko-mobile-nav-item { position: relative; display: flex; flex: 1 1 20%; flex-direction: column; align-items: center; justify-content: center; gap: 3px; min-width: 0; min-height: 52px; padding: 4px 2px; border: 0; background: transparent; color: #697586 !important; font-size: 9px; font-weight: 650; }
  .kinko-mobile-nav-item > i { font-size: 18px; }
  .kinko-mobile-nav-item.is-active { color: var(--kinko-blue) !important; }
  .kinko-mobile-nav-add { margin-top: -26px; }
  .kinko-mobile-nav-add-icon { display: grid; place-items: center; width: 54px; height: 54px; border: 4px solid #fff; border-radius: 50%; background: var(--kinko-blue); color: #fff; box-shadow: 0 8px 22px rgba(23,105,255,.3); }
  .kinko-mobile-sheet { z-index: 1060; right: 8px !important; bottom: calc(80px + env(safe-area-inset-bottom)) !important; left: 8px !important; width: auto !important; max-height: min(calc(100dvh - 96px - env(safe-area-inset-bottom)),760px); border-radius: 22px !important; }
  .kinko-mobile-sheet .offcanvas-header { flex: 0 0 auto; }
  .kinko-mobile-sheet .offcanvas-body { min-height: 0; padding-bottom: 18px; overscroll-behavior: contain; }
  .offcanvas-backdrop.show { z-index: 1055; }
  .kinko-mobile-sheet-kicker { display: block; margin-bottom: 3px; color: var(--kinko-muted); font-size: 10px; font-weight: 650; }
  .kinko-mobile-sheet-profile { display: flex; align-items: center; gap: 12px; }
  .kinko-mobile-sheet-avatar { display: grid; place-items: center; width: 48px; height: 48px; overflow: hidden; border-radius: 50%; background: var(--kinko-blue-soft); color: var(--kinko-blue); font-weight: 800; }
  .kinko-mobile-sheet-avatar img { width: 100%; height: 100%; object-fit: cover; }
  .kinko-mobile-action-list, .kinko-mobile-menu-list { display: grid; gap: 8px; }
  .kinko-mobile-action-card, .kinko-mobile-menu-list a { display: flex; align-items: center; gap: 12px; min-height: 58px; padding: 11px; border: 1px solid var(--kinko-line); border-radius: 13px; color: var(--kinko-text) !important; }
  .kinko-mobile-action-card > span:nth-child(2) { display: grid; flex: 1; }
  .kinko-mobile-action-card small { color: var(--kinko-muted); font-size: 9px; }
  .kinko-mobile-action-icon { display: grid; place-items: center; width: 38px; height: 38px; border-radius: 11px; }
  .kinko-mobile-menu-grid { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; margin-bottom: 16px; }
  .kinko-mobile-menu-grid a { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 6px; min-height: 74px; padding: 7px 3px; border: 1px solid var(--kinko-line); border-radius: 13px; color: #536071 !important; text-align: center; font-size: 9px; font-weight: 650; }
  .kinko-mobile-menu-grid a i { color: var(--kinko-blue); font-size: 18px; }
  .v2-page-head { align-items: flex-start; margin-bottom: 13px; }
  .v2-page-head h1 { font-size: 25px; }
  .v2-page-head p { display: none; }
  .v2-period-control { min-height: 42px; padding-left: 10px; }
  .v2-period-control select { min-width: 74px; height: 36px; font-size: 11px; }
  .v2-period-control select[name="year"] { display: none; }
  .v2-kpi-grid { grid-template-columns: 1fr; gap: 9px; margin-bottom: 12px; }
  .v2-kpi { min-height: 102px; padding: 14px; }
  .v2-kpi > strong { margin-top: 4px; font-size: 20px; }
  .v2-kpi > small { font-size: 8px; }
  .v2-kpi-head i { width: 28px; height: 28px; }
  .v2-spark, .v2-bars { right: 14px; bottom: 13px; left: auto; width: 116px; }
  .v2-mini-ring { right: 15px; bottom: 16px; width: 54px; height: 54px; }
  .v2-dashboard-primary, .v2-dashboard-secondary { display: flex; align-items: stretch; flex-direction: column; gap: 11px; margin-bottom: 11px; }
  .v2-trend-panel, .v2-account-overview, .v2-dashboard-secondary > .v2-panel { min-height: 0; }
  .v2-trend-panel { order: 1; }
  .v2-account-overview { order: 2; }
  .v2-chart-stage { height: 230px; }
  .v2-section-head { padding: 16px 15px 10px; }
  .v2-section-head h2 { font-size: 13px; }
  .v2-account-rows { padding: 0 14px; }
  .v2-account-row { min-height: 58px; }
  .v2-dashboard-secondary .v2-allocation-panel { display: block; order: 1; }
  .v2-dashboard-secondary .v2-month-summary { order: 2; }
  .v2-dashboard-secondary .v2-progress-panel { order: 3; }
  .v2-mascot-banner { grid-template-columns: 92px minmax(0,1fr); gap: 10px; min-height: 128px; padding: 10px 14px; }
  .v2-mascot-banner .kinko-mascot { width: 95px; margin: 0 0 -18px -8px; }
  .v2-mascot-banner h2 { font-size: 15px; }
  .v2-mascot-banner p { font-size: 9px; }
  .v2-mascot-banner .v2-button { grid-column: 1 / -1; width: 100%; }
  .v2-page-head > .v2-button { min-width: 42px; width: 42px; height: 42px; padding: 0; overflow: hidden; font-size: 0; }
  .v2-page-head > .v2-button i { font-size: 16px; }
  .v2-account-card-grid { display: flex; flex-direction: column; gap: 9px; margin-bottom: 11px; }
  .v2-account-card { min-height: 0; padding: 13px; }
  .v2-account-card-top { grid-template-columns: max-content minmax(0,1fr) auto; }
  .v2-account-balance { position: absolute; right: 54px; margin-top: -34px; font-size: 16px; }
  .v2-account-caption { margin: 8px 0 0 67px; }
  .v2-account-spark { display: none; }
  .v2-account-card footer { margin-top: 10px; padding-top: 9px; border-top: 1px solid #eef1f5; }
  .v2-accounts-middle, .v2-accounts-bottom { display: flex; align-items: stretch; flex-direction: column; gap: 11px; margin-bottom: 11px; }
  .v2-accounts-middle > .v2-panel { min-height: 0; }
  .v2-subaccount-panel { order: 2; }
  .v2-total-overview { order: 1; min-height: 190px !important; }
  .v2-allocation-panel { display: block; order: 3; }
  .v2-allocation-layout { grid-template-columns: 145px minmax(0,1fr); }
  .v2-donut-wrap { height: 145px; }
  .v2-accounts-bottom .v2-identity-panel { order: 2; }
  .v2-accounts-bottom .v2-alias-panel { order: 3; }
  .v2-account-insight { order: 1; display: grid; grid-template-columns: minmax(0,1fr) 100px; min-height: 155px; padding: 17px; }
  .v2-account-insight .kinko-mascot { grid-row: 1 / span 2; grid-column: 2; width: 108px; margin: 0 -8px -18px 0; }
  .v2-account-insight .v2-button { grid-column: 1 / -1; margin-top: 10px; }
  .v2-monthly-analysis, .v2-monthly-highlights { display: flex; flex-direction: column; gap: 11px; margin-bottom: 11px; }
  .v2-monthly-analysis > .v2-panel, .v2-monthly-highlights > article { min-height: 0; }
  .v2-category-chart-layout { grid-template-columns: 150px minmax(0,1fr); gap: 8px; padding: 4px 14px 16px; }
  .v2-category-chart-layout .v2-donut-wrap { height: 150px; }
  .v2-top-categories { display: block; }
  .v2-monthly-highlights .v2-highlight-list { order: 1; }
  .v2-monthly-highlights .v2-outlook-panel { order: 2; }
  .v2-monthly-highlights .v2-month-status-panel { order: 3; }
  .v2-balance-workspace { margin-bottom: 11px; }
  .v2-balance-workspace-head { align-items: flex-start; flex-direction: column; padding: 16px; }
  .v2-balance-workspace-head > div:last-child { width: 100%; }
  .v2-balance-workspace-head .v2-secondary-button { flex: 1; }
  .v2-balance-groups { padding: 11px; }
  .v2-balance-group > header { grid-template-columns: max-content minmax(0,1fr); }
  .v2-balance-group header > strong { grid-column: 2; }
  .v2-balance-item { grid-template-columns: 1fr; gap: 10px; padding: 13px; }
  .v2-balance-item details ul { position: static; width: 100%; }
  .v2-balance-savebar { position: sticky; bottom: calc(72px + env(safe-area-inset-bottom)); z-index: 5; padding: 12px 14px; }
  .v2-yearly-primary, .v2-yearly-secondary, .v2-yearly-bottom { display: flex; flex-direction: column; gap: 11px; margin-bottom: 11px; }
  .v2-yearly-primary > .v2-panel, .v2-yearly-secondary > .v2-panel { min-height: 0; }
  .v2-year-bars .v2-chart-stage { height: 230px; }
  .v2-month-table-panel { display: block; }
  .v2-month-table { display: grid; gap: 8px; padding: 0 12px 12px; }
  .v2-month-table-head { display: none; }
  .v2-month-table > a { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 10px 14px; min-height: 0; padding: 12px; border: 1px solid var(--kinko-line); border-radius: 12px; background: #fbfcfe; font-size: 12px; }
  .v2-month-table > a > span { display: grid; gap: 2px; align-content: start; justify-items: start; min-width: 0; text-align: left; }
  .v2-month-table > a > span:first-child { grid-column: 1 / -1; padding-bottom: 8px; border-bottom: 1px solid var(--kinko-line); font-size: 14px; font-weight: 800; }
  .v2-month-table > a > span:not(:first-child)::before { content: attr(data-label); color: var(--kinko-muted); font-size: 9px; font-weight: 650; }
  .v2-yearly-secondary .v2-year-categories { order: 1; }
  .v2-yearly-secondary .v2-year-assets { order: 2; }
  .v2-year-categories .v2-category-chart-layout { grid-template-columns: 145px minmax(0,1fr); }
  .v2-year-categories .v2-donut-wrap { height: 145px; }
  .v2-year-assets .v2-chart-stage { height: 220px; }
  .v2-year-insight { grid-template-columns: 112px minmax(0,1fr); min-height: 175px; padding: 14px; }
  .v2-year-insight .kinko-mascot { width: 120px; margin: 0 0 -22px -10px; }
  .v2-year-insight h2 { font-size: 16px; }
  .v2-year-insight .v2-button { min-height: 38px; padding: 8px 10px; }
  .v2-head-actions { gap: 6px; }
  .v2-head-actions .v2-secondary-button, .v2-head-actions .v2-button { width: 42px; min-width: 42px; padding: 0; overflow: hidden; font-size: 0; }
  .v2-head-actions i { font-size: 15px; }
  .v2-head-actions .v2-button-badge { display: none; }
  .v2-filter-pills { flex-wrap: nowrap; margin-right: -16px; margin-left: 0; overflow-x: auto; padding-right: 16px; scrollbar-width: none; }
  .v2-filter-pills::-webkit-scrollbar { display: none; }
  .v2-filter-pills a, .v2-filter-pills span { flex: 0 0 auto; }
  .v2-filter-bar { grid-template-columns: 1fr auto; padding: 8px; }
  .v2-filter-bar > label:nth-of-type(2), .v2-filter-bar .v2-search-field, .v2-filter-privacy { display: none; }
  .v2-filter-bar > label:first-of-type { min-width: 0; }
  .v2-filter-bar .v2-secondary-button { min-width: 42px; padding-inline: 9px; overflow: hidden; font-size: 0; }
  .v2-filter-bar .v2-secondary-button i { font-size: 14px; }
  .v2-cashflow-layout { display: flex; flex-direction: column; gap: 11px; margin-bottom: 11px; }
  .v2-transactions-panel { order: 1; border: 0; background: transparent; box-shadow: none; }
  .v2-transaction-head { display: none; }
  .v2-transaction-list { display: grid; gap: 8px; }
  .v2-transaction-row { position: relative; grid-template-columns: 38px minmax(0,1fr) auto; grid-template-rows: auto auto; gap: 3px 9px; min-height: 72px; padding: 11px; border: 1px solid var(--kinko-line); border-radius: 13px; background: #fff; box-shadow: 0 4px 14px rgba(24,34,48,.035); }
  .v2-transaction-date { grid-row: 1 / span 2; align-self: center; }
  .v2-transaction-date > b { display: none; }
  .v2-transaction-copy { grid-column: 2; grid-row: 1; }
  .v2-transaction-row > span:nth-child(3) { grid-column: 2; grid-row: 2; }
  .v2-transaction-account { display: none; }
  .v2-transaction-amount { grid-column: 3; grid-row: 1; align-self: center; }
  .v2-transaction-row > .dropdown { position: absolute; right: 3px; bottom: 2px; }
  .v2-transaction-row > .dropdown .v2-icon-button { width: 29px; height: 29px; }
  .v2-cashflow-aside { order: 2; }
  .v2-cashflow-summary { order: 1; }
  .v2-cashflow-insight { order: 2; display: grid; grid-template-columns: minmax(0,1fr) 105px; min-height: 165px; padding: 16px; }
  .v2-cashflow-insight .kinko-mascot { grid-column: 2; grid-row: 1 / span 4; align-self: end; width: 112px; margin: 0 -9px -19px 0; }
  .v2-cashflow-insight strong, .v2-cashflow-insight p, .v2-cashflow-insight a { grid-column: 1; }
  .v2-cashflows-page > .v2-mascot-banner { display: none; }
  .v2-import-page .v2-page-head > .v2-secondary-button { width: 42px; min-width: 42px; padding: 0; overflow: hidden; font-size: 0; }
  .v2-import-page .v2-page-head > .v2-secondary-button i { font-size: 15px; }
  .v2-import-steps { margin-bottom: 12px; }
  .v2-import-steps li { justify-content: center; }
  .v2-import-steps li strong { display: none; }
  .v2-import-steps li::after { right: -50%; left: 50%; }
  .v2-import-upload { padding: 15px; }
  .v2-import-upload-copy { align-items: flex-start; }
  .v2-import-upload-form { grid-template-columns: 1fr 1fr; }
  .v2-import-upload-form label:first-of-type, .v2-import-upload-form .v2-file-field, .v2-import-upload-form .v2-button { grid-column: 1 / -1; }
  .v2-import-grid { display: flex; flex-direction: column; gap: 11px; margin-bottom: 11px; }
  .v2-mapping-list { padding: 0 13px 13px; }
  .v2-mapping-row { grid-template-columns: 1fr; gap: 7px; padding: 12px 0; }
  .v2-import-options-body { padding: 0 13px 13px; }
  .v2-import-review-head { align-items: flex-start; flex-direction: column; padding: 14px; }
  .v2-import-review-head > div:last-child { width: 100%; }
  .v2-import-review-head .v2-secondary-button { flex: 0 0 42px; width: 42px; padding: 0; overflow: hidden; font-size: 0; }
  .v2-import-review-head .v2-secondary-button i { font-size: 14px; }
  .v2-import-review-head .v2-button { flex: 1; }
  .v2-import-row-head { display: none; }
  .v2-import-rows { display: grid; gap: 9px; padding: 10px; background: #f6f8fb; }
  .v2-import-row { position: relative; display: grid; grid-template-columns: 28px minmax(0,1fr); gap: 11px; padding: 13px; border: 1px solid var(--kinko-line); border-radius: 13px; background: #fff; }
  .v2-import-check { grid-row: 1 / span 4; align-self: start; min-height: 36px; }
  .v2-import-transaction, .v2-import-classification, .v2-import-target, .v2-import-extras { grid-column: 2; }
  .v2-import-classification, .v2-import-target, .v2-import-extras { padding-top: 9px; border-top: 1px solid #edf0f4; }
  .v2-import-transaction { grid-template-columns: 32px minmax(0,1fr); }
  .v2-import-transaction > b { grid-column: 2; }
  .v2-import-footer { align-items: stretch; flex-direction: column; position: sticky; bottom: calc(72px + env(safe-area-inset-bottom)); z-index: 4; }
  .v2-import-footer .v2-button { width: 100%; }
  .v2-import-empty { grid-template-columns: 100px minmax(0,1fr); min-height: 160px; padding: 13px; }
  .v2-import-empty .kinko-mascot { width: 110px; margin: 0 0 -18px -12px; }
  .v2-import-empty h2 { font-size: 15px; }
  .v2-import-empty p { font-size: 9px; }
  .v2-currency-page .v2-base-currency { display: none; }
  .v2-currency-layout { display: flex; flex-direction: column; gap: 11px; margin-bottom: 11px; }
  .v2-converter-card, .v2-currency-result { min-height: 0; }
  .v2-converter-body { gap: 16px; padding: 14px; }
  .v2-converter-amount input { height: 60px; font-size: 22px; }
  .v2-currency-pair { grid-template-columns: 1fr 36px 1fr; gap: 6px; }
  .v2-swap-currency { width: 36px; height: 42px; }
  .v2-currency-result { min-height: 285px; }
  .v2-currency-result strong { font-size: 26px; }
  .v2-upgrade-page .v2-plan-badge { display: none; }
  .v2-access-hero { grid-template-columns: 100px minmax(0,1fr); gap: 10px; min-height: 180px; padding: 14px; }.v2-access-hero .kinko-mascot { width: 110px; margin: 0 0 -25px -10px; }.v2-access-hero h2 { font-size: 22px; }.v2-access-hero p { font-size: 9px; }.v2-access-state { align-items: flex-start; border-radius: 10px; }.v2-access-hero-summary { grid-column: 1 / -1; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 7px; padding: 10px; }.v2-access-hero-summary li { font-size: 9px; }
  .v2-pricing-grid { grid-template-columns: 1fr; gap: 11px; margin-bottom: 11px; }
  .v2-price-card { min-height: 0; padding: 17px; }
  .v2-price-card header > strong { font-size: 23px; }
  .v2-feature-grid { grid-template-columns: 1fr; padding: 0 13px 13px; }
  .v2-feature-grid article { min-height: 150px; }
  .v2-free-access { grid-template-columns: 1fr; gap: 12px; }
  .v2-settings-page .v2-security-state { display: none; }
  .v2-settings-layout { display: flex; flex-direction: column; align-items: stretch; gap: 11px; }
  .v2-settings-sidebar { position: static; display: contents; }
  .v2-profile-card { order: -3; grid-template-columns: 64px minmax(0,1fr); justify-items: start; text-align: left; padding: 14px; }
  .v2-profile-avatar { grid-row: 1 / span 3; width: 58px; height: 58px; }
  .v2-profile-card h2 { align-self: end; margin: 0; }.v2-profile-card p { align-self: start; }.v2-profile-card > span { margin-top: 2px; }
  .v2-settings-nav { order: -2; grid-auto-flow: column; grid-template-columns: repeat(5,1fr); overflow-x: auto; }
  .v2-settings-nav a { flex-direction: column; gap: 3px; padding: 7px 4px; text-align: center; font-size: 9px; }.v2-settings-nav a i { font-size: 14px; }
  .v2-avatar-form { order: -1; grid-template-columns: 1fr auto; }.v2-avatar-form label { min-width: 0; }.v2-settings-sidebar > form:last-child { display: none; }
  .v2-settings-content { width: 100%; gap: 11px; }
  .v2-settings-forms,.v2-security-grid,.v2-settings-pair { grid-template-columns: 1fr; gap: 11px; }
  .v2-settings-forms,.v2-security-grid { padding: 0 13px 13px; }
  .v2-pin-form { grid-template-columns: 1fr; margin: 0 13px 13px; }
  .v2-legal-links { grid-template-columns: 1fr; }
  .v2-wishlist-layout { display: flex; flex-direction: column; gap: 11px; }
  .v2-wishlist-items { gap: 8px; padding: 0 10px 10px; }
  .v2-wishlist-item { position: relative; grid-template-columns: 36px minmax(0,1fr) auto; grid-template-rows: auto auto; gap: 4px 9px; min-height: 80px; padding: 10px; border: 1px solid var(--kinko-line); border-radius: 12px; }
  .v2-wishlist-item > .v2-icon { grid-row: 1 / span 2; }
  .v2-wishlist-item > div { grid-column: 2; grid-row: 1; }.v2-wishlist-item > em { grid-column: 2; grid-row: 2; }.v2-wishlist-item > b { grid-column: 3; grid-row: 1; }.v2-wishlist-actions { grid-column: 3; grid-row: 2; }
  .v2-wishlist-layout > aside { gap: 11px; }
  .v2-wishlist-insight { display: grid; grid-template-columns: 100px minmax(0,1fr); align-items: center; min-height: 145px; text-align: left; }.v2-wishlist-insight .kinko-mascot { grid-row: 1 / span 2; width: 105px; margin: 0; }
  .v2-recurring-toolbar { align-items: stretch; flex-direction: column; }.v2-recurring-toolbar form { min-width: 0; }.v2-recurring-layout { display: flex; flex-direction: column; gap: 11px; }.v2-recurring-items { gap: 8px; padding: 0 10px 10px; }.v2-recurring-item { position: relative; grid-template-columns: 36px minmax(0,1fr) auto; grid-template-rows: repeat(3,auto); gap: 3px 9px; min-height: 96px; padding: 10px; border: 1px solid var(--kinko-line); border-radius: 12px; }.v2-recurring-item > .v2-icon { grid-row: 1 / span 3; }.v2-recurring-item > div { grid-column: 2; grid-row: 1; }.v2-recurring-frequency { grid-column: 2; grid-row: 2; }.v2-recurring-next { display: none; }.v2-recurring-value { grid-column: 3; grid-row: 1; }.v2-recurring-item > em { grid-column: 2; grid-row: 3; }.v2-recurring-actions { grid-column: 3; grid-row: 2 / span 2; align-self: end; }.v2-recurring-layout > aside { gap: 11px; }.v2-recurring-insight { display: grid; grid-template-columns: 100px minmax(0,1fr); align-items: center; min-height: 145px; text-align: left; }.v2-recurring-insight .kinko-mascot { grid-row: 1 / span 2; width: 108px; margin: 0; }
  .v2-plans-shell { display: flex; flex-direction: column; gap: 11px; }.v2-plan-switcher { position: static; width: 100%; }.v2-plan-switcher nav { grid-auto-flow: column; grid-auto-columns: minmax(185px,78%); overflow-x: auto; }.v2-plan-switcher > .v2-secondary-button { display: none; }.v2-plan-workspace { gap: 11px; width: 100%; }.v2-plan-empty { grid-template-columns: 100px minmax(0,1fr); min-height: 190px; padding: 14px; }.v2-plan-empty .kinko-mascot { width: 110px; margin: 0 0 -25px -15px; }.v2-plan-empty h2 { font-size: 15px; }.v2-plan-title { flex-direction: column; padding: 15px; }.v2-plan-title > div:last-child { width: 100%; }.v2-plan-title > div:last-child .v2-button { flex: 1; }.v2-plan-kpis { grid-template-columns: repeat(2,minmax(0,1fr)); }.v2-plan-kpis article { min-height: 95px; }.v2-add-plan-cost form { grid-template-columns: 1fr; padding: 0 13px 13px; }.v2-add-plan-cost .v2-plan-notes { grid-column: auto; }.v2-plan-costs > header { align-items: stretch; flex-direction: column; }.v2-plan-costs > header form { min-width: 0; }.v2-plan-cost-list { gap: 8px; padding: 9px; }.v2-plan-cost { border: 1px solid var(--kinko-line); border-radius: 12px; }.v2-plan-cost > button { grid-template-columns: 36px minmax(0,1fr) auto; grid-template-rows: auto auto; }.v2-plan-cost > button > span:first-child { grid-row: 1 / span 2; }.v2-plan-cost > button em { grid-column: 2; grid-row: 2; justify-self: start; }.v2-plan-cost > button b { grid-column: 3; grid-row: 1; }.v2-plan-cost > button > i { grid-column: 3; grid-row: 2; justify-self: end; }.v2-plan-cost-detail { grid-template-columns: 1fr; margin: 0 8px 8px; }
  .v2-import-start-layout { display: flex; flex-direction: column; gap: 11px; margin-bottom: 11px; }
  .v2-balance-copy > strong { font-size: 15px; }
  .v2-balance-metrics dt { font-size: 10px; }
  .v2-balance-metrics dd { font-size: 14px; }
  .v2-balance-item label > span { font-size: 10px; }
  .v2-money-input input { font-size: 17px; }
  .v2-institution-choice-grid { grid-template-columns: 1fr; }
  .v2-institution-choice { min-height: 62px; }
  .v2-custom-account-options { grid-template-columns: 1fr; }
  .v2-modal-subtitle { font-size: 10px; }
  body.kinko-v2 .app-main:not(.v2-page) { min-height: 100dvh; margin: 0; padding: calc(86px + env(safe-area-inset-top)) 14px calc(100px + env(safe-area-inset-bottom)); }
}
@media (max-width: 420px) {
  .kinko-auth-wordmark { display: flex; justify-content: center; width: 150px; margin-bottom: 10px; }
  .kinko-auth-mascot { display: block; width: 96px; margin-bottom: 10px; }
  .kinko-auth-body .card-body { padding: 24px !important; }
  .v2-page-head { gap: 8px; }
  .v2-period-control > i { display: none; }
  .v2-period-control select { min-width: 68px; }
  .kinko-mobile-menu-grid { grid-template-columns: repeat(3,minmax(0,1fr)); }
}

/* Keep mascot artwork fully inside its own grid cell at every viewport. */
.v2-mascot-banner .kinko-mascot,
.v2-account-insight .kinko-mascot,
.v2-year-insight .kinko-mascot,
.v2-cashflow-insight .kinko-mascot,
.v2-import-empty .kinko-mascot,
.v2-currency-result .kinko-mascot,
.v2-access-hero .kinko-mascot,
.v2-wishlist-insight .kinko-mascot,
.v2-recurring-insight .kinko-mascot,
.v2-plan-empty .kinko-mascot { margin: 0; }
.v2-mascot-banner .kinko-mascot { align-self: center; width: 125px; }
.v2-account-insight .kinko-mascot,
.v2-cashflow-insight .kinko-mascot,
.v2-wishlist-insight .kinko-mascot,
.v2-recurring-insight .kinko-mascot { margin-right: auto; margin-left: auto; }
.v2-access-hero .kinko-mascot,
.v2-year-insight .kinko-mascot,
.v2-import-empty .kinko-mascot,
.v2-plan-empty .kinko-mascot { align-self: center; }
.v2-outlook-panel dl { width: calc(100% - 125px); }
.v2-outlook-panel .kinko-mascot { right: 12px; bottom: 12px; width: 104px; }

/* Smart Import V2 */
.v2-smart-import-page { display: grid; gap: 16px; }
.v2-smart-title { display: flex; align-items: center; gap: 8px; }
.v2-smart-title h1 { margin: 0; }
.v2-smart-title span { padding: 4px 8px; border-radius: 7px; background: var(--kinko-blue-soft); color: var(--kinko-blue); font-size: 10px; font-weight: 800; }
.v2-smart-title span.is-pro { background: var(--kinko-orange-soft); color: var(--kinko-orange); }
.v2-smart-alert { display: flex; align-items: flex-start; gap: 12px; padding: 14px 16px; border: 1px solid; border-radius: var(--kinko-radius-sm); background: #fff; }
.v2-smart-alert > i { margin-top: 2px; font-size: 18px; }.v2-smart-alert div { flex: 1; }.v2-smart-alert p,.v2-smart-alert ul { margin: 3px 0 0; }.v2-smart-alert.is-error { border-color: #f1c8ce; color: #a72c3d; background: #fff8f9; }.v2-smart-alert.is-success { border-color: #bde4d1; color: #0f7549; background: #f5fcf8; }
.v2-smart-locked { display: grid; grid-template-columns: 170px minmax(0,1fr); align-items: center; gap: 22px; min-height: 260px; padding: 26px; }.v2-smart-locked .kinko-mascot { width: 160px; }.v2-smart-locked h2 { margin: 0; }.v2-smart-locked p { color: var(--kinko-muted); }
.v2-smart-upload-panel { padding: 18px; }.v2-smart-upload-panel form { display: grid; gap: 14px; }
.v2-smart-period { display: flex; justify-content: flex-end; gap: 8px; }.v2-smart-period label { display: flex; align-items: center; gap: 8px; color: var(--kinko-muted); font-size: 11px; font-weight: 700; }.v2-smart-period select { width: 150px; }.v2-smart-period input { width: 96px; }
.v2-smart-dropzone { display: grid; justify-items: center; min-height: 250px; padding: 28px; border: 1.5px dashed #b9c7dc; border-radius: var(--kinko-radius); background: #fbfdff; text-align: center; cursor: pointer; transition: border-color .18s ease,background .18s ease,transform .18s ease; }.v2-smart-dropzone:hover,.v2-smart-dropzone.is-dragging { border-color: var(--kinko-blue); background: var(--kinko-blue-soft); transform: translateY(-1px); }.v2-smart-dropzone > input { position: absolute; width: 1px; height: 1px; overflow: hidden; opacity: 0; }.v2-smart-upload-icon { display: grid; place-items: center; width: 52px; height: 52px; border-radius: 16px; background: var(--kinko-blue-soft); color: var(--kinko-blue); font-size: 23px; }.v2-smart-dropzone > strong { margin-top: 14px; color: var(--kinko-ink); font-size: 20px; }.v2-smart-dropzone > p { margin: 5px 0 15px; color: var(--kinko-muted); }.v2-smart-dropzone > small { margin-top: 8px; color: var(--kinko-faint); font-size: 10px; }.v2-smart-dropzone ul { display: flex; flex-wrap: wrap; justify-content: center; gap: 6px; margin: 10px 0 0; padding: 0; list-style: none; }.v2-smart-dropzone li { padding: 5px 8px; border: 1px solid var(--kinko-line); border-radius: 8px; background: #fff; color: var(--kinko-muted); font-size: 10px; }
.v2-smart-upload-footer { display: flex; align-items: center; justify-content: space-between; gap: 14px; }.v2-smart-upload-footer > div { display: flex; flex-wrap: wrap; align-items: center; gap: 7px; color: var(--kinko-muted); font-size: 10px; }.v2-smart-upload-footer b { padding: 5px 8px; border: 1px solid var(--kinko-line); border-radius: 8px; color: var(--kinko-text); background: #fff; }
.v2-smart-files,.v2-smart-fallback,.v2-smart-mappings { overflow: hidden; }.v2-smart-files > .v2-section-head,.v2-smart-fallback > .v2-section-head,.v2-smart-mappings > .v2-section-head { padding: 17px 18px; }.v2-smart-file-table { padding: 0 14px 14px; }.v2-smart-file-head,.v2-smart-file-row > summary { display: grid; grid-template-columns: 1.4fr .8fr .65fr 1fr .65fr .65fr; gap: 12px; align-items: center; }.v2-smart-file-head { padding: 0 12px 8px; color: var(--kinko-muted); font-size: 9px; font-weight: 750; text-transform: uppercase; letter-spacing: .04em; }.v2-smart-file-row { border: 1px solid var(--kinko-line); border-radius: 10px; }.v2-smart-file-row + .v2-smart-file-row { margin-top: 7px; }.v2-smart-file-row > summary { min-height: 52px; padding: 9px 12px; cursor: pointer; list-style: none; }.v2-smart-file-row > summary::-webkit-details-marker { display: none; }.v2-smart-file-row > summary span:first-child { display: flex; align-items: center; gap: 8px; min-width: 0; }.v2-smart-file-row > summary strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.v2-smart-file-row > div { padding: 10px 12px; border-top: 1px solid var(--kinko-line); background: #fafcff; color: var(--kinko-muted); }.v2-smart-file-row > div p { margin: 4px 0 0; }.v2-smart-file-row .is-confidence { color: var(--kinko-green); font-weight: 800; }
.v2-smart-status { display: inline-flex; align-items: center; width: max-content; padding: 4px 8px; border-radius: 7px; background: var(--kinko-blue-soft); color: var(--kinko-blue); font-size: 9px; font-weight: 800; }.v2-smart-status.is-parsed,.v2-smart-status.is-ready { background: #eaf8f1; color: var(--kinko-green); }.v2-smart-status.is-error,.v2-smart-status.is-duplicate { background: #fff0f2; color: var(--kinko-red); }.v2-smart-status.is-unknown,.v2-smart-status.is-review { background: var(--kinko-orange-soft); color: var(--kinko-orange); }.v2-smart-status.is-skipped { background: #f0f2f5; color: var(--kinko-muted); }
.v2-smart-fallback form { padding: 0 14px 14px; }.v2-smart-fallback-file { padding: 14px; border: 1px solid var(--kinko-line); border-radius: 12px; }.v2-smart-fallback-file + .v2-smart-fallback-file { margin-top: 10px; }.v2-smart-fallback-head { display: flex; align-items: flex-end; justify-content: space-between; gap: 16px; }.v2-smart-fallback-head > div { display: flex; align-items: center; gap: 10px; }.v2-smart-fallback-head > div > i { color: var(--kinko-orange); font-size: 24px; }.v2-smart-fallback-head span { display: grid; }.v2-smart-fallback-head small { color: var(--kinko-muted); }.v2-smart-fallback-head label { min-width: 240px; }.v2-smart-fallback-head label > span,.v2-smart-mapper-grid label > span { display: block; margin-bottom: 4px; color: var(--kinko-muted); font-size: 10px; font-weight: 700; }.v2-smart-column-mapper { margin-top: 14px; padding-top: 14px; border-top: 1px solid var(--kinko-line); }.v2-smart-column-mapper > p { color: var(--kinko-muted); }.v2-smart-mapper-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 9px; }.v2-smart-csv-preview { margin-top: 12px; overflow-x: auto; border: 1px solid var(--kinko-line); border-radius: 10px; }.v2-smart-csv-preview table { width: 100%; border-collapse: collapse; white-space: nowrap; font-size: 10px; }.v2-smart-csv-preview th,.v2-smart-csv-preview td { padding: 7px 9px; border-bottom: 1px solid var(--kinko-line); text-align: left; }.v2-smart-csv-preview th { background: #f7f9fc; }.v2-smart-fallback-actions { display: flex; justify-content: flex-end; margin-top: 12px; }
.v2-smart-summary { overflow: hidden; border: 1px solid var(--kinko-line); border-radius: var(--kinko-radius); background: #fff; box-shadow: var(--kinko-shadow-soft); }.v2-smart-summary-title { display: flex; justify-content: space-between; gap: 12px; padding: 14px 16px; border-bottom: 1px solid var(--kinko-line); }.v2-smart-summary-title span { color: var(--kinko-muted); font-size: 10px; }.v2-smart-summary > div:last-child { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); }.v2-smart-summary article { display: grid; grid-template-columns: 34px auto; grid-template-rows: auto auto; align-items: center; column-gap: 9px; min-height: 78px; padding: 12px 16px; border-right: 1px solid var(--kinko-line); }.v2-smart-summary article:last-child { border-right: 0; }.v2-smart-summary article i { grid-row: 1 / span 2; font-size: 23px; }.v2-smart-summary article strong { color: var(--kinko-ink); font-size: 20px; }.v2-smart-summary article span { color: var(--kinko-muted); font-size: 10px; }.v2-smart-summary .is-ready i { color: var(--kinko-green); }.v2-smart-summary .is-transfer i { color: var(--kinko-orange); }.v2-smart-summary .is-duplicate i { color: var(--kinko-red); }.v2-smart-summary .is-review i { color: var(--kinko-blue); }
#smartImportCommitForm { display: grid; gap: 16px; }.v2-smart-mappings > .v2-section-head > span { color: var(--kinko-muted); font-size: 10px; }.v2-smart-mapping-list { padding: 0 14px 14px; }.v2-smart-mapping-list > div { display: grid; grid-template-columns: minmax(180px,1.2fr) 24px minmax(150px,.8fr) minmax(150px,.8fr) auto; gap: 8px; align-items: center; min-height: 52px; padding: 7px 10px; border: 1px solid var(--kinko-line); border-radius: 10px; }.v2-smart-mapping-list > div + div { margin-top: 7px; }.v2-smart-mapping-list > div > span { display: grid; }.v2-smart-mapping-list small { color: var(--kinko-muted); }.v2-smart-mapping-list > div > i { color: var(--kinko-faint); }.v2-smart-mapping-list > div > b { padding: 4px 7px; border-radius: 6px; color: var(--kinko-green); background: #eaf8f1; font-size: 9px; }
.v2-smart-options { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; padding: 16px; }.v2-smart-options label > span,.v2-smart-options > div > strong { display: block; margin-bottom: 6px; font-size: 11px; }.v2-smart-options small { display: block; margin-top: 5px; color: var(--kinko-muted); }.v2-smart-options > div > span { display: flex; flex-wrap: wrap; gap: 7px; }
.v2-smart-review { display: grid; gap: 9px; }.v2-smart-review-group { overflow: hidden; }.v2-smart-review-group > summary { display: grid; grid-template-columns: 1fr auto 20px; gap: 10px; align-items: center; min-height: 52px; padding: 12px 15px; cursor: pointer; list-style: none; }.v2-smart-review-group > summary::-webkit-details-marker { display: none; }.v2-smart-review-group > summary > span { display: flex; align-items: center; gap: 9px; }.v2-smart-review-group > summary > span i { color: var(--kinko-blue); font-size: 17px; }.v2-smart-review-group.is-ready > summary > span i { color: var(--kinko-green); }.v2-smart-review-group.is-skipped > summary > span i { color: var(--kinko-muted); }.v2-smart-review-group > summary > b { color: var(--kinko-muted); font-size: 10px; }.v2-smart-review-group[open] > summary > i { transform: rotate(180deg); }.v2-smart-review-rows { display: grid; gap: 7px; padding: 8px; border-top: 1px solid var(--kinko-line); background: #f7f9fc; }
.v2-smart-transaction { overflow: hidden; border: 1px solid var(--kinko-line); border-radius: 10px; background: #fff; }.v2-smart-transaction-main { display: grid; grid-template-columns: 28px 34px minmax(180px,1.5fr) minmax(90px,.6fr) auto minmax(120px,.8fr) 34px; gap: 9px; align-items: center; min-height: 56px; padding: 8px 10px; }.v2-smart-check { display: grid; place-items: center; min-height: 36px; }.v2-smart-source-icon { display: grid; place-items: center; width: 32px; height: 32px; border-radius: 9px; color: var(--kinko-text); background: #f0f3f7; }.v2-smart-transaction-copy { display: grid; min-width: 0; }.v2-smart-transaction-copy strong,.v2-smart-transaction-copy small { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }.v2-smart-transaction-copy small { color: var(--kinko-muted); font-size: 9px; }.v2-smart-amount { justify-self: end; }.v2-smart-amount.is-negative { color: var(--kinko-red); }.v2-smart-amount.is-positive { color: var(--kinko-green); }.v2-smart-target { overflow: hidden; color: var(--kinko-muted); font-size: 10px; text-overflow: ellipsis; white-space: nowrap; }
.v2-smart-explanation { display: flex; gap: 8px; margin: 0 10px 8px 72px; padding: 8px 10px; border: 1px solid #dce8ff; border-radius: 8px; color: var(--kinko-blue); background: #f7faff; }.v2-smart-explanation > span { display: grid; }.v2-smart-explanation small { color: var(--kinko-muted); }.v2-smart-explanation.is-duplicate { border-color: #f3d5da; color: var(--kinko-red); background: #fff8f9; }.v2-smart-explanation.is-memory { border-color: #cce8da; color: var(--kinko-green); background: #f6fcf8; }
.v2-smart-transaction-editor { padding: 12px; border-top: 1px solid var(--kinko-line); background: #fbfcfe; }.v2-smart-editor-grid { display: grid; grid-template-columns: repeat(3,minmax(0,1fr)); gap: 10px; }.v2-smart-editor-grid label > span,.v2-smart-note > span,.v2-smart-transfer-editor label > span { display: block; margin-bottom: 4px; color: var(--kinko-muted); font-size: 9px; font-weight: 700; }.v2-smart-transfer-editor { margin-top: 10px; }.v2-smart-transfer-editor summary { color: var(--kinko-blue); cursor: pointer; font-weight: 700; }.v2-smart-transfer-editor > div { display: grid; grid-template-columns: repeat(4,minmax(0,1fr)); gap: 8px; margin-top: 8px; }.v2-smart-note { display: block; margin-top: 10px; }.js-import-ai-status { display: block; margin-top: 5px; }.js-import-ai-status.is-success { color: var(--kinko-green); }.js-import-ai-status.is-review { color: var(--kinko-orange); }
.v2-smart-import-bar { position: sticky; z-index: 5; bottom: 12px; display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 12px; border: 1px solid var(--kinko-line); border-radius: var(--kinko-radius); background: rgba(255,255,255,.96); box-shadow: 0 16px 40px rgba(24,34,48,.14); backdrop-filter: blur(15px); }.v2-smart-ai-privacy { display: flex; align-items: center; gap: 10px; max-width: 720px; }.v2-smart-ai-privacy > i { color: var(--kinko-blue); font-size: 22px; }.v2-smart-ai-privacy > span { display: grid; }.v2-smart-ai-privacy small { color: var(--kinko-muted); font-size: 9px; }

@media (max-width: 1024px) {
  .v2-smart-file-head { display: none; }.v2-smart-file-row > summary { grid-template-columns: 1.4fr .7fr .55fr .8fr; }.v2-smart-file-row > summary span:nth-child(4),.v2-smart-file-row > summary span:nth-child(5) { display: none; }
  .v2-smart-mapper-grid,.v2-smart-editor-grid { grid-template-columns: repeat(2,minmax(0,1fr)); }.v2-smart-mapping-list > div { grid-template-columns: 1fr 20px 1fr; }.v2-smart-mapping-list .js-mapping-subaccount { grid-column: 3; }.v2-smart-mapping-list > div > b { grid-column: 1; grid-row: 2; justify-self: start; }
  .v2-smart-transaction-main { grid-template-columns: 28px 34px minmax(160px,1fr) auto auto 34px; }.v2-smart-target { display: none; }
}

@media (max-width: 767.98px), (min-width: 768px) and (max-width: 1024px) and (orientation: portrait) {
  .v2-smart-import-page { gap: 11px; }.v2-smart-import-page .v2-page-head > .v2-secondary-button { width: 42px; min-width: 42px; padding: 0; overflow: hidden; font-size: 0; }.v2-smart-import-page .v2-page-head > .v2-secondary-button i { font-size: 14px; }
  .v2-smart-upload-panel { padding: 11px; }.v2-smart-period { justify-content: stretch; }.v2-smart-period label { flex: 1; display: grid; }.v2-smart-period select,.v2-smart-period input { width: 100%; }.v2-smart-dropzone { min-height: 220px; padding: 20px 12px; }.v2-smart-dropzone > strong { font-size: 17px; }.v2-smart-upload-footer { align-items: stretch; flex-direction: column; }.v2-smart-upload-footer .v2-button { width: 100%; }
  .v2-smart-file-table { padding: 0 9px 9px; }.v2-smart-file-row > summary { grid-template-columns: 1fr auto; gap: 5px 10px; padding: 10px; }.v2-smart-file-row > summary span { display: flex !important; justify-content: space-between; }.v2-smart-file-row > summary span::before { content: attr(data-label); color: var(--kinko-muted); font-size: 9px; }.v2-smart-file-row > summary span:first-child { grid-column: 1 / -1; justify-content: flex-start; }.v2-smart-file-row > summary span:first-child::before { display: none; }.v2-smart-file-row > summary span:nth-child(4),.v2-smart-file-row > summary span:nth-child(5) { display: none !important; }
  .v2-smart-fallback-head { align-items: stretch; flex-direction: column; }.v2-smart-fallback-head label { min-width: 0; }.v2-smart-mapper-grid { grid-template-columns: 1fr; }
  .v2-smart-summary > div:last-child { grid-template-columns: repeat(4,minmax(0,1fr)); }.v2-smart-summary article { display: flex; flex-direction: column; justify-content: center; gap: 2px; min-height: 78px; padding: 8px 3px; text-align: center; }.v2-smart-summary article i { font-size: 17px; }.v2-smart-summary article strong { font-size: 16px; }.v2-smart-summary article span { font-size: 8px; }
  .v2-smart-mapping-list { padding: 0 9px 9px; }.v2-smart-mapping-list > div { grid-template-columns: 1fr; gap: 6px; padding: 10px; }.v2-smart-mapping-list > div > i { display: none; }.v2-smart-mapping-list .js-mapping-subaccount,.v2-smart-mapping-list > div > b { grid-column: auto; grid-row: auto; }
  .v2-smart-options { grid-template-columns: 1fr; gap: 12px; padding: 12px; }
  .v2-smart-review-group > summary { grid-template-columns: 1fr auto 16px; padding: 11px; }.v2-smart-review-rows { gap: 8px; padding: 7px; }
  .v2-smart-transaction-main { grid-template-columns: 27px 32px minmax(0,1fr) auto 30px; grid-template-rows: auto auto; gap: 4px 8px; min-height: 72px; padding: 9px; }.v2-smart-check { grid-row: 1 / span 2; }.v2-smart-source-icon { grid-row: 1 / span 2; }.v2-smart-transaction-copy { grid-column: 3; grid-row: 1; }.v2-smart-amount { grid-column: 4; grid-row: 1; }.v2-smart-transaction-main > .v2-smart-status { grid-column: 3; grid-row: 2; }.v2-smart-transaction-main > .v2-icon-button { grid-column: 5; grid-row: 1 / span 2; }.v2-smart-target { display: none; }.v2-smart-explanation { margin: 0 8px 7px 67px; padding: 7px; }.v2-smart-explanation strong { font-size: 9px; }.v2-smart-explanation small { font-size: 8px; }
  .v2-smart-editor-grid,.v2-smart-transfer-editor > div { grid-template-columns: 1fr; }.v2-smart-transaction-editor { padding: 10px; }
  .v2-smart-import-bar { bottom: calc(72px + env(safe-area-inset-bottom)); align-items: stretch; flex-direction: column; margin-bottom: 2px; }.v2-smart-ai-privacy small { font-size: 8px; }.v2-smart-import-bar .v2-button { width: 100%; min-height: 48px; }
  .v2-yoy-metrics { grid-template-columns: repeat(2,minmax(0,1fr)); }.v2-yoy-metrics article { border-bottom: 1px solid var(--kinko-line); }.v2-yoy-categories { grid-template-columns: 1fr; gap: 8px; }
}

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

/* Dark theme: approved layout and component geometry stay unchanged. */
html[data-theme="dark"] body.kinko-v2 {
  --bs-body-color: var(--kinko-text);
  --bs-body-bg: var(--kinko-bg);
  --bs-secondary-color: var(--kinko-muted);
  --bs-tertiary-bg: var(--kinko-surface-subtle);
  --bs-border-color: var(--kinko-line);
  --bs-heading-color: var(--kinko-ink);
  --bs-emphasis-color: var(--kinko-ink);
  --bs-form-control-bg: var(--kinko-surface-elevated);
  --bs-form-control-disabled-bg: var(--kinko-surface-muted);
}

html[data-theme="dark"] :where(.kinko-wordmark,.kinko-mobile-header-brand) img { content: url('/assets/img/branding/kinko-logo-dark.svg'); }

html[data-theme="dark"] :where(
  .kinko-brand-rail,
  .v2-panel,
  .v2-kpi,
  .v2-account-card,
  .v2-price-card,
  .v2-feature-grid article,
  .v2-profile-card,
  .v2-settings-nav,
  .v2-avatar-form,
  .v2-legal-links a,
  .v2-balance-group,
  .v2-smart-summary,
  .v2-smart-transaction,
  .v2-smart-alert,
  .v2-plan-options article,
  .v2-filter-bar,
  .v2-period-control,
  .v2-institution-search,
  .v2-institution-choice,
  .v2-secondary-button,
  .v2-base-currency,
  .v2-plan-badge,
  .kinko-privacy-toggle,
  .v2-smart-dropzone li,
  .v2-smart-upload-footer b,
  .v2-filter-pills a,
  .v2-filter-pills span,
  .v2-import-steps span,
  .v2-access-state,
  .v2-plan-title,
  .v2-plan-kpis article,
  .v2-import-upload,
  .v2-import-account,
  .v2-import-review,
  .v2-recurring-form,
  .v2-plan-form,
  .v2-wishlist-form
) { border-color: var(--kinko-line); background-color: var(--kinko-surface); color: var(--kinko-text); box-shadow: var(--kinko-shadow-soft); }

html[data-theme="dark"] :where(
  .kinko-desktop-header,
  .kinko-mobile-header,
  .kinko-mobile-bottom-nav,
  .v2-smart-import-bar
) { border-color: var(--kinko-line); background: var(--kinko-header-bg); box-shadow: 0 5px 18px rgba(0,0,0,.13); }

html[data-theme="dark"] :where(
  .kinko-nav-menu,
  .kinko-profile-menu,
  .dropdown-menu,
  .modal-content,
  .offcanvas,
  .popover,
  .toast,
  .v2-balance-item details ul
) { border-color: var(--kinko-line); background-color: var(--kinko-surface-elevated); color: var(--kinko-text); box-shadow: var(--kinko-shadow); }

html[data-theme="dark"] :where(
  .v2-balance-group > header,
  .v2-balance-savebar,
  .v2-month-table > a:nth-of-type(even),
  .v2-month-table > a:hover,
  .v2-smart-file-row > div,
  .v2-smart-transaction-editor,
  .v2-security-grid form,
  .v2-plan-cost-detail,
  .v2-preflight-attention a,
  .v2-smart-review-rows,
  .v2-import-footer,
  .app-main:not(.v2-page) .card-footer,
  .v2-transaction-row:hover
) { background: var(--kinko-surface-subtle); }

html[data-theme="dark"] :where(
  .v2-money-input > span,
  .v2-month-table-head,
  .v2-import-rows,
  .v2-smart-source-icon,
  .v2-smart-csv-preview th,
  .v2-smart-status.is-skipped,
  .v2-feature-grid article.is-locked > span,
  .v2-plan-cost > button em
) { border-color: var(--kinko-line); background: var(--kinko-surface-muted); color: var(--kinko-muted); }

html[data-theme="dark"] :where(
  .v2-allocation-total,
  .v2-summary-result,
  .v2-mascot-banner,
  .v2-account-insight,
  .v2-year-insight,
  .v2-cashflow-insight,
  .v2-import-empty,
  .v2-currency-result,
  .v2-access-hero:not(.is-pro),
  .v2-wishlist-insight,
  .v2-recurring-insight,
  .v2-plan-empty,
  .v2-ai-assistant,
  .v2-ai-import,
  .v2-smart-explanation,
  .v2-custom-account-options,
  .v2-institution-choice.is-selected
) { border-color: rgba(79,124,255,.34); background: var(--kinko-blue-soft); }

html[data-theme="dark"] :where(
  .v2-feature-callout,
  .v2-recovery-key,
  .v2-pin-form,
  .v2-access-hero.is-pro,
  .v2-import-row.needs-review
) { border-color: rgba(255,122,26,.36); background: var(--kinko-orange-soft); }

html[data-theme="dark"] :where(
  .v2-safe-note,
  .v2-current-plan,
  .v2-security-state,
  .v2-free-access > div > i,
  .v2-recurring-item > em,
  .v2-smart-status.is-parsed,
  .v2-smart-status.is-ready,
  .v2-smart-mapping-list > div > b,
  .v2-smart-explanation.is-memory,
  body.kinko-v2 .alert-success
) { border-color: rgba(22,155,98,.36); background: var(--kinko-success-soft); color: #58d69b; }

html[data-theme="dark"] :where(
  .v2-smart-status.is-error,
  .v2-smart-status.is-duplicate,
  .v2-smart-alert.is-error,
  .v2-smart-explanation.is-duplicate,
  body.kinko-v2 .alert-danger
) { border-color: rgba(217,72,91,.4); background: var(--kinko-danger-soft); color: #ff8795; }

html[data-theme="dark"] :where(
  .v2-allocation-list li > div:first-child > span,
  .v2-mascot-banner p,
  .v2-account-insight p,
  .v2-cashflow-insight p,
  .v2-access-hero p,
  .v2-free-access li,
  .v2-settings-nav a,
  .v2-wishlist-insight p,
  .v2-recurring-insight p,
  .v2-secondary-button,
  .v2-plan-badge,
  .kinko-privacy-toggle,
  .kinko-mobile-avatar-button,
  .kinko-mobile-privacy-button,
  .kinko-mobile-menu-grid a
) { color: var(--kinko-text-secondary) !important; }

html[data-theme="dark"] :where(
  .v2-account-row,
  .v2-subaccount-item,
  .v2-total-overview dl > div,
  .v2-identity-row,
  .v2-alias-list > div,
  .v2-top-categories li,
  .v2-highlight-list li,
  .v2-outlook-panel dl > div,
  .v2-balance-item,
  .v2-wishlist-item,
  .v2-recurring-item,
  .v2-plan-cost,
  .v2-purchase-history > div:last-child > span,
  .v2-month-summary dl > div,
  .v2-account-card footer,
  .v2-import-classification,
  .v2-import-target,
  .v2-import-extras,
  .v2-smart-file-row > div,
  .v2-smart-transaction-editor
) { border-color: var(--kinko-line); }

html[data-theme="dark"] :where(
  .v2-spark::before,
  .v2-allocation-track,
  .v2-progress-track,
  .v2-account-spark,
  .v2-import-steps li::after
) { border-color: var(--kinko-line); background: var(--kinko-line); }

html[data-theme="dark"] .v2-mini-ring { background: conic-gradient(var(--kinko-blue) calc(var(--value) * 1%), var(--kinko-line) 0); }
html[data-theme="dark"] .v2-mini-ring::after { background: var(--kinko-surface); }
html[data-theme="dark"] .kinko-brand-landscape { background: linear-gradient(178deg, var(--kinko-surface) 8%, rgba(79,124,255,.13) 9%, rgba(79,124,255,.24) 72%); opacity: .72; }
html[data-theme="dark"] .v2-period-control select { background: transparent; color: var(--kinko-text); }
/* Windows Chromium renders the opened native menu from option colors instead of the select surface. */
html[data-theme="dark"] select { color-scheme: dark; }
html[data-theme="dark"] select option,
html[data-theme="dark"] select optgroup { background-color: var(--kinko-surface-elevated,#1c2631); color: var(--kinko-text,#f3f6fa); }
html[data-theme="dark"] select option:checked { background-color: var(--kinko-blue,#1769ff); color: #fff; }
html[data-theme="dark"] select option:disabled { color: var(--kinko-faint,#738092); }
html[data-theme="dark"] .v2-money-input input { background: var(--kinko-surface-elevated); color: var(--kinko-text); }
html[data-theme="dark"] .v2-filter-bar label { border-color: var(--kinko-line); }
html[data-theme="dark"] .v2-filter-pills a:hover,
html[data-theme="dark"] .v2-filter-pills a.is-active { border-color: rgba(79,124,255,.4); background: var(--kinko-blue-soft); color: #9db8ff; }
html[data-theme="dark"] .v2-filter-pills a.is-orange.is-active { border-color: rgba(255,122,26,.4); background: var(--kinko-orange-soft); color: #ffad70; }
html[data-theme="dark"] .v2-access-hero-summary { border-color: var(--kinko-line); background: rgba(23,31,40,.78); }
html[data-theme="dark"] .v2-plan-switcher nav em { background: var(--kinko-surface-muted); color: var(--kinko-muted); }
html[data-theme="dark"] .v2-plan-title em { background: var(--kinko-success-soft); color: #58d69b; }
html[data-theme="dark"] .v2-recurring-item > em.needs-review { background: var(--kinko-orange-soft); color: #ffad70; }

/* Match the approved dark surfaces with enough specificity to beat the light component rules. */
html[data-theme="dark"] .v2-import-beta-link { border-color: rgba(79,124,255,.4); background: var(--kinko-blue-soft); color: var(--kinko-text) !important; box-shadow: var(--kinko-shadow-soft); }
html[data-theme="dark"] .v2-plan-cost > button em { border-color: var(--kinko-line); background: var(--kinko-surface-muted); color: var(--kinko-muted); }
html[data-theme="dark"] .v2-month-table > a:nth-of-type(even) { background: var(--kinko-surface-subtle); }
html[data-theme="dark"] .v2-access-hero.is-pro { border-color: rgba(255,122,26,.36); background: var(--kinko-orange-soft); }
html[data-theme="dark"] .v2-access-hero.is-pro .v2-access-hero-summary { border-color: var(--kinko-line); background: rgba(23,31,40,.78); }
html[data-theme="dark"] .v2-free-access > div > i { border-color: rgba(22,155,98,.36); background: var(--kinko-success-soft); color: #58d69b; }

html[data-theme="dark"] body.kinko-v2 :where(.form-control,.form-select,.input-group-text,.form-check-input) {
  border-color: var(--kinko-line-strong);
  background-color: var(--kinko-surface-elevated);
  color: var(--kinko-text);
}
html[data-theme="dark"] body.kinko-v2 :where(.form-control,.form-select)::placeholder { color: var(--kinko-faint); opacity: 1; }
html[data-theme="dark"] body.kinko-v2 .form-label { color: var(--kinko-muted); }
html[data-theme="dark"] body.kinko-v2 :where(.form-control,.form-select):hover:not(:disabled):not([readonly]) { border-color: #53677b; }
html[data-theme="dark"] body.kinko-v2 :where(.form-control,.form-select):focus { border-color: var(--kinko-blue); background-color: var(--kinko-surface-elevated); color: var(--kinko-text); }
html[data-theme="dark"] body.kinko-v2 :where(.form-control,.form-select):disabled,
html[data-theme="dark"] body.kinko-v2 :where(.form-control,.form-select)[readonly] { border-color: var(--kinko-line); background-color: var(--kinko-surface-muted); color: var(--kinko-faint); opacity: 1; }
html[data-theme="dark"] body.kinko-v2 .form-control.is-invalid,
html[data-theme="dark"] body.kinko-v2 .form-select.is-invalid,
html[data-theme="dark"] body.kinko-v2 :where(.form-control,.form-select):invalid:not(:placeholder-shown) { border-color: var(--kinko-red); }
html[data-theme="dark"] body.kinko-v2 .form-control.is-valid,
html[data-theme="dark"] body.kinko-v2 .form-select.is-valid { border-color: var(--kinko-green); }
html[data-theme="dark"] body.kinko-v2 :where(input,textarea,select):-webkit-autofill,
html[data-theme="dark"] body.kinko-v2 :where(input,textarea,select):-webkit-autofill:hover,
html[data-theme="dark"] body.kinko-v2 :where(input,textarea,select):-webkit-autofill:focus {
  -webkit-text-fill-color: var(--kinko-text);
  caret-color: var(--kinko-text);
  box-shadow: 0 0 0 1000px var(--kinko-surface-elevated) inset !important;
}
html[data-theme="dark"] body.kinko-v2 .form-check-input:checked { border-color: var(--kinko-blue); background-color: var(--kinko-blue); }
html[data-theme="dark"] body.kinko-v2 .form-check-input:disabled { opacity: .55; }
html[data-theme="dark"] body.kinko-v2 input[type="file"]::file-selector-button,
html[data-theme="dark"] body.kinko-v2 input[type="file"]::-webkit-file-upload-button { border-color: var(--kinko-line); background: var(--kinko-surface-muted); color: var(--kinko-text); }
html[data-theme="dark"] body.kinko-v2 input.form-control[type="file"]:hover:not(:disabled):not([readonly])::file-selector-button,
html[data-theme="dark"] body.kinko-v2 input.form-control[type="file"]:focus::file-selector-button,
html[data-theme="dark"] body.kinko-v2 input.form-control[type="file"]:hover:not(:disabled):not([readonly])::-webkit-file-upload-button,
html[data-theme="dark"] body.kinko-v2 input.form-control[type="file"]:focus::-webkit-file-upload-button { border-color: var(--kinko-line-strong); background: var(--kinko-surface-subtle); color: var(--kinko-text); }

html[data-theme="dark"] :where(.dropdown-item,.dropdown-item-text) { color: var(--kinko-text) !important; }
html[data-theme="dark"] .dropdown-item:hover,
html[data-theme="dark"] .dropdown-item:focus { background: var(--kinko-blue-soft); color: #8eb0ff !important; }
html[data-theme="dark"] .dropdown-divider { border-color: var(--kinko-line); }
html[data-theme="dark"] .btn-close { filter: invert(1) grayscale(1); opacity: .72; }
html[data-theme="dark"] .modal-header,
html[data-theme="dark"] .modal-footer,
html[data-theme="dark"] .offcanvas-header { border-color: var(--kinko-line); background: var(--kinko-surface-elevated); }
html[data-theme="dark"] .modal-backdrop.show { opacity: .72; }

html[data-theme="dark"] .table {
  --bs-table-color: var(--kinko-text);
  --bs-table-bg: transparent;
  --bs-table-border-color: var(--kinko-line);
  --bs-table-striped-color: var(--kinko-text);
  --bs-table-striped-bg: rgba(255,255,255,.025);
  --bs-table-hover-color: var(--kinko-text);
  --bs-table-hover-bg: rgba(79,124,255,.08);
  color: var(--kinko-text);
}
html[data-theme="dark"] .table > :not(caption) > * > * { border-color: var(--kinko-line); background-color: transparent; color: inherit; }
html[data-theme="dark"] :where(.table thead th,.v2-smart-csv-preview th) { background: var(--kinko-surface-muted); color: var(--kinko-muted); }

html[data-theme="dark"] .kinko-auth-body {
  background:
    radial-gradient(circle at 13% 18%, rgba(79,124,255,.16), transparent 31%),
    radial-gradient(circle at 88% 86%, rgba(255,122,26,.1), transparent 26%),
    var(--kinko-bg);
}
html[data-theme="dark"] .kinko-auth-body .card { border-color: var(--kinko-line); background: rgba(23,31,40,.97); box-shadow: 0 20px 45px rgba(0,0,0,.22) !important; color: var(--kinko-text); }
html[data-theme="dark"] .kinko-auth-body .recovery-key-box,
html[data-theme="dark"] .kinko-auth-body .recovery-key-display { border-color: rgba(255,122,26,.42); background: var(--kinko-orange-soft); color: #ffb477; }
html[data-theme="dark"] .text-secondary { color: var(--kinko-muted) !important; }
html[data-theme="dark"] .btn-outline-secondary { border-color: var(--kinko-line-strong); color: var(--kinko-text); }
html[data-theme="dark"] .btn-outline-secondary:hover { border-color: var(--kinko-blue); background: var(--kinko-blue-soft); color: #dce6ff; }

html[data-theme="dark"] .v2-import-row { border-color: var(--kinko-line); background: var(--kinko-surface); }
html[data-theme="dark"] .v2-import-row.is-duplicate { background: var(--kinko-surface-muted); }
html[data-theme="dark"] .v2-smart-dropzone { border-color: #53677b; background: var(--kinko-surface-subtle); }
html[data-theme="dark"] .v2-smart-alert.is-success { border-color: rgba(22,155,98,.36); background: var(--kinko-success-soft); color: #58d69b; }
html[data-theme="dark"] .v2-recovery-key code { background: var(--kinko-surface-elevated); color: #ffb477; }
html[data-theme="dark"] .v2-ai-import strong em { background: var(--kinko-orange-soft); }
html[data-theme="dark"] .v2-institution-mark { background: var(--institution-surface,#edf3ff); color: var(--institution-color,#1769ff); box-shadow: inset 0 0 0 1px rgba(16,24,40,.04); }
html[data-theme="dark"] .v2-institution-mark.is-wordmark { background: #fff; }
html[data-theme="dark"] .v2-avatar,
html[data-theme="dark"] .kinko-avatar { border-color: var(--kinko-surface); }

html[data-theme="dark"] body.kinko-v2 .app-main:not(.v2-page) :where(.card,.info-box,.card-header) { border-color: var(--kinko-line); background: var(--kinko-surface); color: var(--kinko-text); box-shadow: var(--kinko-shadow-soft); }
html[data-theme="dark"] body.kinko-v2 .app-main:not(.v2-page) .card-footer { border-color: var(--kinko-line); background: var(--kinko-surface-subtle); }
html[data-theme="dark"] body.kinko-v2 .alert-warning { border-color: rgba(255,122,26,.38); background: var(--kinko-orange-soft); color: #ffb477; }
html[data-theme="dark"] body.kinko-v2 .alert-info { border-color: rgba(79,124,255,.36); background: var(--kinko-blue-soft); color: #a9c1ff; }
html[data-theme="dark"] :where(.list-group-item,.accordion-item,.accordion-button) { border-color: var(--kinko-line); background: var(--kinko-surface); color: var(--kinko-text); }
html[data-theme="dark"] .accordion-button:not(.collapsed) { background: var(--kinko-blue-soft); color: #a9c1ff; }

html[data-theme="dark"] .kinko-driver-popover {
  border-color: var(--kinko-line) !important;
  background: rgba(28,38,49,.98) !important;
  color: var(--kinko-text) !important;
  box-shadow: 0 24px 60px rgba(0,0,0,.34) !important;
}
html[data-theme="dark"] .kinko-driver-popover :where(.driver-popover-title,.driver-popover-description,.driver-popover-progress-text) { color: var(--kinko-text) !important; }
html[data-theme="dark"] .driver-overlay { fill: rgba(5,8,12,.72) !important; }

html[data-theme="dark"] { scrollbar-color: #46586a var(--kinko-bg); }
@supports selector(::-webkit-scrollbar) {
  html[data-theme="dark"] ::-webkit-scrollbar { width: 11px; height: 11px; }
  html[data-theme="dark"] ::-webkit-scrollbar-track { background: var(--kinko-bg); }
  html[data-theme="dark"] ::-webkit-scrollbar-thumb { border: 3px solid var(--kinko-bg); border-radius: 999px; background: #46586a; }
}

@media (max-width: 767.98px), (min-width: 768px) and (max-width: 1024px) and (orientation: portrait) {
  .v2-appearance-form { margin-inline: 12px; }
  .v2-theme-options { grid-template-columns: 1fr; }
  html[data-theme="dark"] :where(.kinko-mobile-avatar-button,.kinko-mobile-privacy-button) { border-color: var(--kinko-line); background: var(--kinko-surface-elevated); color: var(--kinko-text-secondary); }
  html[data-theme="dark"] .v2-month-table > a,
  html[data-theme="dark"] .v2-transaction-row,
  html[data-theme="dark"] .v2-import-row { border-color: var(--kinko-line); background: var(--kinko-surface); box-shadow: none; }
}
