.tour-backdrop{ display:none; position:fixed; inset:0; z-index:var(--z-tour); background:transparent; overflow:hidden; }
.tour-backdrop.open{ display:block; }
.tour-spot{
  display:none; position:fixed; z-index:calc(var(--z-tour) + 1); pointer-events:none; border-radius:10px;
  box-shadow:0 0 0 9999px rgba(20,24,32,0.55), 0 0 0 2px rgba(255,255,255,0.35) inset;
  transition:left .28s cubic-bezier(.2,.8,.2,1), top .28s cubic-bezier(.2,.8,.2,1), width .28s cubic-bezier(.2,.8,.2,1), height .28s cubic-bezier(.2,.8,.2,1);
}
.tour-spot.open{ display:block; }
.tour-card{
  display:none; position:fixed; z-index:calc(var(--z-tour) + 2); width:340px; max-width:calc(100vw - 24px);
  background:var(--ui-surface); color:var(--ui-text); border:1px solid var(--ui-border); border-radius:14px;
  box-shadow:var(--shadow-modal); padding:12px 16px 14px; font-family:var(--font-sans); box-sizing:border-box;
}
.tour-card.open{ display:block; }
.tour-card.tour-card-enter{ animation:tour-card-in .22s cubic-bezier(.2,.8,.2,1); }
@keyframes tour-card-in{ from{ opacity:0; transform:translateY(6px); } to{ opacity:1; transform:none; } }
.tour-card::before{
  content:''; position:absolute; width:12px; height:12px; background:var(--ui-surface);
  border:1px solid var(--ui-border); border-right:none; border-bottom:none; transform:rotate(45deg);
}
.tour-card[data-place="bottom"]::before{ top:-7px; left:calc(var(--tour-arrow-x, 50%) - 6px); }
.tour-card[data-place="top"]::before{ bottom:-7px; left:calc(var(--tour-arrow-x, 50%) - 6px); transform:rotate(225deg); }
.tour-card[data-place="right"]::before{ left:-7px; top:calc(var(--tour-arrow-y, 50%) - 6px); transform:rotate(-45deg); }
.tour-card[data-place="left"]::before{ right:-7px; top:calc(var(--tour-arrow-y, 50%) - 6px); transform:rotate(135deg); }
.tour-card-head{ display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:6px; }
.tour-count{ font-size:var(--text-xs); font-weight:var(--font-weight-semibold); color:var(--ui-muted); letter-spacing:.04em; }
.tour-close{ width:26px; height:26px; margin-right:-6px; }
.tour-title{ font-size:var(--text-lg); font-weight:var(--font-weight-semibold); color:var(--ui-text); margin-bottom:6px; }
.tour-text{ font-size:var(--text-md); color:var(--ui-text); line-height:1.5; }
.tour-foot{ display:flex; align-items:center; justify-content:space-between; gap:8px; margin-top:14px; }
.tour-skip{
  border:none; background:none; cursor:pointer; padding:4px 0; font-family:inherit;
  font-size:var(--text-sm); color:var(--ui-muted);
}
.tour-skip:hover{ color:var(--ui-text); }
.tour-nav{ display:flex; gap:6px; margin-left:auto; }
body.tour-open .onboarding-panel{ visibility:hidden; }
@media (max-width: 900px){
  .tour-backdrop, .tour-spot, .tour-card{ display:none !important; }
}

.welcome-overlay{
  display:none; position:fixed; inset:0; z-index:var(--z-welcome); background:rgba(20,24,32,0.45);
  align-items:center; justify-content:center; padding:16px; box-sizing:border-box;
}
.welcome-overlay.open{ display:flex; }
.welcome-modal{
  display:grid; grid-template-columns:minmax(0, 1fr) 300px; width:740px; max-width:100%;
  background:var(--md-color-grey-white); border-radius:20px; box-shadow:var(--shadow-modal); overflow:hidden;
  font-family:var(--font-sans); animation:modal-rise-in .32s cubic-bezier(.2,.8,.2,1);
}
.welcome-overlay.no-figure .welcome-modal{ grid-template-columns:minmax(0, 1fr); width:520px; }
.welcome-text{ padding:36px 32px 28px; display:flex; flex-direction:column; min-width:0; }
.welcome-kicker{
  font-size:var(--text-xs); font-weight:var(--font-weight-semibold); letter-spacing:.08em; text-transform:uppercase;
  color:var(--ui-accent); margin-bottom:8px;
}
.welcome-title{ margin:0 0 12px; font-family:var(--font-display); font-size:var(--text-5xl); font-weight:var(--font-weight-semibold); color:var(--ui-text); line-height:1.2; }
.welcome-desc{ margin:0 0 10px; font-size:var(--text-md); color:var(--ui-muted); line-height:1.55; }
.welcome-actions{ display:flex; justify-content:flex-end; gap:8px; margin-top:auto; padding-top:18px; }
.welcome-figure{
  margin:16px 16px 16px 0; border-radius:16px; background:var(--ui-surface-2);
  display:flex; align-items:center; justify-content:center; padding:20px; box-sizing:border-box; min-height:260px;
}
.welcome-figure[hidden]{ display:none; }
.welcome-figure img{ width:100%; height:auto; max-height:320px; object-fit:contain; display:block; }
@media (max-width: 900px){
  .welcome-overlay{ display:none !important; }
}

.tour-card.has-figure{ width:360px; }
.tour-figure{ position:relative; height:180px; margin:2px 0 12px; border-radius:10px; background:var(--ui-surface-2); overflow:hidden; }

.ts-scene{
  --ts-ease:cubic-bezier(.45,0,.2,1); --ts-sk:var(--ui-border);
  position:absolute; inset:0; font-family:var(--font-sans); font-size:9px; line-height:1.25; color:var(--ui-text);
  user-select:none; -webkit-user-select:none; pointer-events:none;
}
.ts-ui{ position:absolute; inset:0; transition:opacity .35s ease .3s; }
.ts-scene.is-resetting .ts-ui{ opacity:0; transition:opacity .35s ease; }
.ts-scene.is-seeking *, .ts-scene.is-seeking *::before, .ts-scene.is-seeking *::after{ transition:none !important; }

.ts-scene [data-at]{ transition:opacity .35s ease, transform .45s var(--ts-ease), background-color .3s ease, box-shadow .25s ease, border-color .25s ease; transition-delay:calc(var(--d, 0) * 70ms); }
.ts-scene [data-at]:not(.is-in){ opacity:0; transform:translateY(4px); }
.ts-scene [data-at][data-fx="fade"]:not(.is-in){ transform:none; }
.ts-scene [data-at][data-fx="pop"]{ transform-origin:var(--o, top left); }
.ts-scene [data-at][data-fx="pop"]:not(.is-in){ transform:scale(.9); }
.ts-scene [data-at][data-fx="width"]{ transform-origin:left center; }
.ts-scene [data-at][data-fx="width"]:not(.is-in){ opacity:1; transform:scaleX(0); }
.ts-scene [data-out]{ transition:opacity .3s ease, transform .3s ease, background-color .3s ease, box-shadow .25s ease, border-color .25s ease; }
.ts-scene [data-out].is-out{ opacity:0 !important; transform:scale(.97) !important; }
.ts-scene .ts-swap.is-out, .ts-scene .ts-ph.is-out, .ts-scene .ts-swap[data-at]:not(.is-in){ display:none; }
.ts-scene .is-click:not(.ts-cursor){ transform:scale(.93); box-shadow:0 0 0 3px var(--ui-accent-soft); }

.ts-cursor{ position:absolute; z-index:30; left:var(--x0, 86%); top:var(--y0, 114%); width:0; height:0; transition:left .55s var(--ts-ease), top .55s var(--ts-ease); }
.ts-cursor svg{ position:absolute; left:0; top:0; width:13px; height:auto; overflow:visible; fill:#151A22; stroke:#FFFFFF; stroke-width:1.2; stroke-linejoin:round; transform-origin:1px 1px; transition:transform .15s ease; filter:drop-shadow(0 1px 1.5px rgba(0,0,0,.28)); }
.ts-cursor.is-click svg{ transform:scale(.8); }
.ts-cursor::before{ content:''; position:absolute; left:-9px; top:-9px; width:20px; height:20px; border-radius:50%; background:var(--ui-accent); opacity:0; }
.ts-cursor.is-click::before{ animation:ts-ripple .45s ease-out; }
@keyframes ts-ripple{ from{ opacity:.4; transform:scale(.25); } to{ opacity:0; transform:scale(1.25); } }
.ts-cursor .ts-cur-text{ display:none; left:-6px; top:-7px; width:12px; fill:none; filter:none; }
.ts-cursor .ts-cur-text path{ stroke-linecap:round; }
.ts-cursor .ts-cur-text .o{ stroke:#FFFFFF; stroke-width:3.4; }
.ts-cursor .ts-cur-text .i{ stroke:#151A22; stroke-width:1.4; }
.ts-cursor .ts-cur-text.is-on{ display:block; }
.ts-cursor .ts-cur-arrow:not(.is-on)[data-off], .ts-cursor .ts-cur-arrow:not(.is-on)[data-on]{ display:none; }
.ts-cur-hand{ position:absolute; left:-6px; top:-6px; display:none; font-size:12px; line-height:1; color:#151A22; -webkit-text-stroke:1.4px #FFFFFF; paint-order:stroke fill; filter:drop-shadow(0 1px 1.5px rgba(0,0,0,.28)); }
.ts-cur-hand.is-on{ display:block; }
.ts-cur-hand .g{ display:none; }
.ts-cur-badge{ position:absolute; left:11px; top:11px; width:13px; height:13px; border-radius:50%; background:var(--ui-accent); color:#FFFFFF; font-size:6.5px; display:none; align-items:center; justify-content:center; box-shadow:0 1px 3px rgba(0,0,0,.25); }
.ts-cur-badge.is-on{ display:flex; }

.ts-abs{ position:absolute; }
.ts-anchor{ position:absolute; visibility:hidden; }
.ts-row{ display:flex; align-items:center; gap:6px; min-width:0; }
.ts-col{ display:flex; flex-direction:column; gap:6px; min-width:0; }
.ts-grow{ flex:1; }
.ts-label{ font-family:var(--font-regular); font-size:9px; color:var(--ui-text); white-space:nowrap; }
.ts-muted{ color:var(--ui-muted); white-space:nowrap; }
.ts-sk{ display:block; width:var(--w, 100%); height:5px; border-radius:3px; background:var(--ts-sk); flex-shrink:0; }
.ts-sk.t{ height:7px; background:var(--ui-border-strong); }
.ts-win{ position:absolute; background:var(--ui-surface); border:1px solid var(--ui-border); border-radius:8px; box-shadow:0 1px 2px rgba(var(--shadow-rgb),.06), 0 6px 16px rgba(var(--shadow-rgb),.08); }
.ts-pop{ box-shadow:var(--shadow-popover); z-index:10; }
.ts-btn{ display:inline-flex; align-items:center; justify-content:center; gap:4px; height:18px; padding:0 8px; border-radius:6px; border:1px solid var(--ui-border); background:var(--ui-surface); color:var(--ui-text); font-family:var(--font-regular); font-size:8px; white-space:nowrap; flex-shrink:0; transition:transform .15s ease, box-shadow .2s ease, background-color .2s ease; }
.ts-btn i{ font-size:7.5px; }
.ts-btn.p{ background:var(--ui-accent); border-color:var(--ui-accent); color:#FFFFFF; }
.ts-icon-btn{ display:inline-flex; align-items:center; justify-content:center; width:18px; height:18px; border-radius:5px; color:var(--ui-muted); font-size:8.5px; flex-shrink:0; transition:background-color .2s ease, color .2s ease, transform .15s ease; }
.ts-icon-btn.is-on{ background:var(--ui-accent-soft); color:var(--ui-accent); }
.ts-send{ position:absolute; right:6px; bottom:6px; width:18px; height:18px; border-radius:50%; background:var(--ui-accent); color:#FFFFFF; font-size:8px; display:flex; align-items:center; justify-content:center; transition:transform .15s ease, box-shadow .2s ease; }
.ts-field{ transition:border-color .2s ease, box-shadow .2s ease; }
.ts-field.is-on{ border-color:var(--ui-accent); box-shadow:0 0 0 2px var(--ui-accent-soft); }
.ts-input{ display:flex; align-items:center; gap:4px; height:20px; padding:0 7px; border:1px solid var(--ui-border); border-radius:6px; background:var(--ui-surface); font-size:8.5px; white-space:nowrap; overflow:hidden; min-width:0; }
.ts-ph{ color:var(--ui-muted-light); white-space:nowrap; }
.ts-caret{ display:inline-block; width:1px; height:10px; margin-left:1px; vertical-align:-1px; background:var(--ui-accent); animation:ts-blink 1s steps(1) infinite; }
@keyframes ts-blink{ 50%{ opacity:0; } }
.ts-chip{ display:inline-flex; align-items:center; gap:3px; height:14px; padding:0 6px; border-radius:7px; background:var(--ui-surface-2); color:var(--ui-text-2); font-size:7.5px; white-space:nowrap; flex-shrink:0; }
.ts-chip.ok{ background:rgba(27,158,107,.14); color:var(--ui-success); }
.ts-chip.ac{ background:var(--ui-accent-soft); color:var(--ui-accent); }
.ts-num{ display:inline-flex; align-items:center; justify-content:center; width:13px; height:13px; border-radius:4px; background:var(--ui-accent-soft); color:var(--ui-accent); font-family:var(--font-regular); font-size:7px; flex-shrink:0; }
.ts-avatar{ display:inline-flex; align-items:center; justify-content:center; width:14px; height:14px; border-radius:50%; background:var(--c, var(--ui-accent)); color:#FFFFFF; font-family:var(--font-regular); font-size:7px; flex-shrink:0; transition:background-color .4s ease, transform .15s ease, box-shadow .2s ease; }
.ts-avatar i{ font-size:6.5px; }
.ts-key{ display:inline-flex; align-items:center; justify-content:center; min-width:18px; height:18px; padding:0 5px; border-radius:5px; border:1px solid var(--ui-border-strong); border-bottom-width:2px; background:var(--ui-surface); color:var(--ui-text); font-family:var(--font-regular); font-size:8.5px; box-shadow:var(--shadow-sm); }
.ts-keys{ position:absolute; display:flex; gap:3px; z-index:12; }
.ts-menu{ position:absolute; display:flex; flex-direction:column; gap:1px; padding:4px; background:var(--ui-surface); border:1px solid var(--ui-border); border-radius:8px; box-shadow:var(--shadow-popover); z-index:12; }
.ts-mi{ display:flex; align-items:center; gap:6px; height:18px; padding:0 6px; border-radius:5px; font-size:8px; white-space:nowrap; transition:background-color .2s ease; }
.ts-mi i{ width:10px; text-align:center; font-size:8px; color:var(--ui-muted); }
.ts-mi.is-on{ background:var(--ui-surface-2); transition-delay:.4s; }
.ts-sep{ height:1px; margin:2px 4px; background:var(--ui-border); }
.ts-seg{ display:flex; gap:2px; padding:2px; border-radius:7px; background:var(--ui-surface-2); }
.ts-seg > span{ display:inline-flex; align-items:center; justify-content:center; gap:3px; height:15px; padding:0 7px; border-radius:5px; font-size:7.5px; color:var(--ui-muted); white-space:nowrap; transition:background-color .25s ease, color .25s ease, box-shadow .25s ease, transform .15s ease; }
.ts-seg > span i{ font-size:7px; }
.ts-seg > span.is-on{ background:var(--ui-surface); color:var(--ui-text); font-family:var(--font-regular); box-shadow:0 1px 2px rgba(var(--shadow-rgb), .16); }
.ts-pills{ display:flex; gap:4px; }
.ts-pills > span{ display:inline-flex; align-items:center; height:16px; padding:0 8px; border-radius:8px; border:1px solid var(--ui-border); background:var(--ui-surface); font-size:7.5px; color:var(--ui-text-2); white-space:nowrap; transition:background-color .25s ease, color .25s ease, border-color .25s ease, transform .15s ease; }
.ts-pills > span.is-on{ background:var(--ui-pill-active); border-color:var(--ui-pill-active); color:var(--ui-pill-active-fg); }
.ts-tabs{ display:flex; gap:10px; border-bottom:1px solid var(--ui-border); }
.ts-tabs > span{ padding:0 1px 4px; font-size:8px; color:var(--ui-muted); border-bottom:1.5px solid transparent; margin-bottom:-1px; white-space:nowrap; transition:color .25s ease, border-color .25s ease; }
.ts-tabs > span.is-on{ color:var(--ui-text); border-bottom-color:var(--ui-accent); }
.ts-toast{ position:absolute; display:flex; align-items:center; gap:6px; height:26px; padding:0 10px; border-radius:9px; background:var(--ui-surface); box-shadow:var(--shadow-soft); font-size:8.5px; white-space:nowrap; z-index:14; }
.ts-toast > i{ color:var(--ui-success); font-size:10px; }
.ts-veil{ position:absolute; inset:0; background:rgba(20,24,32,.35); z-index:9; }
.ts-typing{ display:inline-flex; gap:2px; }
.ts-typing i{ width:4px; height:4px; border-radius:50%; background:var(--ui-muted); animation:ts-dot 1s ease-in-out infinite; }
.ts-typing i:nth-child(2){ animation-delay:.15s; }
.ts-typing i:nth-child(3){ animation-delay:.3s; }
@keyframes ts-dot{ 0%, 60%, 100%{ opacity:.35; transform:none; } 30%{ opacity:1; transform:translateY(-2px); } }
.ts-omega{ display:inline-block; width:12px; height:12px; flex-shrink:0; background:var(--ui-ai-gradient); -webkit-mask:url('../assets/logo/logo-ai-solid.svg') center / contain no-repeat; mask:url('../assets/logo/logo-ai-solid.svg') center / contain no-repeat; }
.ts-progress{ height:4px; border-radius:2px; background:var(--ui-surface-2); overflow:hidden; }
.ts-progress > i{ display:block; height:100%; border-radius:inherit; background:var(--ui-accent); transform-origin:left center; transition:transform 1.2s var(--ts-ease); }
.ts-progress[data-at]:not(.is-in) > i{ transform:scaleX(0); }
.ts-progress[data-at]{ opacity:1 !important; transform:none !important; }
.ts-img{ background:linear-gradient(135deg, #B5C7FB 0%, #8E7BF0 55%, #FC89FF 100%); position:relative; overflow:hidden; }
.ts-img::after{ content:''; position:absolute; left:-10%; right:-10%; bottom:-30%; height:65%; border-radius:50% 50% 0 0; background:rgba(255,255,255,.28); }
.ts-img.b{ background:linear-gradient(135deg, #A6E3CF 0%, #3FB68B 100%); }
.ts-img.c{ background:linear-gradient(135deg, #FFD7A8 0%, #F08A4B 100%); }
.ts-img.d{ background:linear-gradient(135deg, #C9D6E8 0%, #6F86A8 100%); }

.ts-nav{ position:absolute; left:0; top:0; bottom:0; width:38px; display:flex; flex-direction:column; align-items:center; gap:3px; padding:8px 0 7px; background:var(--ui-surface); border-right:1px solid var(--ui-border); z-index:4; }
.ts-nav-logo{ display:block; width:18px; height:18px; margin-bottom:3px; }
.ts-nav > *{ flex-shrink:0; }
.ts-nav .ts-icon-btn{ width:22px; height:22px; font-size:9.5px; }
.ts-nav .ts-avatar{ width:18px; height:18px; }
.ts-nav-help{ position:relative; margin-top:auto; width:20px; height:20px; display:flex; align-items:center; justify-content:center; font-size:10px; color:var(--ui-muted); }
.ts-nav-help::before{
  content:''; position:absolute; inset:1px; border-radius:50%;
  background:conic-gradient(var(--ui-accent) 38%, var(--ui-border) 0);
  -webkit-mask:radial-gradient(farthest-side, transparent calc(100% - 2px), #000 calc(100% - 2px));
  mask:radial-gradient(farthest-side, transparent calc(100% - 2px), #000 calc(100% - 2px));
}
.ts-nav .ts-icon-btn.is-on{ background:var(--ui-accent); color:#FFFFFF; }

.ts-slide, .ts-thumb{
  --ui-surface:#FFFFFF; --ui-surface-2:#F2F5F9; --ui-border:#E1E5EB; --ui-border-strong:#D3D9E2; --ui-text:#2F353E;
  --ui-accent:#0040DE; --ui-accent-soft:#EEF3FE; --ts-sk:#E1E5EB;
  position:absolute; container-type:inline-size; aspect-ratio:16 / 9; overflow:hidden; background:var(--ui-surface); border-radius:4px;
  box-shadow:0 0 0 1px rgba(20,30,50,.06), 0 2px 6px rgba(20,30,50,.08); transition:background-color .4s ease, box-shadow .25s ease, transform .25s ease;
}
.ts-thumb{ position:relative; border-radius:3px; outline:1.5px solid transparent; outline-offset:1.5px; transition:background-color .4s ease, box-shadow .25s ease, transform .25s ease, outline-color .25s ease; }
.ts-thumb.ts-abs{ position:absolute; }
.ts-thumb.is-on{ outline-color:var(--ui-accent); }
.ts-s-title{ position:absolute; left:7%; top:9%; width:var(--w, 42%); height:5cqw; border-radius:2.5cqw; background:var(--ui-border-strong); }
.ts-s-text{ position:absolute; left:7%; top:7%; font-family:var(--font-display); font-size:6cqw; line-height:1.2; color:var(--ui-text); white-space:nowrap; }
.ts-s-card{ position:absolute; display:flex; flex-direction:column; gap:2.4cqw; padding:3.2cqw; border-radius:2.6cqw; background:var(--ui-surface-2); overflow:hidden; transition:left .7s var(--ts-ease), top .7s var(--ts-ease), width .7s var(--ts-ease), height .7s var(--ts-ease), background-color .4s ease, box-shadow .25s ease, opacity .35s ease, transform .45s var(--ts-ease); }
.ts-s-dot{ width:5.5cqw; height:5.5cqw; border-radius:1.6cqw; background:var(--ui-accent-soft); box-shadow:inset 0 0 0 1.4cqw var(--ui-accent-soft), inset 0 0 0 3cqw var(--ui-accent); flex-shrink:0; }
.ts-s-line{ display:block; width:var(--w, 100%); height:2.4cqw; border-radius:1.2cqw; background:var(--ts-sk); flex-shrink:0; }
.ts-s-num{ display:block; width:var(--w, 62%); height:6.5cqw; border-radius:2cqw; background:var(--ui-accent); flex-shrink:0; }
.ts-s-bars{ display:flex; align-items:flex-end; gap:2cqw; flex:1; min-height:0; }
.ts-s-bars i{ flex:1; height:var(--v); border-radius:1cqw 1cqw 0 0; background:var(--ui-accent); transform-origin:bottom; transition:transform .55s var(--ts-ease); transition-delay:calc((var(--d, 0) + var(--i, 0)) * 70ms); }
.ts-s-bars[data-at]{ opacity:1 !important; transform:none !important; }
.ts-s-bars[data-at]:not(.is-in) i{ transform:scaleY(0); }
.ts-s-img{ position:absolute; border-radius:2.6cqw; }
.ts-k-cover{
  --h-from:#F2F5F9; --h-to:#CFE0FB; --h-fg:#0040DE; --h-veil:226,235,250; --h-sub:rgba(47,53,62,.2);
  background-color:#FFFFFF; background-image:linear-gradient(160deg, var(--h-from) 0%, var(--h-to) 100%);
}
.ts-k-teal{ --h-to:#C2F4E6; --h-fg:#077E63; --h-veil:218,244,239; }
.ts-k-pink{ --h-to:#FFCAD7; --h-fg:#C73B61; --h-veil:248,223,232; }
.ts-k-dark{ --h-from:#1E2430; --h-to:rgba(107,138,247,.28); --h-fg:#6B8AF7; --h-veil:30,36,48; --h-sub:rgba(255,255,255,.2); background-color:#1E2430; }
.ts-c-rule, .ts-c-eyebrow, .ts-c-sub{ position:absolute; left:6.25%; border-radius:1.2cqw; }
.ts-c-rule{ top:10%; width:5%; height:max(1px, .6cqw); background:var(--h-fg); }
.ts-c-eyebrow{ top:15%; width:22%; height:2cqw; background:var(--h-fg); opacity:.4; }
.ts-k-cover .ts-c-title{ left:6.25%; top:44%; width:var(--w, 56%); height:6cqw; border-radius:3cqw; background:var(--h-fg); }
.ts-k-photo .ts-c-title{ --w:44%; }
.ts-c-sub{ top:82%; width:30%; height:2.4cqw; background:var(--h-sub); }
.ts-c-photo{ position:absolute; inset:0; }
.ts-c-photo::before{ content:''; position:absolute; right:11%; top:16%; width:13cqw; height:13cqw; border-radius:50%; background:rgba(255,255,255,.6); }
.ts-c-veil{ position:absolute; left:0; top:0; bottom:0; width:66.67%; background:rgba(var(--h-veil), .88); }
.ts-k-section{ background:var(--ui-surface-2); }

.ts-deck{ display:flex; flex-direction:column; gap:4px; min-width:0; }
.ts-deck .ts-thumb{ width:100%; }
.ts-deck-name{ display:flex; align-items:center; gap:4px; height:9px; font-size:7.5px; white-space:nowrap; }
.ts-deck-name .fa-star{ color:#E0A100; font-size:7px; margin-left:auto; }

.ts-panel{ position:absolute; top:0; right:0; bottom:0; display:flex; flex-direction:column; gap:7px; padding:10px; background:var(--ui-surface); border-left:1px solid var(--ui-border); z-index:3; }
.ts-panel-l{ position:absolute; top:0; left:0; bottom:0; background:var(--ui-surface); border-right:1px solid var(--ui-border); z-index:3; }
.ts-panel-title{ font-family:var(--font-regular); font-size:9.5px; color:var(--ui-text); display:flex; align-items:center; gap:5px; }
.ts-field-label{ font-size:7.5px; color:var(--ui-muted); }
.ts-stepper{ display:flex; align-items:center; height:18px; border:1px solid var(--ui-border); border-radius:6px; overflow:hidden; }
.ts-stepper > span{ display:flex; align-items:center; justify-content:center; width:18px; height:100%; color:var(--ui-muted); font-size:7px; transition:background-color .2s ease, transform .15s ease; }
.ts-stepper > b{ flex:1; text-align:center; font-family:var(--font-regular); font-weight:400; font-size:8.5px; }
.ts-swatch{ width:16px; height:16px; border-radius:5px; border:1px solid var(--ui-border); flex-shrink:0; transition:box-shadow .2s ease, transform .15s ease; }
.ts-swatch.is-on{ box-shadow:0 0 0 2px var(--ui-surface), 0 0 0 3.5px var(--ui-accent); }
.ts-toggle{ width:20px; height:11px; border-radius:6px; background:var(--ui-accent); position:relative; flex-shrink:0; }
.ts-toggle::after{ content:''; position:absolute; right:1.5px; top:1.5px; width:8px; height:8px; border-radius:50%; background:#FFFFFF; }
.ts-tile{ display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; border-radius:6px; background:var(--ui-surface-2); font-size:7px; color:var(--ui-text-2); white-space:nowrap; transition:transform .15s ease, box-shadow .2s ease; }
.ts-tile i{ font-size:9px; color:var(--ui-text); }
.ts-ghost{ position:absolute; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; border-radius:6px; background:var(--ui-surface); box-shadow:var(--shadow-popover), 0 0 0 1.5px var(--ui-accent); font-size:7px; z-index:20; transition:left .7s var(--ts-ease), top .7s var(--ts-ease), opacity .3s ease, transform .3s ease; }
.ts-ghost i{ font-size:9px; color:var(--ui-accent); }
.ts-drop{ position:absolute; border-radius:2.6cqw; border:1px dashed var(--ui-border-strong); transition:border-color .25s ease, background-color .25s ease; }
.ts-drop.is-on{ border-color:var(--ui-accent); background:var(--ui-accent-soft); transition-delay:.35s; }
.ts-topbar{ display:flex; align-items:center; gap:6px; padding:0 8px; }
.ts-topbar .ts-btn{ padding:0 7px; }
.ts-topbar .ts-split .ts-btn:last-child{ padding:0 4px; }
.ts-topbar-logo{ display:block; width:14px; height:14px; flex-shrink:0; }
.ts-avatars{ display:flex; }
.ts-avatars .ts-avatar{ box-shadow:0 0 0 1.5px var(--ui-surface); }
.ts-avatars .ts-avatar + .ts-avatar{ margin-left:-4px; }
.ts-split{ display:inline-flex; }
.ts-split .ts-btn:first-child{ border-radius:6px 0 0 6px; }
.ts-split .ts-btn:last-child{ border-radius:0 6px 6px 0; border-left-color:rgba(255,255,255,.35); padding:0 5px; }
.ts-split .ts-btn:not(.p):last-child{ border-left-color:var(--ui-border); }
.ts-bubble{ padding:5px 7px; border-radius:8px; font-size:8px; line-height:1.35; }
.ts-bubble.me{ align-self:flex-end; background:var(--ui-accent-soft); color:var(--ui-text); border-bottom-right-radius:3px; }
.ts-mention{ color:var(--ui-accent); font-family:var(--font-regular); }
.ts-pin{ position:absolute; width:18px; height:18px; border-radius:50% 50% 50% 2px; background:var(--ui-accent); color:#FFFFFF; display:flex; align-items:center; justify-content:center; font-size:7px; box-shadow:0 0 0 1.5px #FFFFFF, var(--shadow-sm); z-index:6; }

.ts-scene .ts-ghost{ transition:left .55s var(--ts-ease), top .55s var(--ts-ease), opacity .3s ease, transform .3s ease; }
.ts-scene .ts-s-card{ transition:left .55s var(--ts-ease), top .55s var(--ts-ease), width .55s var(--ts-ease), height .55s var(--ts-ease), background-color .4s ease, box-shadow .25s ease, opacity .35s ease, transform .45s var(--ts-ease); transition-delay:calc(var(--d, 0) * 70ms); }

.ts-flip{
  --ui-surface:#FFFFFF; --ui-surface-2:#F2F5F9; --ui-border:#E1E5EB; --ui-border-strong:#D3D9E2; --ui-text:#2F353E; --ui-text-2:#626B7D;
  --ui-muted:#8A93A2; --ui-muted-light:#A6AEBC; --ui-accent:#0040DE; --ui-accent-soft:#EEF3FE; --ui-pill-active:#2F353E; --ui-pill-active-fg:#FFFFFF;
  --ts-sk:#E1E5EB; --shadow-rgb:20,30,50; --shadow-popover:0 8px 24px rgba(20,30,50,0.24);
  background:var(--ui-surface-2); transition:background-color .45s ease;
}
.ts-flip.is-on{
  --ui-surface:#1A1F27; --ui-surface-2:#242A34; --ui-border:#2E3540; --ui-border-strong:#3D4553; --ui-text:#E6EAF1; --ui-text-2:#B5BECC;
  --ui-muted:#8A93A2; --ui-muted-light:#626B7D; --ui-accent:#6B8AF7; --ui-accent-soft:rgba(107,138,247,0.18); --ui-pill-active:#E6EAF1; --ui-pill-active-fg:#151A22;
  --ts-sk:#2E3540; --shadow-rgb:0,0,0; --shadow-popover:0 0 0 1px rgba(255,255,255,0.08), 0 12px 32px rgba(0,0,0,0.65);
}
.ha-color{ --ha-c:#7B5CE0; }
.ha-color.is-on{ --ha-c:#1B9E6B; }
.ts-avatar.ha-av{ --c:var(--ha-c, #7B5CE0); }
.ha-big{ position:relative; flex-shrink:0; }
.ha-big .ts-avatar{ width:30px; height:30px; font-size:12px; }
.ha-pen{ position:absolute; right:-3px; bottom:-3px; width:13px; height:13px; border-radius:50%; background:var(--ui-surface); border:1px solid var(--ui-border); color:var(--ui-text); font-size:5.5px; display:flex; align-items:center; justify-content:center; box-shadow:var(--shadow-xs); transition:transform .15s ease, box-shadow .2s ease; }
.ha-field{ display:flex; align-items:center; gap:6px; height:16px; padding:0 6px; border:1px solid var(--ui-border); border-radius:5px; font-size:6.5px; color:var(--ui-muted); }
.ha-modal .ts-seg > span, .ha-avmodal .ts-seg > span{ flex:1; }
.ha-pane{ height:40px; }
.ha-drop{ height:40px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:2px; border:1px dashed var(--ui-border-strong); border-radius:7px; font-size:6px; color:var(--ui-text-2); }
.ha-sw{ width:15px; height:15px; border-radius:50%; display:flex; align-items:center; justify-content:center; flex-shrink:0; color:#FFFFFF; font-family:var(--font-display); font-style:normal; font-size:6.5px; transition:box-shadow .2s ease, transform .15s ease; }
.ha-sw.is-on{ box-shadow:0 0 0 1.5px var(--ui-surface), 0 0 0 2.5px var(--ui-text); }
.ts-flip .ts-win, .ts-flip .ts-nav, .ts-flip .ts-menu, .ts-flip .ts-mi, .ts-flip .ts-label, .ts-flip .ts-sk{ transition:background-color .45s ease, color .45s ease, border-color .45s ease, opacity .35s ease, transform .45s var(--ts-ease); }

.ts-home-chat .hc-box{ left:34px; top:65px; width:260px; height:50px; transition:top .6s var(--ts-ease), height .6s var(--ts-ease), border-color .2s ease, box-shadow .2s ease; }
.ts-home-chat.q4 .hc-box{ top:8px; height:30px; }
.hc-box .ts-send{ right:6px; bottom:6px; }
.hc-outline{ left:34px; top:44px; width:260px; gap:4px; }
.hc-ol-head{ height:12px; gap:7px; font-size:7px; color:var(--ui-muted); }
.hc-ol-head .ts-label{ font-size:8.5px; }
.hc-card{ display:flex; align-items:flex-start; gap:6px; padding:4px 8px; border:1px solid var(--ui-border); border-radius:6px; background:var(--ui-surface); }
.hc-card.type-cover{ background:color-mix(in srgb, var(--ui-accent) 6%, var(--ui-surface)); border-color:color-mix(in srgb, var(--ui-accent) 22%, var(--ui-surface)); }
.hc-num{ width:9px; flex-shrink:0; margin-top:1px; text-align:center; font-family:var(--font-regular); font-size:7px; color:var(--ui-muted); }
.hc-num i{ font-size:6.5px; }
.hc-card.type-cover .hc-num, .hc-card.type-cover .hc-badge{ color:var(--ui-accent); }
.hc-fields{ display:flex; flex-direction:column; gap:2px; flex:1; min-width:0; }
.hc-badge{ display:inline-flex; align-items:center; gap:3px; font-family:var(--font-regular); font-size:5.5px; letter-spacing:.04em; text-transform:uppercase; color:var(--ui-muted); }
.hc-badge i{ font-size:5px; }
.hc-title{ font-family:var(--font-regular); font-size:8px; color:var(--ui-text); white-space:nowrap; }
.hc-sum{ height:4px; margin-top:1px; }
.ts-home-chat .hc-go{ display:flex; width:100%; height:18px; margin-top:2px; }
.hk-editor{ overflow:hidden; }
.hk-gutter{ position:absolute; left:0; top:0; bottom:0; width:18px; padding-top:8px; text-align:center; font-family:var(--font-mono); font-size:7px; line-height:12px; color:var(--ui-muted-light); background:var(--ui-surface-2); border-radius:8px 0 0 8px; }
.hk-lines{ position:absolute; left:26px; top:8px; font-family:var(--font-mono); font-size:7.5px; line-height:12px; color:var(--ui-text-2); white-space:nowrap; }
.hk-k{ color:var(--ui-accent); }
.hk-v{ display:inline-block; vertical-align:middle; width:var(--w); height:4px; border-radius:2px; background:var(--ui-border-strong); }
.hb-cta{ height:22px; padding:0 12px; font-size:8.5px; }
.hb-ppt, .ts-toast > i.hb-ppt{ font-size:16px; color:#D24726; }
.hb-pane{ height:60px; }
.hb-drop{ height:60px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; padding:0 18px; border:1px dashed var(--ui-border-strong); border-radius:7px; font-size:6.5px; line-height:1.35; color:var(--ui-text-2); text-align:center; transition:border-color .25s ease, background-color .25s ease; }
.hb-drop i, .ha-drop i{ font-size:11px; color:var(--ui-muted); }
.hb-drop u, .ha-drop u{ color:var(--ui-accent); text-decoration:none; }
.hb-drop.is-on{ border-color:var(--ui-accent); background:var(--ui-accent-soft); transition-delay:.35s; }
.ts-btn.hb-all{ height:15px; padding:0 6px; font-size:7px; }
.hb-grid{ display:grid; grid-template-columns:repeat(4, 1fr); gap:6px; }
.hb-pick{ position:relative; display:flex; flex-direction:column; align-items:center; gap:2px; font-size:6px; color:var(--ui-muted); }
.hb-pick .ts-thumb{ width:100%; }
.hb-check{ position:absolute; left:3px; top:3px; z-index:1; width:8px; height:8px; border-radius:2px; background:#FFFFFF; border:1px solid #D3D9E2; display:flex; align-items:center; justify-content:center; font-size:5px; color:transparent; transition:background-color .2s ease, border-color .2s ease, color .2s ease; }
.hb-check.is-on{ background:var(--ui-accent); border-color:var(--ui-accent); color:#FFFFFF; }
.ts-btn.hb-go{ opacity:.45; transition:opacity .2s ease, transform .15s ease, box-shadow .2s ease; }
.ts-btn.hb-go.is-on{ opacity:1; }
.ts-home-blank .hb-file{ left:226px; top:142px; width:92px; height:22px; flex-direction:row; gap:5px; font-size:7px; }
.ts-home-blank .hb-file i{ font-size:9px; }
.ts-home-blank.q9 .hb-file{ left:118px; top:74px; }
.ts-home-templates .ts-deck{ transition:transform .25s var(--ts-ease); }
.ts-home-templates .ht-c2.is-on{ transform:translateY(-3px); transition-delay:.35s; }
.ts-home-templates .ht-c2.is-on .ts-thumb{ outline-color:var(--ui-accent); box-shadow:var(--shadow-sm); transition-delay:.35s; }
.hd-grid{ left:22px; top:48px; width:284px; display:grid; grid-template-columns:repeat(4, 1fr); gap:9px 8px; }
.hd-av{ width:9px; height:9px; font-size:5px; }
.has-grid{ left:52px; top:58px; width:262px; display:grid; grid-template-columns:repeat(4, 1fr); gap:8px; }
.has-tile{ display:block; aspect-ratio:16 / 9; border-radius:3px; }
.hdn-grid{ left:52px; top:62px; width:262px; display:grid; grid-template-columns:repeat(4, 1fr); gap:9px 8px; }
.hcr-hint{ position:absolute; left:0; right:0; top:44%; text-align:center; font-size:5.5cqw; color:#8A93A2; }
.hcr-rail{ position:absolute; right:0; top:25px; bottom:0; width:22px; display:flex; flex-direction:column; align-items:center; gap:3px; padding-top:6px; border-left:1px solid var(--ui-border); }
.hcr-rail .ts-icon-btn{ width:16px; height:16px; font-size:7.5px; }

.es-n{ position:absolute; left:11px; font-size:7px; color:var(--ui-muted); }
.ts-ed-slides .es-t{ position:absolute; left:28px; width:60px; border-radius:3px; transition:top .55s var(--ts-ease), transform .25s ease, opacity .35s ease; }
.ts-ed-slides .es-t1{ top:32px; }
.ts-ed-slides .es-t2{ top:69px; }
.ts-ed-slides .es-t3{ top:106px; }
.ts-ed-slides .es-tn{ top:143px; z-index:2; }
.ts-ed-slides.q4 .es-tn{ top:106px; }
.ts-ed-slides.q4 .es-t3{ top:143px; }
.ts-ed-slides .es-t.is-on{ transform:scale(1.06) rotate(-2deg); z-index:4; }
.ts-ed-slides .es-t.is-on .ts-thumb{ box-shadow:var(--shadow-popover); }

.ts-ed-stage .est-title{ font-size:5cqw; padding:0 .6cqw; margin-left:-.6cqw; border-radius:.8cqw; outline:1px dashed transparent; outline-offset:2px; transition:outline-color .2s ease; }
.ts-ed-stage .est-title.is-on{ outline-color:var(--ui-accent); }
.ts-ed-stage.q6 .est-old{ background:var(--ui-accent-soft); }
.ts-ed-stage .est-a, .ts-ed-stage .est-b, .ts-ed-stage .est-c{ top:30%; width:26.5%; height:58%; }
.ts-ed-stage .est-a{ left:7%; }
.ts-ed-stage .est-b{ left:36.75%; }
.ts-ed-stage .est-c{ left:66.5%; z-index:2; }
.ts-ed-stage.q3 .est-c{ left:7%; }
.ts-ed-stage.q3 .est-a{ left:36.75%; }
.ts-ed-stage.q3 .est-b{ left:66.5%; }
.ts-ed-stage .est-c.is-on{ box-shadow:0 0 0 1.5px var(--ui-accent); }
.ts-ed-stage.q3:not(.q4) .est-c{ transform:scale(1.03); box-shadow:0 0 0 1.5px var(--ui-accent), 0 8px 20px rgba(20,30,50,.22); }
.est-h{ position:absolute; right:1.2cqw; bottom:1.2cqw; width:2.4cqw; height:2.4cqw; border-radius:.6cqw; background:var(--ui-accent); opacity:0; transition:opacity .2s ease; }
.est-c.is-on .est-h{ opacity:1; }

.ts-ed-modes .em-title{ font-size:5cqw; padding:0 .6cqw; margin-left:-.6cqw; border-radius:.8cqw; outline:1px dashed transparent; outline-offset:2px; transition:outline-color .2s ease; }
.ts-ed-modes .em-title.is-on{ outline-color:var(--ui-accent); }
.ts-ed-modes .em-a, .ts-ed-modes .em-b{ top:32%; width:26.5%; height:58%; }
.ts-ed-modes .em-a{ left:7%; z-index:2; }
.ts-ed-modes .em-b{ left:36.75%; }
.ts-ed-modes.q2 .em-a{ left:36.75%; }
.ts-ed-modes.q2 .em-b{ left:7%; }
.ts-ed-modes .em-a.is-on{ transform:scale(1.03); box-shadow:0 0 0 1.5px var(--ui-accent), 0 8px 20px rgba(20,30,50,.22); }
.ts-ed-modes.q1c:not(.q3) .ts-cur-hand .o{ display:none; }
.ts-ed-modes.q1c:not(.q3) .ts-cur-hand .g{ display:inline; }

.ts-ed-layout .el-a, .ts-ed-layout .el-b, .ts-ed-layout .el-c{ top:32%; height:58%; }
.ts-ed-layout.q3c .el-a, .ts-ed-layout.q3c .el-b, .ts-ed-layout.q3c .el-c{ top:42%; height:48%; }
.ts-ed-layout .ts-s-title{ transition:top .45s var(--ts-ease), height .45s var(--ts-ease), width .45s var(--ts-ease); }
.ts-ed-layout.q3c .ts-s-title{ top:14%; height:7cqw; width:56%; }
.el-prev{ display:flex; flex-direction:column; gap:2px; align-self:center; width:96px; aspect-ratio:16 / 9; padding:4px; border:1px solid var(--ui-border); border-radius:6px; background:var(--ui-surface-2); }
.el-cell{ display:block; min-width:0; background:var(--ui-surface); border:1px solid var(--ui-border); border-radius:2px; }
.el-tr{ height:28%; flex-shrink:0; transition:height .45s var(--ts-ease); }
.ts-ed-layout.q3c .el-tr{ height:42%; }
.el-crow{ flex:1; display:flex; gap:2px; }
.el-crow .el-cell{ flex:1 1 0; transition:flex-grow .45s var(--ts-ease), opacity .3s ease, margin .45s var(--ts-ease); }
.el-crow .el-c3{ flex-grow:0; opacity:0; margin-left:-2px; }
.ts-ed-layout.q1c .el-crow .el-c3{ flex-grow:1; opacity:1; margin-left:0; }
.el-cols > span{ flex:1; padding:0; }
.el-lrow{ font-size:7px; color:var(--ui-text-2); white-space:nowrap; }
.el-lrow .ts-seg > span{ padding:0 5px; }
.ts-ed-layout .el-a{ left:7%; width:41.5%; }
.ts-ed-layout .el-b{ left:51.5%; width:41.5%; }
.ts-ed-layout .el-c{ left:66.5%; width:26.5%; }
.ts-ed-layout.q1c .el-a{ width:26.5%; }
.ts-ed-layout.q1c .el-b{ left:36.75%; width:26.5%; }

.ec-tiles, .ei-tiles{ display:grid; grid-template-columns:1fr 1fr; gap:6px; }
.ec-tiles .ts-tile{ height:34px; }
.ec-ghost{ left:265px; top:69px; width:53px; height:34px; }
.ts-ed-components.q3 .ec-ghost{ left:113px; top:81px; }
.ei-tile{ display:block; position:relative; height:34px; border-radius:5px; }
.ei-new{ background:var(--ui-surface-2); display:flex; align-items:center; justify-content:center; overflow:hidden; }
.ei-new .ts-img{ position:absolute; inset:0; }
.ei-ghost{ left:265px; top:134px; width:53px; height:34px; }
.ts-ed-images.q5 .ei-ghost{ left:113px; top:72px; }
.ei-tool{ display:inline-flex; align-items:center; justify-content:center; width:18px; height:18px; flex-shrink:0; border:1px solid var(--ui-border); border-radius:5px; font-size:7.5px; color:var(--ui-text-2); transition:transform .15s ease, box-shadow .2s ease; }

.ts-ed-props .ep-card{ left:7%; top:30%; width:41.5%; height:58%; outline:1.5px solid var(--ui-accent); outline-offset:1.5px; }
.ep-num{ font-family:var(--font-display); font-size:7cqw; line-height:1.1; color:var(--ui-accent); white-space:nowrap; transition:font-size .45s var(--ts-ease), color .3s ease; }
.ts-ed-props.q2 .ep-card{ background:var(--ui-accent); }
.ts-ed-props.q2 .ep-card .ts-s-line{ background:rgba(255,255,255,.45); }
.ts-ed-props.q2 .ep-num{ color:#FFFFFF; }
.ts-ed-props.q4 .ep-num{ font-size:10.5cqw; }
.ts-ed-props .ts-panel .ts-input{ width:100%; }

.ts-ed-comments .ecm-card{ outline:1px dashed transparent; outline-offset:1px; transition:outline-color .2s ease; }
.ts-ed-comments .ecm-card.is-on{ outline-color:var(--ui-accent); }
.ecm-input{ position:relative; display:block; height:32px; padding:5px 22px 5px 7px; white-space:normal; line-height:1.35; font-size:8px; }

.ts-ed-omega .ts-bubble.me{ max-width:80%; }
.eom-input .ts-send{ position:absolute; }

.epr-con{ position:absolute; inset:0; background:var(--ui-surface-2); z-index:15; }
.epr-label{ font-size:7px; letter-spacing:.04em; text-transform:uppercase; color:var(--ui-muted); }
.epr-timer{ font-family:var(--font-regular); font-size:12px; color:var(--ui-text); }
.epr-con .ts-icon-btn{ color:var(--ui-text); background:var(--ui-surface); border:1px solid var(--ui-border); }

.eti-name{ display:inline-flex; align-items:center; height:22px; padding:0 6px; border:1px solid transparent; border-radius:6px; font-family:var(--font-regular); font-size:9px; white-space:nowrap; }
.ts-ed-title.q2 .eti-old{ background:var(--ui-accent-soft); }
