/* UI-023 "floating" finish (31 Oct 2026). Loaded straight after desk-ui3.css (main.php, views/signup.php); remove the <link> to roll back
   to UI-022. One icon system (24px, 2px round line), one motion language (150-200ms, --ease, transform / opacity / clip-path only so
   nothing reflows), and prefers-reduced-motion honoured. Target look: the approved concept boards (floating header capsule, floating
   footer pill with a round Back, raised red +, two-tone goal drawings). Every blur has a solid fallback for low-end devices. */
.k56{--float-bg:color-mix(in srgb,var(--panel) 74%,transparent);--float-solid:var(--panel);--float-sh:0 10px 30px rgba(0,0,0,.28),0 0 0 1px color-mix(in srgb,var(--line) 70%,transparent);
  --gtile:color-mix(in srgb,var(--btn) 16%,var(--panel));--d2:180ms}
@media(prefers-color-scheme:light){html:not([data-k56-theme=dark]) .k56{--float-sh:0 8px 28px rgba(28,20,16,.10),0 0 0 1px rgba(28,20,16,.06);--gtile:#FBE6E4}}
html[data-k56-theme=light] .k56{--float-sh:0 8px 28px rgba(28,20,16,.10),0 0 0 1px rgba(28,20,16,.06);--gtile:#FBE6E4}

/* ── floating header: a detached, rounded, translucent capsule; shrinks once the page scrolls ───────────────────────── */
.k56-top{position:sticky;top:0;z-index:30;isolation:isolate;box-shadow:none!important;border:0;min-height:0;padding-top:max(14px,calc(env(safe-area-inset-top) + 6px));padding-bottom:14px}
.k56-top::before{content:"";position:absolute;z-index:-1;pointer-events:none;inset:max(8px,env(safe-area-inset-top)) 8px 8px;border-radius:26px;background:var(--float-solid);box-shadow:var(--float-sh);
  transition:inset var(--d2) var(--ease),box-shadow var(--d2) var(--ease),border-radius var(--d2) var(--ease)}
@supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.k56-top::before{background:var(--float-bg);-webkit-backdrop-filter:saturate(1.8) blur(20px);backdrop-filter:saturate(1.8) blur(20px)}}
@media(prefers-reduced-transparency:reduce){.k56-top::before{background:var(--float-solid);-webkit-backdrop-filter:none;backdrop-filter:none}}
.k56-top>.k56-brand{margin-left:12px;transform-origin:left center;transition:transform var(--d2) var(--ease)}
.k56-top>.k56-hbtn:last-child,.k56-top>.k56-theme:last-child{margin-right:4px}
html.k56-scrolled .k56-top::before{inset:max(4px,env(safe-area-inset-top)) 4px 10px;border-radius:24px}
html.k56-scrolled .k56-top>.k56-brand{transform:scale(.86)}
@media(max-width:767px){
  .k56-top{margin:-20px -18px 8px;padding-left:14px;padding-right:14px}
  .k56-top::before{background:var(--float-solid)}
  @supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.k56-top::before{background:var(--float-bg)}}
}
@media(max-width:359px){.k56-top{margin:-16px -12px 8px;padding-left:10px;padding-right:10px}}
@media(min-width:640px) and (max-width:767px){.k56-top{margin:-28px -28px 12px;padding-left:22px;padding-right:22px}}
@media(min-width:768px){.k56-top{margin-left:-12px;margin-right:-12px;padding-left:16px;padding-right:16px;margin-bottom:20px}}

/* ── floating tab bar (phones and small tablets): a rounded pill inset from the edges; content scrolls underneath ─── */
@media(max-width:899px){
  .k56 .k56-top>.k56-nav{left:max(12px,env(safe-area-inset-left));right:max(12px,env(safe-area-inset-right));bottom:max(12px,calc(env(safe-area-inset-bottom) + 4px));
    padding:6px 6px;border-radius:30px;background:var(--float-solid);box-shadow:var(--float-sh);overflow:visible}
  @supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.k56 .k56-top>.k56-nav{background:var(--float-bg)}}
  .k56 .k56-nav a{min-height:52px;justify-content:center}
  .k56 .k56-nav a::after{top:2px}
  /* the raised red + in the middle */
  .k56 .k56-nav a[data-v=wizard]{color:var(--muted)}
  .k56 .k56-nav a[data-v=wizard] .k56-nl{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
  .k56 .k56-nav a[data-v=wizard]::after{top:50%;left:50%;width:58px;height:58px;margin:-41px 0 0 -29px;border-radius:50%;background:var(--btn);
    box-shadow:0 0 0 6px var(--bg),0 8px 20px color-mix(in srgb,var(--btn) 45%,transparent);transition:transform var(--d2) var(--ease),background-color var(--d2) var(--ease)}
  .k56 .k56-nav a[data-v=wizard]::before{position:relative;z-index:1;width:28px;height:28px;margin-top:-22px;-webkit-mask-size:28px;mask-size:28px;transition:transform var(--d2) var(--ease)}
  .k56 .k56-nav a[data-v=wizard].is-open::before{transform:rotate(45deg)}
  .k56 .k56-nav a[data-v=wizard]:active::after{transform:scale(.94)}
  .k56:has(.k56-nav){padding-bottom:calc(124px + env(safe-area-inset-bottom))}
}
/* the small menu that grows out of the + (New ad, Make artwork in Studio, Top up wallet) */
.k56-newmenu{position:fixed;z-index:41;left:50%;bottom:calc(max(12px,calc(env(safe-area-inset-bottom) + 4px)) + 84px);display:grid;gap:8px;width:max-content;min-width:232px;transform:translateX(-50%);
  transform-origin:50% 100%;animation:k56grow var(--d2) var(--ease)}
.k56-newmenu[hidden]{display:none}
.k56-newmenu a{display:flex;align-items:center;gap:12px;min-height:48px;padding:0 18px 0 14px;border-radius:999px;background:var(--float-solid);box-shadow:var(--float-sh);color:var(--text);font-weight:600;font-size:15px;text-decoration:none}
.k56-newmenu a::before{content:"";flex:none;width:22px;height:22px;background:currentColor;-webkit-mask:var(--ic) center/22px no-repeat;mask:var(--ic) center/22px no-repeat}
.k56-newmenu a[data-ic=new]{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M3.5 10v4h3l8 5V5l-8 5z'/%3E%3Cpath d='M6.5 14l1.3 5.5h2.4L9 14.8'/%3E%3Cpath d='M18 9.5a3.5 3.5 0 0 1 0 5'/%3E%3C/svg%3E")}.k56-newmenu a[data-ic=studio]{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='16' rx='3'/%3E%3Ccircle cx='9' cy='10' r='2'/%3E%3Cpath d='M21 16l-5-5-9 9'/%3E%3C/svg%3E")}.k56-newmenu a[data-ic=wallet]{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 7.5h14.5a2 2 0 0 1 2 2V18a2 2 0 0 1-2 2H5.5A2 2 0 0 1 3.5 18V6.5A2.5 2.5 0 0 1 6 4h10'/%3E%3Cpath d='M16 13.8h1.5'/%3E%3C/svg%3E")}
.k56-newmenu a:hover{background:var(--panel2)}
.k56-newmenu a:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
@media(min-width:900px){.k56-newmenu{display:none!important}}
@keyframes k56grow{from{opacity:0;transform:translateX(-50%) translateY(8px) scale(.96)}to{opacity:1;transform:translateX(-50%)}}

/* ── floating action bar in the ad flow: a round Back and the main action as a red pill ──────────────────────────── */
.k56-rback{position:relative;display:inline-flex;align-items:center;justify-content:center;flex:0 0 52px!important;width:52px;min-width:52px;height:52px;min-height:52px;padding:0!important;
  border:0;border-radius:50%!important;background:var(--panel2)!important;color:var(--text);text-decoration:none;cursor:pointer;transition:transform .15s var(--ease),background-color .15s var(--ease)}
.k56-rback::before{content:"";width:22px;height:22px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 12H5.5M11 5.5L4.5 12l6.5 6.5'/%3E%3C/svg%3E") center/22px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 12H5.5M11 5.5L4.5 12l6.5 6.5'/%3E%3C/svg%3E") center/22px no-repeat}
.k56-rback:hover{background:var(--track)!important}
.k56-rback:active{transform:scale(.92)}
.k56-rback:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.k56-sticky{display:flex;align-items:center;gap:10px}
.k56-sticky .k56-btn:not(.k56-rback){flex:1 1 auto;min-height:52px;border-radius:999px}
@media(max-width:767px){
  .k56-sticky{bottom:max(12px,calc(env(safe-area-inset-bottom) + 4px));margin:24px -6px 0;padding:6px;border-radius:32px;background:var(--float-solid);box-shadow:var(--float-sh)}
  @supports ((-webkit-backdrop-filter:blur(1px)) or (backdrop-filter:blur(1px))){.k56-sticky{background:var(--float-bg);-webkit-backdrop-filter:saturate(1.8) blur(20px);backdrop-filter:saturate(1.8) blur(20px)}}
  @media(prefers-reduced-transparency:reduce){.k56-sticky{background:var(--float-solid);-webkit-backdrop-filter:none;backdrop-filter:none}}
  .k56:has(.k56-sticky){padding-bottom:20px}
}
@media(max-width:359px){.k56-sticky{margin-left:-4px;margin-right:-4px;padding-left:6px;padding-right:6px}}
@media(min-width:640px) and (max-width:767px){.k56-sticky{margin-left:-6px;margin-right:-6px;padding-left:6px;padding-right:6px}}

/* ── expanding buttons: a round icon that opens into a labelled pill on hover, focus or press; it grows over its
      neighbours (clip-path), never pushes them, so there is no layout shift ─────────────────────────────────────── */
.k56-xbtn{position:relative;z-index:1;flex:none;display:inline-block;width:48px;height:48px;padding:0;border:0;background:none;color:var(--text);cursor:pointer;-webkit-tap-highlight-color:transparent}
.k56-xbtn__l{position:absolute;top:4px;right:4px;display:flex;align-items:center;height:40px;padding:0 44px 0 16px;border-radius:20px;background:var(--panel2);color:var(--text);
  font-size:14px;font-weight:600;white-space:nowrap;clip-path:inset(0 0 0 calc(100% - 40px) round 20px);transition:clip-path var(--d2) var(--ease),background-color var(--d2) var(--ease)}
.k56-xbtn::after{content:"";position:absolute;z-index:1;top:14px;right:14px;width:20px;height:20px;background:currentColor;pointer-events:none;-webkit-mask:var(--ic) center/20px no-repeat;mask:var(--ic) center/20px no-repeat}
.k56-xbtn:hover,.k56-xbtn:focus-visible,.k56-xbtn:active,.k56-xbtn.is-open{z-index:3}
.k56-xbtn:hover .k56-xbtn__l,.k56-xbtn:focus-visible .k56-xbtn__l,.k56-xbtn:active .k56-xbtn__l,.k56-xbtn.is-open .k56-xbtn__l{clip-path:inset(0 0 0 0 round 20px);box-shadow:var(--float-sh)}
.k56-xbtn:focus-visible{outline:none}
.k56-xbtn:focus-visible .k56-xbtn__l{outline:2px solid var(--focus);outline-offset:2px}
.k56-xbtn--help{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M9.6 9.4a2.5 2.5 0 1 1 3.4 2.4c-.6.3-1 .8-1 1.5v.4'/%3E%3Cpath d='M12 16.8h.01'/%3E%3C/svg%3E")}
.k56-xbtn--plus{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 5v14M5 12h14'/%3E%3C/svg%3E");color:var(--onbtn)}
.k56-xbtn--plus .k56-xbtn__l{background:var(--btn);color:var(--onbtn)}
.k56-xbtn--plus.is-open::after{transform:rotate(45deg)}
.k56-xbtn--plus::after{transition:transform var(--d2) var(--ease)}
@media(hover:none){.k56-xbtn:hover:not(:active):not(.is-open) .k56-xbtn__l{clip-path:inset(0 0 0 calc(100% - 40px) round 20px);box-shadow:none}}

/* ── goals: our own two-tone drawings on a tinted tile, the words always visible, "?" opens a sheet ─────────────── */
.k56-goals{display:grid;gap:6px;background:none!important;border-radius:0;overflow:visible}
.k56-goal{position:relative;min-width:0}
.k56-goal>.k56-choice{position:relative;display:block;margin:0;cursor:pointer}
.k56-goal>.k56-choice>input{position:absolute;opacity:0;pointer-events:none}
.k56-goal>.k56-choice>span,.k56-choice:has(>input[name=goal_key])>span{position:relative;display:flex;flex-direction:column;justify-content:center;min-height:80px;padding:12px 104px 12px 84px;border-radius:22px;
  background:transparent;background-image:none!important;box-shadow:none;transition:background-color var(--d2) var(--ease)}
.k56-goal>.k56-choice:hover>span{background-color:color-mix(in srgb,var(--panel2) 60%,transparent)}
.k56-goals .k56-goal>.k56-choice>input:checked+span{background-color:var(--sel)}
.k56-goal>.k56-choice>input:focus-visible+span{outline:2px solid var(--focus);outline-offset:-2px}
.k56-goal>.k56-choice>span b{font-size:16.5px;font-weight:700;line-height:1.3;color:var(--text)}
.k56-goal>.k56-choice>span small{margin-top:3px;font-size:14px;line-height:1.4;color:var(--muted)}
.k56-choice:has(>input[name=goal_key])::before{display:none!important}
.k56-goals .k56-goal>.k56-choice>span::before{content:"";position:absolute;left:12px;top:50%;width:58px;height:58px;margin-top:-29px;border-radius:18px;background:var(--gtile);transition:transform var(--d2) var(--ease)}
.k56-goals .k56-goal>.k56-choice>input:checked+span::before{background:var(--gtile)}
.k56-goals .k56-goal>.k56-choice>span::after{content:"";position:absolute;right:58px;top:50%;width:26px;height:26px;margin-top:-13px;border-radius:50%;border:0;background:var(--btn) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/15px no-repeat;
  opacity:0;transform:scale(.6);transition:opacity var(--d2) var(--ease),transform var(--d2) var(--ease)}
.k56-goals .k56-goal>.k56-choice>input:checked+span::after{opacity:1;transform:none}
.k56-gi{position:absolute;z-index:1;left:25px;top:50%;width:32px;height:32px;margin-top:-16px;overflow:visible;fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;color:var(--text)}
.k56-gi *{vector-effect:non-scaling-stroke}
.k56-gi .r{fill:var(--btn)}.k56-gi .d{fill:var(--btnpress)}.k56-gi .w{fill:var(--gtile)}.k56-gi .n{stroke:none}.k56-gi .dots{stroke:#fff;stroke-width:2.2px}
.k56-gi .a{transform-box:fill-box;transform-origin:50% 50%}
.k56-goal>.k56-choice>input:checked+span .k56-gi .a{animation:k56pop var(--d2) var(--ease)}
.k56-goal>.k56-choice>input:checked+span::before{animation:k56tile var(--d2) var(--ease)}
@keyframes k56pop{0%{transform:none}55%{transform:translateY(-1.5px) scale(1.12)}100%{transform:none}}
@keyframes k56tile{0%{transform:none}55%{transform:scale(1.06)}100%{transform:none}}
.k56-goal>.k56-xbtn{position:absolute;right:6px;top:50%;margin-top:-24px}
.k56-goal>.k56-xbtn .k56-xbtn__l{background:var(--panel2)}
@media(max-width:359px){.k56-goal>.k56-choice>span{padding-left:76px;padding-right:96px}.k56-goals .k56-goal>.k56-choice>span::before{left:8px;width:54px;height:54px;margin-top:-27px}.k56-gi{left:19px}}

/* the bottom sheet (native <dialog>: focus stays inside, Esc closes) */
.k56-bsheet{position:fixed;inset:auto 0 0 0;width:100%;max-width:560px;margin:0 auto;padding:0;border:0;border-radius:28px 28px 0 0;background:var(--panel);color:var(--text);box-shadow:0 -10px 40px rgba(0,0,0,.3)}
.k56-bsheet[open]{animation:k56up var(--d2) var(--ease)}
.k56-bsheet::backdrop{background:rgba(0,0,0,.45)}
.k56-bsheet__in{padding:12px 22px max(22px,env(safe-area-inset-bottom))}
.k56-bsheet__in::before{content:"";display:block;width:36px;height:5px;margin:0 auto 14px;border-radius:999px;background:var(--track)}
.k56-bsheet h2{margin:0 0 8px;font-size:22px;font-weight:700;font-family:var(--fd)}
.k56-bsheet p{margin:0 0 18px;font-size:15.5px;line-height:1.55;color:var(--muted)}
.k56-bsheet form .k56-btn{width:100%;min-height:52px;border-radius:999px}
@media(min-width:768px){.k56-bsheet{inset:auto;top:50%;transform:translateY(-50%);border-radius:28px}.k56-bsheet__in::before{display:none}.k56-bsheet[open]{animation:none}}
@keyframes k56up{from{transform:translateY(24px);opacity:.4}to{transform:none;opacity:1}}

/* ── where: search with Near me, removable chips, plain-words reach per channel ───────────────────────────────── */
.k56-where{display:grid;gap:10px}
.k56-search{position:relative;display:flex;align-items:center;gap:8px}
.k56-search::before{content:"";position:absolute;z-index:1;left:16px;top:16px;width:20px;height:20px;background:var(--muted);pointer-events:none;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='10.8' cy='10.8' r='6.3'/%3E%3Cpath d='M20 20l-4.6-4.6'/%3E%3C/svg%3E") center/20px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='10.8' cy='10.8' r='6.3'/%3E%3Cpath d='M20 20l-4.6-4.6'/%3E%3C/svg%3E") center/20px no-repeat}
.k56 .k56-search input[type=search]{flex:1 1 auto;min-width:0;min-height:52px;padding-left:46px;border-radius:999px}
.k56-search__list{position:absolute;z-index:20;left:0;right:0;top:58px;max-height:340px;overflow:auto;margin:0;padding:6px;list-style:none;border-radius:20px;background:var(--panel);box-shadow:var(--float-sh)}
.k56-search__list li{display:flex;flex-direction:column;justify-content:center;min-height:52px;padding:6px 14px;border-radius:14px;cursor:pointer}
.k56-search__list li b{font-weight:600;font-size:15.5px}
.k56-search__list li small{color:var(--muted);font-size:13px}
.k56-search__list li:hover,.k56-search__list li[aria-selected=true]{background:var(--panel2)}
.k56-search__none{cursor:default!important;color:var(--muted)}
.k56-xbtn--near{display:inline-flex;align-items:center;gap:6px;width:auto;height:52px;min-height:52px;padding:0 16px 0 14px;border-radius:999px;background:var(--panel2);font-weight:600;font-size:14.5px;transition:transform .15s var(--ease)}
.k56-xbtn--near::after{position:static;width:18px;height:18px;order:-1;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-6.5-5.7-6.5-11a6.5 6.5 0 0 1 13 0c0 5.3-6.5 11-6.5 11z'/%3E%3Ccircle cx='12' cy='10' r='2.3'/%3E%3C/svg%3E") center/18px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-6.5-5.7-6.5-11a6.5 6.5 0 0 1 13 0c0 5.3-6.5 11-6.5 11z'/%3E%3Ccircle cx='12' cy='10' r='2.3'/%3E%3C/svg%3E") center/18px no-repeat}
.k56-xbtn--near .k56-xbtn__l{position:static;height:auto;padding:0;background:none;clip-path:none!important;box-shadow:none!important}
.k56-xbtn--near[aria-expanded=true]{background:var(--sel);box-shadow:inset 0 0 0 1.5px var(--hot)}
.k56-xbtn--near:active{transform:scale(.96)}
.k56-xbtn--near:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.k56-near{padding:16px;border-radius:20px;background:var(--panel)}
.k56-near p{margin:0 0 10px;font-size:14.5px;color:var(--muted)}
.k56-near .k56-btn{margin-top:12px;border-radius:999px}
.k56-placemsg{margin:0;font-size:14px;color:var(--muted)}
.k56-placemsg:empty{display:none}
.k56-placechips{display:flex;flex-wrap:wrap;gap:8px;margin:0;padding:0;list-style:none}
.k56-placechips[hidden]{display:none}
.k56-pchip{display:inline-flex;align-items:center;max-width:100%;min-height:44px;padding-left:16px;border-radius:999px;background:var(--panel2);font-size:14.5px;font-weight:600;animation:k56chip var(--d2) var(--ease)}
.k56-pchip>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.k56-pchip__x{position:relative;flex:none;width:44px;height:44px;border:0;border-radius:50%;background:none;color:var(--muted);cursor:pointer}
.k56-pchip__x::before{content:"";position:absolute;inset:0;margin:auto;width:16px;height:16px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 6l12 12M18 6L6 18'/%3E%3C/svg%3E") center/16px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 6l12 12M18 6L6 18'/%3E%3C/svg%3E") center/16px no-repeat}
.k56-pchip__x:hover{color:var(--text)}
.k56-pchip__x:focus-visible{outline:2px solid var(--focus);outline-offset:-4px}
@keyframes k56chip{from{opacity:0;transform:scale(.9)}to{opacity:1;transform:none}}
.k56-reach:empty{display:none}
.k56-reach{display:grid;gap:8px;padding:14px 16px;border-radius:20px;background:var(--panel)}
.k56-reach>.f{margin:0}
.k56-reachrow{position:relative;padding-left:18px}
.k56-reachrow::before{content:"";position:absolute;left:0;top:7px;width:8px;height:8px;border-radius:50%;background:#2FA24B}
.k56-reachrow[data-state=confirm]::before,.k56-reachrow[data-state=some]::before{background:#E0A100}
.k56-reachrow[data-state=none]::before{background:var(--hot)}
.k56-reachrow b{font-size:14.5px}
.k56-reachrow p{margin:2px 0 0;font-size:13.5px;line-height:1.45;color:var(--muted)}
.k56-reachrow p.k56-count--bad{color:var(--hot)}

/* ── when: Starts / Ends, a linked range calendar, quick picks, "Runs for N days", straight or alternate weeks ─── */
[data-q=when] [data-k56=flight]{display:grid;gap:12px}
[data-q=when] [data-k56=flight][hidden]{display:none}
[data-q=when] .k56-two{padding:14px 16px 6px;border-radius:20px 20px 0 0;background:var(--panel);margin:0}
[data-q=when] .k56-two input[type=date]{min-height:48px;border:0;background:transparent;padding:0;font-size:18px;font-weight:700;color:var(--text)}
[data-q=when] .f--sub{margin:0;font-size:13px;color:var(--muted);font-weight:600}
.k56-cal{margin-top:-12px;padding:4px 12px 14px;border-radius:0 0 20px 20px;background:var(--panel)}
.k56-cal__nav{display:flex;justify-content:flex-end;gap:4px}
.k56-cal__mv{width:44px;height:44px;border:0;border-radius:50%;background:none;color:var(--text);cursor:pointer;position:relative}
.k56-cal__mv::before{content:"";position:absolute;inset:0;margin:auto;width:20px;height:20px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 5.5l6.5 6.5L9 18.5'/%3E%3C/svg%3E") center/20px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 5.5l6.5 6.5L9 18.5'/%3E%3C/svg%3E") center/20px no-repeat}
.k56-cal__mv--p::before{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 5.5L8.5 12l6.5 6.5'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M15 5.5L8.5 12l6.5 6.5'/%3E%3C/svg%3E")}
.k56-cal__mv:disabled{opacity:.3;cursor:default}
.k56-cal__mv:not(:disabled):hover{background:var(--panel2)}
.k56-cal__months{display:grid;gap:18px;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));margin-top:-40px}
.k56-cal__t{margin:10px 4px 8px;font-weight:700;font-size:15px;line-height:24px}
.k56-cal__g{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));row-gap:4px}
.k56-cal__dow{text-align:center;font-size:12px;font-weight:600;color:var(--muted);padding:4px 0}
.k56-cal__g button{position:relative;height:40px;min-width:0;border:0;background:none;color:var(--text);font:inherit;font-size:14.5px;font-weight:500;cursor:pointer;isolation:isolate}
.k56-cal__g button::before{content:"";position:absolute;z-index:-1;inset:4px 0;background:transparent}
.k56-cal__g button.is-live::before{background:color-mix(in srgb,var(--btn) 14%,transparent)}
.k56-cal__g button.is-off{color:var(--muted)}
.k56-cal__g button.is-off::before{background:repeating-linear-gradient(135deg,transparent 0 4px,color-mix(in srgb,var(--line) 70%,transparent) 4px 5px)}
.k56-cal__g button.is-start::before{border-radius:999px 0 0 999px}
.k56-cal__g button.is-end::before{border-radius:0 999px 999px 0}
.k56-cal__g button.is-start.is-end::before{border-radius:999px}
.k56-cal__g button.is-start::after,.k56-cal__g button.is-end::after{content:"";position:absolute;z-index:-1;left:50%;top:50%;width:32px;height:32px;margin:-16px 0 0 -16px;border-radius:50%;background:var(--btn)}
.k56-cal__g button.is-start,.k56-cal__g button.is-end{color:var(--onbtn);font-weight:700}
.k56-cal__g button.is-today:not(.is-start):not(.is-end){font-weight:700;text-decoration:underline;text-underline-offset:3px}
.k56-cal__g button:disabled{color:var(--dim);opacity:.45;cursor:default}
.k56-cal__g button:focus-visible{outline:2px solid var(--focus);outline-offset:-2px;border-radius:10px}
.k56-cal__g button:not(:disabled):not(.is-start):not(.is-end):hover::after{content:"";position:absolute;z-index:-1;left:50%;top:50%;width:32px;height:32px;margin:-16px 0 0 -16px;border-radius:50%;background:var(--panel2)}
.k56-quick{display:flex;flex-wrap:wrap;gap:8px}
.k56-qbtn{min-height:44px;padding:0 16px;border:0;border-radius:999px;background:var(--panel2);color:var(--text);font:inherit;font-size:14.5px;font-weight:600;cursor:pointer;transition:background-color .15s var(--ease),transform .15s var(--ease)}
.k56-qbtn[aria-pressed=true]{background:var(--sel);box-shadow:inset 0 0 0 1.5px var(--hot)}
.k56-qbtn:active{transform:scale(.96)}
.k56-qbtn:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
.k56-days{margin:0;text-align:center;font-size:15px;font-weight:600;color:var(--text);min-height:22px}
.k56-days.k56-count--bad{color:var(--hot)}
.k56-seg2{display:grid;grid-template-columns:1fr 1fr}
.k56-seg2 .k56-choice span{min-height:48px;justify-content:center;text-align:center;line-height:1.25}
.k56-seg2 .k56-choice input:checked+span{background:var(--panel)!important;box-shadow:0 1px 3px rgba(0,0,0,.18)!important;color:var(--text)}
#k56-mode-hint{margin-top:-4px}
.k56-weeks{display:grid;gap:6px;margin:0;padding:0;list-style:none}
.k56-weeks li{display:grid;grid-template-columns:7.5em 1fr auto;align-items:center;gap:10px;font-size:13.5px}
.k56-weeks li span{color:var(--muted)}
.k56-weeks li i{height:10px;border-radius:999px;background:linear-gradient(90deg,var(--btn) calc(var(--w,1)*100%),transparent 0) ,var(--panel2)}
.k56-weeks li[data-on="0"] i{background:var(--panel2)}
.k56-weeks li b{font-size:13px;font-weight:600}
.k56-weeks li[data-on="0"] b{color:var(--muted);font-weight:500}
.k56-weeks__more{display:block!important;color:var(--muted)}

#k56-plan-rows .line{display:flex;justify-content:space-between;gap:16px}
#k56-plan-rows .line>span:first-child{flex:0 0 auto;white-space:nowrap;color:var(--muted)}
#k56-plan-rows .line>span:last-child{min-width:0;text-align:right}
.k56-reach--none{color:var(--hot)!important}

/* ── budget share and the combined checklist ──────────────────────────────────────────────────────────────────── */
.k56-cardhead{display:flex;align-items:center;justify-content:space-between;gap:10px}
.k56-link{min-height:44px;padding:0 4px;border:0;background:none;color:var(--hot);font:inherit;font-weight:600;cursor:pointer}
.k56-sharerow{display:grid;grid-template-columns:1fr 96px;grid-template-areas:"l p" "a a";align-items:center;gap:2px 12px;padding:10px 0}
.k56-sharerow+.k56-sharerow{border-top:1px solid var(--line)}
.k56-sharerow label{grid-area:l;font-weight:600}
.k56-sharerow .k56-pct{grid-area:p;display:flex;align-items:center;gap:4px}
.k56 .k56-sharerow .k56-pct input{min-height:48px;text-align:right;padding:8px 10px;border-radius:12px}
.k56-sharerow__amt{grid-area:a;color:var(--muted);font-size:13px}
.k56-chk__ch{padding:12px 0}
.k56-chk__ch+.k56-chk__ch{border-top:1px solid var(--line)}
.k56-chk__hd{display:flex;align-items:baseline;justify-content:space-between;gap:10px}
.k56-chk__hd h4{margin:0;font-size:15.5px}
.k56-chk__st{font-size:13px;font-weight:600;color:var(--muted)}
.k56-chk__st.is-done{color:#2FA24B}
.k56-chk__list{margin:8px 0 0;padding:0;list-style:none;display:grid;gap:6px}
.k56-chk__list li{position:relative;display:flex;flex-direction:column;padding:8px 0 8px 34px}
.k56-chk__list li::before{content:"";position:absolute;left:0;top:9px;width:22px;height:22px;border-radius:7px;box-shadow:inset 0 0 0 2px var(--tick)}
.k56-chk__list li[data-kind=text]::before,.k56-chk__list li[data-kind=link]::before{border-radius:50%;box-shadow:none;background:var(--muted);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v5.5M12 7.6h.01'/%3E%3C/svg%3E") center/20px no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='9'/%3E%3Cpath d='M12 11v5.5M12 7.6h.01'/%3E%3C/svg%3E") center/20px no-repeat}
.k56-chk__list li.is-done::before{box-shadow:none;background:var(--btn) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/14px no-repeat;animation:k56tile var(--d2) var(--ease)}
.k56-chk__list li b{font-size:14.5px;font-weight:600}
.k56-chk__list li small{font-size:13px;line-height:1.4;color:var(--muted)}
.k56-chk__up{position:relative;display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:6px}
.k56-chk__up>[role=status]{flex:1 1 100%}
.k56-fab{position:relative;display:inline-block}
.k56-fab--inline .k56-xbtn{width:48px;height:48px}
.k56-fab--inline .k56-xbtn__l{left:4px;right:auto;padding:0 16px 0 44px;clip-path:inset(0 calc(100% - 40px) 0 0 round 20px)}
.k56-fab--inline .k56-xbtn::after{left:14px;right:auto}
.k56-fab--inline .k56-xbtn:hover .k56-xbtn__l,.k56-fab--inline .k56-xbtn:focus-visible .k56-xbtn__l,.k56-fab--inline .k56-xbtn:active .k56-xbtn__l,.k56-fab--inline .k56-xbtn.is-open .k56-xbtn__l{clip-path:inset(0 0 0 0 round 20px)}
@media(hover:none){.k56-fab--inline .k56-xbtn:hover:not(:active):not(.is-open) .k56-xbtn__l{clip-path:inset(0 calc(100% - 40px) 0 0 round 20px)}}
.k56-fab__menu{position:absolute;z-index:25;left:0;top:52px;display:grid;gap:6px;min-width:220px;animation:k56menu var(--d2) var(--ease);transform-origin:0 0}
.k56-fab__menu[hidden]{display:none}
.k56-fab__menu>*{display:flex;align-items:center;gap:10px;min-height:48px;padding:0 16px 0 12px;border:0;border-radius:999px;background:var(--float-solid);box-shadow:var(--float-sh);color:var(--text);font:inherit;font-size:14.5px;font-weight:600;text-decoration:none;cursor:pointer;text-align:left}
.k56-fab__menu>*::before{content:"";flex:none;width:20px;height:20px;background:currentColor;-webkit-mask:var(--ic) center/20px no-repeat;mask:var(--ic) center/20px no-repeat}
.k56-fab__menu>[data-ic=upload]{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 15.5V4.5M7.5 9L12 4.5 16.5 9'/%3E%3Cpath d='M4.5 15v3a2 2 0 0 0 2 2h11a2 2 0 0 0 2-2v-3'/%3E%3C/svg%3E")}.k56-fab__menu>[data-ic=studio]{--ic:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='16' rx='3'/%3E%3Ccircle cx='9' cy='10' r='2'/%3E%3Cpath d='M21 16l-5-5-9 9'/%3E%3C/svg%3E")}
.k56-fab__menu>*:hover{background:var(--panel2)}
.k56-fab__menu>*:focus-visible{outline:2px solid var(--focus);outline-offset:2px}
@keyframes k56menu{from{opacity:0;transform:translateY(-6px) scale(.97)}to{opacity:1;transform:none}}
.k56-part{padding:10px 0}
.k56-part+.k56-part{border-top:1px solid var(--line)}
.k56-part h4{margin:0 0 6px;font-size:15px}

/* ── slow connection / low-end: no motion when asked; nothing here depends on it ─────────────────────────────── */
@media(prefers-reduced-motion:reduce){
  .k56-top::before,.k56-top>.k56-brand,.k56-xbtn__l,.k56-xbtn::after,.k56-goal>.k56-choice>span,.k56-goal>.k56-choice>span::after,.k56-goal>.k56-choice>span::before,.k56 .k56-nav a[data-v=wizard]::after,.k56 .k56-nav a[data-v=wizard]::before,.k56-rback,.k56-qbtn,.k56-xbtn--near{transition:none!important}
  .k56-gi .a,.k56-goal>.k56-choice>input:checked+span::before,.k56-newmenu,.k56-fab__menu,.k56-bsheet[open],.k56-pchip,.k56-chk__list li.is-done::before{animation:none!important}
  html.k56-scrolled .k56-top>.k56-brand{transform:none}
}
