/* ============================================================
   KAI Works + Echo — embedded live demos
   Scoped under .dm-* (modal shell), .kw-* (KAI Works), .echo-* (Echo)
   Fonts (Newsreader / Schibsted Grotesk) already loaded by the page.
   ============================================================ */

:root{
  --dm-serif:"Newsreader", Georgia, serif;
  --dm-sans:"Schibsted Grotesk", "Helvetica Neue", Arial, sans-serif;
  /* KAI Works palette (from the real product) */
  --kw-peri:#7C97C6;
  --kw-peri-deep:#5E7DB4;
  --kw-cream:#FAF7F1;
  --kw-paper:#FFFFFF;
  --kw-ink:#1C1B18;
  --kw-soft:#6C6A64;
  --kw-faint:#A6A39C;
  --kw-line:#E7E3DB;
  --kw-bubble-me:#7E9BC9;
  --kw-red:#E11313;
  --kw-blue:#3E6DB5;
  --kw-blue-tint:#E7ECF5;
  --kw-star:#5B7FC0;
  /* Echo / Dog's Life palette */
  --echo-crimson:#C21A52;
  --echo-pink:#E8517E;
  --echo-dark:#17151A;
  --echo-panel:#201C24;
  --echo-bubble:#2C2731;
  --echo-amber:#E8B04B;
  --echo-ink:#F4F0EC;
  --echo-soft:#A39FAA;
}

/* ---------- trigger bar inside case cards ---------- */
.demo-trigger{
  grid-column:1/-1;display:flex;align-items:center;gap:16px;
  margin-top:0;padding:18px clamp(22px,2.8vw,32px);border-radius:0;
  background:linear-gradient(102deg, #3E6DB5 0%, #4A79C2 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.14);
  flex-wrap:wrap;
}
.demo-trigger .dt-badge{
  width:46px;height:46px;border-radius:50%;flex:none;display:flex;align-items:center;justify-content:center;
  background:rgba(255,255,255,.16);color:#fff;position:relative;
}
.demo-trigger .dt-badge::before{
  content:"";position:absolute;inset:0;border-radius:50%;border:1.5px solid rgba(255,255,255,.5);
  animation:dtRing 2.4s ease-out infinite;
}
@keyframes dtRing{0%{transform:scale(1);opacity:.7;}100%{transform:scale(1.45);opacity:0;}}
.demo-trigger .dt-badge svg{width:17px;height:17px;margin-left:2px;fill:#fff;}
.demo-trigger .dt-txt{flex:1;min-width:180px;line-height:1.35;}
.demo-trigger .dt-txt b{display:block;font-weight:600;font-size:15.5px;color:#fff;letter-spacing:-.01em;}
.demo-trigger .dt-txt span{display:block;font-size:13px;color:rgba(255,255,255,.78);margin-top:2px;}
.demo-trigger .dt-btn{
  border:0;cursor:pointer;font-family:inherit;font-weight:600;font-size:14px;
  padding:12px 22px;border-radius:999px;background:var(--red,#EB0E0E);color:#fff;
  display:inline-flex;align-items:center;gap:8px;transition:.22s cubic-bezier(.4,0,.2,1);white-space:nowrap;
  box-shadow:0 8px 18px -8px rgba(0,0,0,.45);
}
.demo-trigger .dt-btn .ar{transition:transform .24s cubic-bezier(.4,0,.2,1);}
.demo-trigger .dt-btn:hover{transform:translateY(-2px);background:#15171C;color:#fff;box-shadow:0 16px 30px -16px rgba(0,0,0,.55);}
.demo-trigger .dt-btn:hover .ar{transform:translateX(4px);}
@media(prefers-reduced-motion:reduce){.demo-trigger .dt-badge::before{animation:none;}.demo-trigger .dt-btn{transition:none;}}
@media(max-width:560px){.demo-trigger .dt-btn{width:100%;justify-content:center;}}

/* ============================================================
   MODAL SHELL
   ============================================================ */
.dm-overlay{
  position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;
  padding:clamp(12px,3vw,40px);background:rgba(18,16,13,0);
  opacity:0;pointer-events:none;transition:background .35s ease,opacity .35s ease;
  font-family:var(--dm-sans);
}
.dm-overlay.open{background:rgba(18,16,13,.62);opacity:1;pointer-events:auto;}
.dm-dialog{
  width:min(1080px,100%);height:min(720px,100%);background:var(--kw-paper);
  border-radius:18px;overflow:hidden;display:flex;flex-direction:column;
  box-shadow:0 50px 100px -40px rgba(0,0,0,.6);
  transform:translateY(24px) scale(.985);opacity:0;transition:transform .4s cubic-bezier(.22,1,.36,1),opacity .35s ease;
}
.dm-overlay.open .dm-dialog{transform:none;opacity:1;}

.dm-head{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:11px 14px;border-bottom:1px solid var(--kw-line);background:var(--kw-paper);flex:none;z-index:5;}
.dm-tabs{display:flex;gap:6px;background:#F1EEE8;padding:4px;border-radius:999px;}
.dm-tab{border:0;cursor:pointer;font-family:inherit;font-size:13.5px;font-weight:600;color:var(--kw-soft);
  padding:8px 18px;border-radius:999px;background:transparent;transition:.18s;display:flex;align-items:center;gap:7px;}
.dm-tab .tdot{width:7px;height:7px;border-radius:50%;background:currentColor;opacity:.5;}
.dm-tab.on{background:#fff;color:var(--kw-ink);box-shadow:0 2px 8px -2px rgba(0,0,0,.18);}
.dm-tab.on .tdot{opacity:1;background:var(--kw-blue);}
.dm-tab[data-tab="echo"].on .tdot{background:var(--echo-crimson);}
.dm-head .dm-hint{font-size:12px;color:var(--kw-faint);margin-left:auto;margin-right:6px;}
.dm-x{flex:none;width:34px;height:34px;border-radius:9px;border:1px solid var(--kw-line);background:#fff;cursor:pointer;
  color:var(--kw-soft);font-size:15px;display:flex;align-items:center;justify-content:center;transition:.18s;}
.dm-x:hover{background:var(--kw-ink);color:#fff;border-color:var(--kw-ink);}

.dm-body{flex:1;position:relative;overflow:hidden;background:var(--kw-cream);}
.dm-panel{position:absolute;inset:0;opacity:0;visibility:hidden;transition:opacity .3s ease;}
.dm-panel.on{opacity:1;visibility:visible;}

/* grab handle (mobile only) */
.dm-grab{display:none;}

/* ============================================================
   KAI WORKS  —  sign-up / auto-login
   ============================================================ */
.kw-root{position:absolute;inset:0;display:flex;flex-direction:column;}

.kw-login{position:absolute;inset:0;display:grid;grid-template-columns:1fr 1fr;background:var(--kw-paper);z-index:6;
  transition:opacity .5s ease,transform .5s ease;}
.kw-login.hide{opacity:0;transform:scale(1.02);pointer-events:none;}
.kw-login .kl-left{position:relative;background:linear-gradient(160deg,#88A0CC,#6B8BC0 70%);color:#fff;
  padding:30px 32px;display:flex;flex-direction:column;justify-content:space-between;overflow:hidden;}
.kw-login .kl-left::after{content:"";position:absolute;right:-120px;bottom:-120px;width:340px;height:340px;
  border-radius:50%;border:1px solid rgba(255,255,255,.25);box-shadow:0 0 0 40px rgba(255,255,255,.07);}
.kl-logo{font-family:var(--dm-serif);font-size:24px;letter-spacing:.01em;display:flex;align-items:baseline;gap:8px;}
.kl-logo sup{font-size:.5em;}
.kl-logo small{font-family:var(--dm-sans);font-size:11px;letter-spacing:.32em;font-weight:600;opacity:.85;}
.kl-quote{position:relative;z-index:2;}
.kl-quote h3{font-family:var(--dm-serif);font-weight:500;font-size:clamp(22px,2.5vw,30px);line-height:1.12;margin:0 0 14px;}
.kl-quote p{font-size:14px;line-height:1.5;color:rgba(255,255,255,.82);max-width:34ch;margin:0;}
.kl-foot{font-size:11px;letter-spacing:.3em;text-transform:uppercase;opacity:.7;}

.kw-login .kl-right{padding:34px clamp(24px,3.4vw,46px);display:flex;flex-direction:column;justify-content:center;overflow-y:auto;}
.kl-eyebrow{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--kw-blue);font-weight:700;
  display:flex;align-items:center;gap:10px;margin-bottom:14px;}
.kl-eyebrow::before{content:"";width:24px;height:1px;background:var(--kw-blue);}
.kl-right h2{font-family:var(--dm-serif);font-weight:500;font-size:clamp(26px,3.4vw,40px);line-height:1.05;margin:0 0 14px;color:var(--kw-ink);}
.kl-right .kl-sub{font-size:14.5px;line-height:1.5;color:var(--kw-soft);margin:0 0 22px;max-width:42ch;}
.kl-field{margin-bottom:14px;}
.kl-field label{display:flex;justify-content:space-between;font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--kw-soft);font-weight:600;margin-bottom:7px;}
.kl-field label .opt{letter-spacing:0;text-transform:none;font-weight:400;color:var(--kw-faint);}
.kl-input{width:100%;border:1px solid var(--kw-line);border-radius:11px;padding:13px 15px;font-family:inherit;font-size:14.5px;
  color:var(--kw-ink);background:#FCFBF9;}
.kl-input.filled{color:var(--kw-ink);}
.kl-input.ph{color:var(--kw-faint);}
.kl-field.focus .kl-input{border-color:var(--kw-blue);box-shadow:0 0 0 3px var(--kw-blue-tint);}
.kl-row-pw{position:relative;}
.kl-row-pw .show{position:absolute;right:14px;top:50%;transform:translateY(-50%);font-size:11px;letter-spacing:.12em;color:var(--kw-soft);font-weight:600;}
.kl-hint{font-size:11.5px;color:var(--kw-faint);margin:6px 2px 0;}
.kl-enter{margin-top:20px;width:100%;border:0;cursor:pointer;font-family:inherit;font-weight:600;font-size:15px;
  padding:15px;border-radius:12px;background:var(--kw-red);color:#fff;display:flex;align-items:center;justify-content:center;gap:9px;
  transition:.2s cubic-bezier(.4,0,.2,1);}
.kl-enter:hover{transform:translateY(-2px);box-shadow:0 16px 32px -16px rgba(225,19,19,.7);}
.kl-enter .ar{transition:transform .26s;}
.kl-enter:hover .ar{transform:translateX(5px);}
.kl-signin{text-align:center;font-size:13px;color:var(--kw-soft);margin:16px 0 0;}
.kl-signin b{color:var(--kw-blue);font-weight:600;}
.kl-micro{text-align:center;font-size:11.5px;line-height:1.5;color:var(--kw-faint);margin:14px auto 0;max-width:40ch;}

/* ============================================================
   KAI WORKS  —  workspace / thread
   ============================================================ */
.kw-app{position:absolute;inset:0;display:grid;grid-template-columns:230px 1fr;grid-template-rows:minmax(0,1fr);background:var(--kw-cream);opacity:0;transition:opacity .5s ease .15s;}
.kw-app.show{opacity:1;}

.kw-side{background:var(--kw-paper);border-right:1px solid var(--kw-line);display:flex;flex-direction:column;padding:20px 16px;}
.kw-side .kl-logo{font-size:21px;color:var(--kw-ink);margin-bottom:24px;}
.kw-side .kl-logo small{color:var(--kw-soft);}
.kw-side .eng-label{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--kw-faint);font-weight:600;margin-bottom:12px;}
.kw-eng-card{display:flex;gap:11px;align-items:center;border:1px solid var(--kw-line);border-radius:12px;padding:12px;background:#FBFAF7;}
.kw-eng-card .av{width:34px;height:34px;border-radius:50%;background:linear-gradient(150deg,#C8B79E,#A98E6F);color:#fff;
  display:flex;align-items:center;justify-content:center;font-family:var(--dm-serif);font-size:15px;flex:none;}
.kw-eng-card .nm{font-weight:600;font-size:14px;color:var(--kw-ink);}
.kw-eng-card .rl{font-size:11.5px;color:var(--kw-soft);}
.kw-side .kw-me{margin-top:auto;display:flex;gap:10px;align-items:center;padding-top:16px;border-top:1px solid var(--kw-line);}
.kw-side .kw-me .av{width:30px;height:30px;border-radius:8px;background:var(--kw-ink);color:#fff;font-size:11px;font-weight:700;
  display:flex;align-items:center;justify-content:center;flex:none;}
.kw-side .kw-me .nm{font-weight:600;font-size:13px;color:var(--kw-ink);line-height:1.2;}
.kw-side .kw-me .em{font-size:11px;color:var(--kw-faint);}

.kw-main{display:flex;flex-direction:column;min-width:0;min-height:0;position:relative;}
.kw-thead{display:flex;align-items:center;gap:12px;padding:14px 18px;border-bottom:1px solid var(--kw-line);background:rgba(250,247,241,.9);backdrop-filter:blur(6px);}
.kw-thead .av{width:38px;height:38px;border-radius:50%;background:var(--kw-blue-tint);color:var(--kw-blue);
  display:flex;align-items:center;justify-content:center;font-family:var(--dm-serif);font-size:16px;flex:none;position:relative;}
.kw-thead .av::after{content:"";position:absolute;right:-1px;bottom:-1px;width:10px;height:10px;border-radius:50%;background:#C8A24B;border:2px solid var(--kw-cream);}
.kw-thead .who{flex:1;min-width:0;}
.kw-thead .who .nm{font-weight:600;font-size:15px;color:var(--kw-ink);}
.kw-thead .who .nm small{font-weight:400;color:var(--kw-faint);font-size:12.5px;margin-left:6px;}
.kw-thead .who .st{font-size:12.5px;color:var(--kw-soft);}
.kw-thead .who .st b{color:var(--kw-blue);font-weight:600;}
.kw-ico{width:36px;height:36px;border-radius:9px;border:1px solid transparent;background:transparent;cursor:pointer;color:var(--kw-soft);
  display:flex;align-items:center;justify-content:center;transition:.16s;position:relative;}
.kw-ico:hover{background:#F1EEE8;color:var(--kw-ink);}
.kw-ico svg{width:19px;height:19px;}
.kw-ico .cnt{position:absolute;top:-3px;right:-3px;min-width:16px;height:16px;padding:0 4px;border-radius:9px;background:var(--kw-red);
  color:#fff;font-size:10px;font-weight:700;display:flex;align-items:center;justify-content:center;transform:scale(0);transition:transform .25s cubic-bezier(.34,1.56,.64,1);}
.kw-ico .cnt.show{transform:scale(1);}

.kw-banner{display:flex;align-items:center;gap:9px;margin:14px 18px 4px;padding:11px 14px;background:var(--kw-blue-tint);
  border-radius:10px;font-size:12.5px;color:#3a567f;line-height:1.4;}
.kw-banner .bd{width:7px;height:7px;border-radius:50%;background:var(--kw-blue);flex:none;}
.kw-banner b{color:var(--kw-blue);font-weight:700;}

.kw-thread{flex:1;overflow-y:auto;padding:14px 18px 4px;display:flex;flex-direction:column;gap:14px;scroll-behavior:smooth;}
.kw-date{align-self:center;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--kw-faint);margin:6px 0;}

.kw-msg{display:flex;flex-direction:column;max-width:78%;animation:kwIn .4s cubic-bezier(.22,1,.36,1);}
@keyframes kwIn{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:none;}}
.kw-msg.me{align-self:flex-end;align-items:flex-end;}
.kw-msg.kai{align-self:flex-start;align-items:flex-start;}
.kw-msg .kw-from{display:flex;align-items:center;gap:8px;margin-bottom:5px;}
.kw-msg .kw-from .av{width:26px;height:26px;border-radius:50%;background:var(--kw-blue-tint);color:var(--kw-blue);
  display:flex;align-items:center;justify-content:center;font-family:var(--dm-serif);font-size:12px;flex:none;}
.kw-msg .kw-from .nm{font-size:12.5px;font-weight:600;color:var(--kw-ink);}
.kw-msg .kw-from .badge{font-size:10px;font-weight:600;letter-spacing:.02em;color:var(--kw-blue);background:var(--kw-blue-tint);
  padding:2px 7px;border-radius:6px;}
.kw-bubble{position:relative;padding:11px 14px;border-radius:14px;font-size:14px;line-height:1.5;}
.kw-msg.me .kw-bubble{background:var(--kw-bubble-me);color:#fff;border-bottom-right-radius:4px;}
.kw-msg.kai .kw-bubble{background:#fff;border:1px solid var(--kw-line);color:var(--kw-ink);border-bottom-left-radius:4px;}
.kw-meta{display:flex;align-items:center;gap:5px;font-size:10.5px;color:var(--kw-faint);margin-top:5px;}
.kw-meta .rr{color:var(--kw-blue);}

/* star on KAI bubbles */
.kw-starbtn{position:absolute;top:-9px;right:-9px;width:26px;height:26px;border-radius:50%;background:#fff;border:1px solid var(--kw-line);
  cursor:pointer;display:flex;align-items:center;justify-content:center;color:var(--kw-faint);box-shadow:0 4px 10px -4px rgba(0,0,0,.2);
  opacity:0;transform:scale(.8);transition:.18s;}
.kw-msg.kai:hover .kw-starbtn,.kw-starbtn.saved{opacity:1;transform:scale(1);}
.kw-starbtn svg{width:13px;height:13px;}
.kw-starbtn:hover{color:var(--kw-star);border-color:var(--kw-star);}
.kw-starbtn.saved{color:var(--kw-star);}
.kw-starbtn.saved svg{fill:var(--kw-star);}
.kw-saved-tag{display:inline-flex;align-items:center;gap:5px;font-size:10.5px;color:var(--kw-star);font-weight:600;margin-bottom:5px;}
.kw-saved-tag svg{width:11px;height:11px;fill:currentColor;}

/* file / document bubble */
.kw-file{display:flex;align-items:center;gap:11px;min-width:230px;}
.kw-file .ic{width:38px;height:46px;border-radius:7px;background:rgba(255,255,255,.18);display:flex;align-items:center;justify-content:center;
  font-size:10px;font-weight:700;color:#fff;flex:none;letter-spacing:.04em;}
.kw-msg.me .kw-file .nm{font-weight:600;font-size:13.5px;color:#fff;}
.kw-msg.me .kw-file .sz{font-size:11.5px;color:rgba(255,255,255,.75);}
.kw-file .dl{margin-left:auto;color:#fff;opacity:.8;}
.kw-file .dl svg{width:17px;height:17px;}

/* typing indicator */
.kw-typing{align-self:flex-start;display:flex;align-items:center;gap:8px;padding:2px 0;}
.kw-typing .av{width:26px;height:26px;border-radius:50%;background:var(--kw-blue-tint);color:var(--kw-blue);
  display:flex;align-items:center;justify-content:center;font-family:var(--dm-serif);font-size:12px;}
.kw-typing .dots{display:flex;gap:4px;background:#fff;border:1px solid var(--kw-line);border-radius:12px;padding:11px 14px;}
.kw-typing .dots i{width:6px;height:6px;border-radius:50%;background:var(--kw-faint);animation:kwBlink 1.3s infinite;}
.kw-typing .dots i:nth-child(2){animation-delay:.2s;}
.kw-typing .dots i:nth-child(3){animation-delay:.4s;}
@keyframes kwBlink{0%,60%,100%{opacity:.3;transform:translateY(0);}30%{opacity:1;transform:translateY(-3px);}}

/* coachmark */
.kw-coach{align-self:center;display:flex;align-items:center;gap:8px;font-size:12px;color:var(--kw-soft);
  background:#FFF7E8;border:1px solid #F0DFBA;border-radius:999px;padding:7px 14px;margin:2px 0;animation:kwIn .4s;}
.kw-coach b{color:var(--kw-ink);font-weight:600;}
.kw-coach .pt{color:var(--kw-star);}

/* composer + suggested chips */
.kw-compose-wrap{border-top:1px solid var(--kw-line);background:var(--kw-paper);padding:12px 16px;}
.kw-chips{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:11px;}
.kw-chip{border:1px solid var(--kw-line);background:#FBFAF7;cursor:pointer;font-family:inherit;font-size:13px;color:var(--kw-ink);
  padding:8px 14px;border-radius:999px;transition:.16s;display:inline-flex;align-items:center;gap:6px;}
.kw-chip:hover{border-color:var(--kw-blue);background:var(--kw-blue-tint);color:var(--kw-blue);}
.kw-chip.gone{display:none;}
.kw-compose{display:flex;align-items:center;gap:10px;position:relative;}
.kw-plus{width:42px;height:42px;border-radius:11px;border:1px solid var(--kw-line);background:#FBFAF7;cursor:pointer;flex:none;
  display:flex;align-items:center;justify-content:center;color:var(--kw-soft);transition:.22s;}
.kw-plus svg{width:20px;height:20px;transition:transform .25s;}
.kw-plus.open{border-color:var(--kw-blue);color:var(--kw-blue);background:var(--kw-blue-tint);}
.kw-plus.open svg{transform:rotate(45deg);}
.kw-input{flex:1;border:1px solid var(--kw-line);border-radius:12px;padding:13px 15px;font-family:inherit;font-size:14px;
  color:var(--kw-ink);background:#FBFAF7;outline:none;}
.kw-input:focus{border-color:var(--kw-blue);background:#fff;}
.kw-send{width:42px;height:42px;border-radius:11px;border:0;background:var(--kw-bubble-me);cursor:pointer;flex:none;
  display:flex;align-items:center;justify-content:center;color:#fff;transition:.18s;}
.kw-send:hover{background:var(--kw-peri-deep);}
.kw-send svg{width:18px;height:18px;}

/* attach popover */
.kw-attach{position:absolute;left:0;bottom:54px;background:#fff;border:1px solid var(--kw-line);border-radius:14px;
  box-shadow:0 20px 44px -18px rgba(0,0,0,.28);padding:8px;width:230px;opacity:0;transform:translateY(8px) scale(.97);
  pointer-events:none;transition:.2s cubic-bezier(.22,1,.36,1);z-index:8;}
.kw-attach.open{opacity:1;transform:none;pointer-events:auto;}
.kw-attach button{width:100%;display:flex;align-items:center;gap:12px;border:0;background:transparent;cursor:pointer;
  font-family:inherit;font-size:14px;color:var(--kw-ink);padding:11px 12px;border-radius:10px;transition:.14s;text-align:left;}
.kw-attach button:hover{background:#F4F1EB;}
.kw-attach button .em{font-size:18px;}

/* ---------- KAI Works right drawer (Saved / Shared files) ---------- */
.kw-drawer{position:absolute;top:0;right:0;bottom:0;width:min(380px,82%);background:#fff;z-index:9;
  box-shadow:-24px 0 60px -30px rgba(0,0,0,.4);transform:translateX(100%);transition:transform .4s cubic-bezier(.22,1,.36,1);
  display:flex;flex-direction:column;}
.kw-drawer.open{transform:none;}
.kw-drawer-scrim{position:absolute;inset:0;background:rgba(28,27,24,0);z-index:8;pointer-events:none;transition:background .35s;}
.kw-drawer-scrim.open{background:rgba(28,27,24,.32);pointer-events:auto;}
.kw-dr-head{display:flex;align-items:flex-start;justify-content:space-between;padding:22px 22px 16px;border-bottom:1px solid var(--kw-line);}
.kw-dr-head h3{font-family:var(--dm-serif);font-weight:500;font-size:26px;margin:0 0 3px;color:var(--kw-ink);}
.kw-dr-head p{font-size:13px;color:var(--kw-soft);margin:0;}
.kw-dr-x{width:34px;height:34px;border-radius:9px;border:0;background:#F1EEE8;cursor:pointer;color:var(--kw-soft);font-size:15px;flex:none;
  display:flex;align-items:center;justify-content:center;transition:.16s;}
.kw-dr-x:hover{background:var(--kw-ink);color:#fff;}
.kw-dr-body{flex:1;overflow-y:auto;padding:18px 22px;display:flex;flex-direction:column;gap:12px;}
.kw-dr-empty{text-align:center;color:var(--kw-faint);font-size:13.5px;margin-top:40px;line-height:1.6;}
.kw-saved-card{border:1px solid var(--kw-line);border-radius:13px;padding:15px 16px;background:#FCFBF9;animation:kwIn .35s;}
.kw-saved-card .top{display:flex;align-items:center;justify-content:space-between;margin-bottom:9px;}
.kw-saved-card .top .nm{font-size:12px;font-weight:700;letter-spacing:.04em;color:var(--kw-soft);}
.kw-saved-card .top svg{width:15px;height:15px;fill:var(--kw-star);}
.kw-saved-card .tx{font-size:13.5px;line-height:1.5;color:var(--kw-ink);}
.kw-saved-card .tm{font-size:11.5px;color:var(--kw-faint);margin-top:10px;}
.kw-fileitem{display:flex;align-items:center;gap:13px;border:1px solid var(--kw-line);border-radius:13px;padding:14px;background:#FCFBF9;animation:kwIn .35s;}
.kw-fileitem .ic{width:42px;height:42px;border-radius:9px;display:flex;align-items:center;justify-content:center;flex:none;
  font-size:10px;font-weight:700;color:#fff;overflow:hidden;}
.kw-fileitem .ic.pdf{background:#fff;border:1px solid var(--kw-line);color:var(--kw-red);}
.kw-fileitem .ic img{width:100%;height:100%;object-fit:cover;}
.kw-fileitem .nm{font-weight:600;font-size:14px;color:var(--kw-ink);}
.kw-fileitem .mt{font-size:11.5px;color:var(--kw-faint);margin-top:2px;}
.kw-fileitem .dl{margin-left:auto;color:var(--kw-faint);}
.kw-fileitem .dl svg{width:18px;height:18px;}

/* toast */
.kw-toast{position:absolute;left:50%;bottom:88px;transform:translateX(-50%) translateY(12px);background:var(--kw-ink);color:#fff;
  font-size:13px;padding:11px 18px;border-radius:999px;display:flex;align-items:center;gap:8px;z-index:12;
  opacity:0;transition:.3s cubic-bezier(.22,1,.36,1);pointer-events:none;white-space:nowrap;box-shadow:0 16px 36px -16px rgba(0,0,0,.5);}
.kw-toast.show{opacity:1;transform:translateX(-50%) translateY(0);}
.kw-toast svg{width:15px;height:15px;fill:var(--echo-amber);}

/* ============================================================
   ECHO  —  mini Dog's Life store + chat widget
   ============================================================ */
.echo-root{position:absolute;inset:0;overflow:hidden;background:#fff;}
.echo-store{position:absolute;inset:0;overflow-y:auto;}
.echo-banner{background:var(--echo-crimson);color:#fff;text-align:center;font-size:12.5px;padding:9px;letter-spacing:.01em;}
.echo-nav{display:flex;align-items:center;justify-content:space-between;padding:16px clamp(20px,4vw,44px);border-bottom:1px solid #EEE9E3;}
.echo-brand{font-family:var(--dm-serif);font-weight:600;font-size:19px;letter-spacing:.02em;color:#1c1b18;display:flex;align-items:center;gap:8px;}
.echo-brand .paw{width:26px;height:26px;border-radius:50%;background:var(--echo-crimson);color:#fff;display:flex;align-items:center;justify-content:center;font-size:13px;}
.echo-brand small{display:block;font-family:var(--dm-sans);font-size:8px;letter-spacing:.24em;color:#A39FAA;font-weight:600;}
.echo-navlinks{display:flex;gap:22px;font-size:13.5px;color:#5c534a;}
.echo-navlinks span{cursor:default;}
.echo-cart{width:36px;height:36px;border-radius:50%;border:1px solid #EEE9E3;display:flex;align-items:center;justify-content:center;color:#5c534a;}
.echo-cart svg{width:17px;height:17px;}

.echo-hero{display:grid;grid-template-columns:1.05fr .95fr;gap:30px;align-items:center;padding:clamp(26px,4vw,54px) clamp(20px,4vw,44px);}
.echo-hero .ek{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--echo-crimson);font-weight:700;margin-bottom:14px;}
.echo-hero h1{font-family:var(--dm-serif);font-weight:500;font-size:clamp(34px,5vw,58px);line-height:.98;letter-spacing:-.02em;color:#1c1b18;margin:0 0 16px;}
.echo-hero p{font-size:15px;line-height:1.55;color:#5c534a;max-width:34ch;margin:0 0 22px;}
.echo-hero .ebtns{display:flex;gap:12px;flex-wrap:wrap;}
.echo-hero .ebtn{font-size:14px;font-weight:600;padding:13px 22px;border-radius:999px;cursor:default;}
.echo-hero .ebtn.solid{background:var(--echo-crimson);color:#fff;}
.echo-hero .ebtn.ghost{border:1px solid #DED8D0;color:#1c1b18;}
.echo-hero .ehphoto{position:relative;border-radius:18px;overflow:hidden;aspect-ratio:4/3;
  background:linear-gradient(145deg,#E8DFD3,#D8C9B6);box-shadow:0 30px 60px -40px rgba(0,0,0,.5);
  display:flex;align-items:center;justify-content:center;}
.echo-hero .ehphoto .dog{font-size:84px;filter:saturate(.92);}
.echo-hero .ehphoto .stat{position:absolute;left:18px;bottom:18px;background:#fff;border-radius:13px;padding:11px 15px;
  box-shadow:0 14px 30px -16px rgba(0,0,0,.4);display:flex;align-items:center;gap:10px;}
.echo-hero .ehphoto .stat .pw{width:34px;height:34px;border-radius:50%;background:#F0E6D7;display:flex;align-items:center;justify-content:center;font-size:16px;}
.echo-hero .ehphoto .stat .n{font-weight:700;font-size:15px;color:#1c1b18;line-height:1.1;}
.echo-hero .ehphoto .stat .c{font-size:11.5px;color:#8a8178;}
.echo-trust{display:flex;flex-wrap:wrap;gap:14px 34px;justify-content:center;padding:18px;border-top:1px solid #EEE9E3;
  background:#FBF7F1;font-size:13px;color:#5c534a;}
.echo-trust span{display:flex;align-items:center;gap:8px;}
.echo-trust span::before{content:"✓";color:var(--echo-crimson);font-weight:700;}

/* floating Echo bubble (FAB) */
.echo-fab{position:absolute;right:22px;bottom:22px;z-index:10;display:flex;align-items:center;gap:12px;cursor:pointer;
  transition:opacity .3s,transform .3s;}
.echo-fab.gone{opacity:0;transform:scale(.6);pointer-events:none;}
.echo-fab .nudge{background:#fff;border:1px solid #EEE9E3;border-radius:14px 14px 4px 14px;padding:11px 15px;font-size:13px;color:#1c1b18;
  box-shadow:0 16px 36px -18px rgba(0,0,0,.3);max-width:200px;line-height:1.4;animation:echoFloat 3s ease-in-out infinite;}
.echo-fab .nudge b{color:var(--echo-crimson);}
.echo-fab .ball{width:60px;height:60px;border-radius:50%;background:linear-gradient(150deg,var(--echo-pink),var(--echo-crimson));
  display:flex;align-items:center;justify-content:center;color:#fff;font-size:26px;flex:none;
  box-shadow:0 14px 30px -10px rgba(194,26,82,.7);position:relative;}
.echo-fab .ball::after{content:"";position:absolute;inset:0;border-radius:50%;border:2px solid var(--echo-pink);animation:echoRing 2.4s infinite;}
@keyframes echoRing{0%{transform:scale(1);opacity:.7;}100%{transform:scale(1.5);opacity:0;}}
@keyframes echoFloat{0%,100%{transform:translateY(0);}50%{transform:translateY(-5px);}}

/* Echo chat panel */
.echo-chat{position:absolute;right:22px;bottom:22px;width:min(380px,calc(100% - 44px));height:min(560px,calc(100% - 44px));
  background:var(--echo-dark);border-radius:20px;overflow:hidden;display:flex;flex-direction:column;z-index:11;
  box-shadow:0 40px 90px -30px rgba(0,0,0,.65);transform-origin:bottom right;
  transform:scale(.4) translate(40px,40px);opacity:0;pointer-events:none;transition:.45s cubic-bezier(.22,1,.36,1);}
.echo-chat.open{transform:none;opacity:1;pointer-events:auto;}
.echo-chead{display:flex;align-items:center;gap:11px;padding:15px 16px;background:linear-gradient(135deg,#2a2630,#1d1a22);border-bottom:1px solid rgba(255,255,255,.07);}
.echo-chead .ball{width:38px;height:38px;border-radius:50%;background:linear-gradient(150deg,var(--echo-pink),var(--echo-crimson));
  display:flex;align-items:center;justify-content:center;font-size:17px;flex:none;position:relative;}
.echo-chead .ball::after{content:"";position:absolute;right:0;bottom:0;width:9px;height:9px;border-radius:50%;background:#46c37b;border:2px solid #1d1a22;}
.echo-chead .who{flex:1;min-width:0;}
.echo-chead .who .nm{font-weight:600;font-size:14.5px;color:#fff;}
.echo-chead .who .nm small{font-weight:400;color:var(--echo-soft);font-size:12px;margin-left:5px;}
.echo-chead .who .st{font-size:12px;color:var(--echo-soft);}
.echo-chead .who .st .live{color:var(--echo-amber);}
.echo-chead .hbtn{width:32px;height:32px;border-radius:8px;border:1px solid rgba(255,255,255,.12);background:transparent;cursor:pointer;
  color:var(--echo-soft);display:flex;align-items:center;justify-content:center;transition:.16s;}
.echo-chead .hbtn:hover{background:rgba(255,255,255,.08);color:#fff;}
.echo-chead .hbtn svg{width:16px;height:16px;}

.echo-notice{display:flex;align-items:center;gap:10px;margin:12px 14px 0;padding:10px 13px;border-radius:11px;
  background:rgba(232,176,75,.12);border:1px solid rgba(232,176,75,.28);font-size:11.5px;line-height:1.4;color:#E8C384;}
.echo-notice .x{flex:1;}
.echo-notice .human{border:1px solid rgba(232,176,75,.5);background:transparent;color:var(--echo-amber);cursor:pointer;font-family:inherit;
  font-size:11.5px;font-weight:600;padding:6px 11px;border-radius:8px;white-space:nowrap;transition:.16s;}
.echo-notice .human:hover{background:var(--echo-amber);color:#1d1a22;}

.echo-thread{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:12px;scroll-behavior:smooth;}
.echo-day{align-self:center;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--echo-soft);opacity:.7;}
.echo-msg{max-width:82%;animation:kwIn .4s cubic-bezier(.22,1,.36,1);}
.echo-msg.bot{align-self:flex-start;}
.echo-msg.user{align-self:flex-end;}
.echo-msg .lbl{display:flex;align-items:center;gap:7px;margin-bottom:5px;}
.echo-msg .lbl .tag{font-size:9px;font-weight:700;letter-spacing:.06em;background:var(--echo-amber);color:#1d1a22;padding:2px 6px;border-radius:4px;}
.echo-msg .lbl .vo{font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--echo-soft);}
.echo-bubble{padding:11px 14px;border-radius:14px;font-size:13.5px;line-height:1.5;}
.echo-msg.bot .echo-bubble{background:var(--echo-bubble);color:var(--echo-ink);border-bottom-left-radius:4px;}
.echo-msg.user .echo-bubble{background:linear-gradient(150deg,var(--echo-pink),var(--echo-crimson));color:#fff;border-bottom-right-radius:4px;}

.echo-typing{align-self:flex-start;display:flex;gap:4px;background:var(--echo-bubble);border-radius:12px;padding:12px 15px;}
.echo-typing i{width:6px;height:6px;border-radius:50%;background:var(--echo-soft);animation:kwBlink 1.3s infinite;}
.echo-typing i:nth-child(2){animation-delay:.2s;}
.echo-typing i:nth-child(3){animation-delay:.4s;}

.echo-compose-wrap{padding:11px 13px;background:var(--echo-panel);border-top:1px solid rgba(255,255,255,.07);}
.echo-chips{display:flex;gap:7px;flex-wrap:wrap;margin-bottom:10px;}
.echo-chip{border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.05);cursor:pointer;font-family:inherit;font-size:12.5px;
  color:var(--echo-ink);padding:7px 13px;border-radius:999px;transition:.16s;}
.echo-chip:hover{border-color:var(--echo-pink);background:rgba(232,81,126,.16);color:#fff;}
.echo-chip.gone{display:none;}
.echo-compose{display:flex;align-items:center;gap:9px;}
.echo-plus{width:38px;height:38px;border-radius:10px;border:1px solid rgba(255,255,255,.12);background:transparent;color:var(--echo-soft);
  display:flex;align-items:center;justify-content:center;flex:none;font-size:18px;}
.echo-input{flex:1;border:1px solid rgba(255,255,255,.12);border-radius:11px;padding:12px 14px;font-family:inherit;font-size:13.5px;
  color:#fff;background:rgba(255,255,255,.05);outline:none;}
.echo-input::placeholder{color:var(--echo-soft);}
.echo-input:focus{border-color:var(--echo-pink);}
.echo-send{width:38px;height:38px;border-radius:10px;border:0;background:linear-gradient(150deg,var(--echo-pink),var(--echo-crimson));
  cursor:pointer;color:#fff;flex:none;display:flex;align-items:center;justify-content:center;}
.echo-send svg{width:17px;height:17px;}

/* ============================================================
   MOBILE  —  modal becomes a bottom sheet
   ============================================================ */
@media(max-width:720px){
  .dm-overlay{padding:0;align-items:flex-end;}
  .dm-dialog{width:100%;height:92%;max-height:none;border-radius:20px 20px 0 0;transform:translateY(100%);}
  .dm-overlay.open .dm-dialog{transform:none;}
  .dm-grab{display:block;width:40px;height:4px;border-radius:4px;background:var(--kw-line);margin:9px auto 2px;flex:none;}
  .dm-head{padding:6px 12px 11px;flex-wrap:wrap;}
  .dm-head .dm-hint{display:none;}
  .dm-tab{padding:8px 14px;font-size:13px;}
  /* KAI Works: hide sidebar, thread fills */
  .kw-app{grid-template-columns:1fr;}
  .kw-side{display:none;}
  .kw-login{grid-template-columns:1fr;}
  .kw-login .kl-left{display:none;}
  .kw-login .kl-right{padding:26px 22px;}
  .kw-msg{max-width:88%;}
  .kw-drawer{width:100%;}
  /* Echo: chat fills the sheet */
  .echo-chat{right:0;bottom:0;width:100%;height:100%;border-radius:0;}
  .echo-fab{right:16px;bottom:16px;}
  .echo-fab .nudge{max-width:150px;}
  .echo-hero{grid-template-columns:1fr;gap:18px;}
  .echo-hero .ehphoto{aspect-ratio:16/10;}
  .echo-navlinks{display:none;}
}
@media(prefers-reduced-motion:reduce){
  .dm-dialog,.dm-panel,.kw-app,.kw-login,.kw-drawer,.echo-chat,.kw-msg,.echo-msg{transition-duration:.01ms!important;animation:none!important;}
  .echo-fab .ball::after,.echo-fab .nudge,.demo-trigger .dt-btn .pulse{animation:none!important;}
}
