/* Workspace polish: presentation only. Shared by chat and Ad Flow; no effect on marketing/admin. */
body.workspace-ui{
  --cream:#f8f9f5;--cream-2:#eff2e9;--line:#e3e8dc;--muted:#637057;
  --card-sh:0 1px 3px rgba(28,42,16,.04);
  --card-sh-hover:0 5px 18px rgba(28,42,16,.07);
  --ease-spring:cubic-bezier(.2,.7,.2,1);
  --ui-ease:cubic-bezier(.2,.7,.2,1);
  --ui-radius:24px;
}
.workspace-ui :is(button,a,input,textarea,select):focus-visible{outline:2px solid var(--avo-700);outline-offset:3px}
.workspace-ui :is(button,.btn){transition:background-color .16s ease,color .16s ease,border-color .16s ease,box-shadow .2s ease,transform .16s var(--ui-ease)}
.workspace-ui .btn-primary{background:#477d25;box-shadow:none}
.workspace-ui .btn-primary:hover{background:#39671e;transform:none}
.workspace-ui .btn:active{transform:scale(.98)}
.workspace-ui .sk{background:#edf0e7;border-radius:14px}
.workspace-ui .sk::after{animation-duration:1.9s;background:linear-gradient(90deg,transparent,rgba(255,255,255,.48),transparent)}
/* Chat: reading is the primary surface; cards are reserved for decisions and artifacts. */
.workspace-ui #feed{padding-top:28px}
.workspace-ui .ev{margin:18px 0;animation:ui-arrive .24s var(--ui-ease) both}
@keyframes ui-arrive{from{opacity:0;transform:translateY(5px)}to{opacity:1;transform:none}}
.workspace-ui .a-row{gap:12px}
.workspace-ui .a-row .ava{box-shadow:none;margin-top:7px}
.workspace-ui .a-txt{background:transparent;box-shadow:none;border-radius:0;padding:4px 0 12px;font-size:15px;line-height:1.8;max-width:92%;color:var(--ink)}
.workspace-ui .u-msg span{background:#edf3e5;color:#283d1c;box-shadow:none;border-radius:24px 24px 8px 24px;padding:14px 18px;font-size:15px;line-height:1.7}
.workspace-ui .tool{background:#edf2e6;font-weight:600;padding:7px 12px;color:#526545}
.workspace-ui .tool.done{background:transparent;opacity:1;color:#6a775e;padding-left:4px;padding-right:4px}
.workspace-ui .tool .sp{border-color:#dce5d2;border-top-color:#527d34;animation-duration:1.1s}
.workspace-ui .think{border-left-color:#d4deca;color:#68745f;line-height:1.8}
.workspace-ui :is(.res-card,.confirm){border:1px solid var(--line);border-radius:var(--ui-radius);box-shadow:none;padding:20px}
.workspace-ui .confirm:not(.decided){animation:ui-arrive .24s var(--ui-ease) both}
.workspace-ui .confirm .row{gap:10px;margin-top:16px}
.workspace-ui .confirm button{min-height:44px;border-radius:14px}
.workspace-ui .confirm .yes{background:#477d25}
.workspace-ui .confirm.decided{opacity:.7}
.workspace-ui .tpl-row3{gap:12px;margin-top:16px}
.workspace-ui .tpl-pick{border-radius:18px;background:#f3f5ee}
.workspace-ui .tpl-pick b{padding:10px 8px;line-height:1.45}
.workspace-ui .tpl-pick:hover{transform:translateY(-1px)}
.workspace-ui .insp{margin-top:52px}
.workspace-ui .insp-grid{gap:18px}
.workspace-ui .insp-card{border-radius:20px;box-shadow:none}
.workspace-ui .insp-card:hover{transform:translateY(-2px)}
.workspace-ui .hello>img{animation:none}
.workspace-ui .feed-loading img{animation:ui-breathe 2s ease-in-out infinite}
@keyframes ui-breathe{50%{opacity:.5}}
.workspace-ui .workspace-greeting{font-family:var(--display);font-size:clamp(26px,2.8vw,34px);font-weight:600;line-height:1.2;letter-spacing:-.035em;color:var(--ink);max-width:680px;margin:0 auto;text-wrap:balance}
.workspace-ui .hello{padding-top:clamp(32px,7vh,72px)}
.workspace-ui .hello>img{height:44px;margin-bottom:20px}
/* Composer remains opaque so transcript content never competes with typing. */
.workspace-ui #bar{padding-bottom:max(18px,env(safe-area-inset-bottom))}
.workspace-ui #composer .cmp-box{border:1px solid #dfe5d6;border-radius:26px;padding:14px 16px;box-shadow:0 3px 16px rgba(28,42,16,.04)}
.workspace-ui #composer .cmp-box:focus-within{border-color:#88a874;box-shadow:0 0 0 3px rgba(95,135,61,.09)}
.workspace-ui #composer .cmp-box.dropping{border-color:var(--avo-700);background:#f1f7eb;box-shadow:0 0 0 3px rgba(95,135,61,.12)}
.workspace-ui #composer .cmp-send{min-height:42px;border-radius:15px;background:#477d25;box-shadow:none}
.workspace-ui #composer .cmp-send:hover{background:#39671e;filter:none}
.workspace-ui #composer .cmp-send.stopping{background:#f1f3ed;color:var(--avo-900)}
.workspace-ui #composer .cmp-hint{transition:opacity .18s ease,max-height .2s var(--ui-ease),margin .2s ease}
.workspace-ui #side{background:#f2f4ed;border-right:1px solid #e6eadf}
.workspace-ui #side #newSess{box-shadow:none;border:1px solid var(--line);border-radius:14px;min-height:42px}
.workspace-ui #side #newSess:hover{transform:none;background:#fafbf8;box-shadow:none}
.workspace-ui #navRail button{border-radius:12px}
.workspace-ui avo-assets .asset{border-radius:16px;box-shadow:none}
.workspace-ui avo-assets .asset:hover{transform:translateY(-1px);box-shadow:var(--card-sh-hover)}
.workspace-ui #canvasPanel{box-shadow:-4px 0 24px rgba(28,42,16,.06);border-left:1px solid var(--line);transition:transform .28s var(--ui-ease)}
.workspace-ui .cp-head{min-height:52px;padding:12px 16px}
.workspace-ui .cp-head button{min-width:36px;min-height:36px;border-radius:10px}
.workspace-ui .cp-head button:hover{background:var(--cream-2)}
.workspace-ui .rc-panel{border-radius:28px;box-shadow:0 18px 60px rgba(20,28,16,.15);animation:ui-arrive .22s var(--ui-ease) both}
.workspace-ui .rc-in{border-radius:14px;min-height:44px}
.workspace-ui .rc-btn{border-radius:14px;min-height:44px;background:#477d25}
/* Canvas: quiet grid, clear card boundaries; never animate node position or dimensions. */
.workspace-ui #drawflow{background-color:#f7f9f3;background-image:radial-gradient(#dce3d2 .8px,transparent .8px);background-size:24px 24px}
.workspace-ui .af-bar{padding:12px 16px;gap:12px}
.workspace-ui .af-add button{border-radius:12px;box-shadow:none}
.workspace-ui .af-add button:hover{transform:none;box-shadow:none;background:#eaf0e2}
.workspace-ui .af-cat-menu{border:1px solid var(--line);border-radius:18px;box-shadow:0 8px 30px rgba(28,42,16,.1);animation:ui-arrive .18s ease both}
.workspace-ui .af-cat.has-menu:focus-within .af-cat-menu{display:flex}
.workspace-ui .af-cat.has-menu:focus-within .af-caret{transform:rotate(180deg)}
.workspace-ui .afn{border-radius:20px;box-shadow:0 2px 5px rgba(28,42,16,.035)}
.workspace-ui .afn:hover{box-shadow:0 5px 18px rgba(28,42,16,.08)}
.workspace-ui .drawflow .drawflow-node.selected .afn{border-color:#88a874;box-shadow:0 0 0 3px rgba(95,135,61,.12)}
.workspace-ui .afn-head{background:#eff6df}
.workspace-ui .afn.afn-running{animation:none;border-color:#88a874;box-shadow:0 0 0 2px rgba(95,135,61,.1)}
.workspace-ui .afn-out .afn-ph::after,.workspace-ui .af-skel .box::after{animation-duration:2s}
.workspace-ui .afn-ph .afn-phbar{animation-duration:2.2s}
.workspace-ui .af-zoom{padding:5px;gap:3px;background:#fff;border:1px solid var(--line);border-radius:16px}
.workspace-ui .af-zoom button{box-shadow:none;border:0;border-radius:11px;width:36px;height:36px}
@media(max-width:600px){
  .workspace-ui .a-txt{max-width:100%;font-size:14.5px}
  .workspace-ui .ev{margin:16px 0}
  .workspace-ui .u-msg .u-wrap{max-width:90%}
  .workspace-ui :is(.res-card,.confirm){padding:16px;border-radius:20px}
  .workspace-ui #composer .cmp-box{padding:12px;border-radius:22px}
  .workspace-ui #composer .cmp-send{min-height:44px;padding:9px 16px}
  .workspace-ui .tpl-row3{gap:8px}
  .workspace-ui .tpl-pick b{font-size:11.5px;padding:8px 5px}
  .workspace-ui .cp-head button,.workspace-ui .af-zoom button{min-width:44px;min-height:44px}
}
@media(prefers-reduced-motion:reduce){
  .workspace-ui *, .workspace-ui *::before, .workspace-ui *::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}
  .workspace-ui .think.gone,.workspace-ui .tool.fade{opacity:0}
}

.workspace-ui #composer .cmp-box:is(:hover,:focus-within,.dropping) .cmp-hint{opacity:1;color:#69765e}

/* Quiet start screen: one heading, one composer, compact optional shortcuts. */
.workspace-ui .hello .try{margin-top:14px}
.workspace-ui .hello .chips{gap:4px}
.workspace-ui .hello .chips button{background:transparent;box-shadow:none;border-radius:12px;padding:9px 12px;color:#65735a;font-size:12px;min-height:36px}
.workspace-ui .hello .chips button::after{display:none}
.workspace-ui .hello .chips button:hover{background:#edf1e7;color:#365421;box-shadow:none;transform:none}
.workspace-ui #heroSlot{margin-top:24px}
.workspace-ui #composer .cmp-hint .htxt{text-align:left}

/* Compact canvas chrome; frequent node and history actions remain unchanged. */
.workspace-ui .cp-head{min-height:40px;padding:4px 12px;gap:8px}
.workspace-ui #cpOpen{display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:10px;flex:none}
.workspace-ui #cpOpen svg{width:18px;height:18px}
.workspace-ui #cpOpen:hover{background:var(--cream-2)}
.workspace-ui .af-bar{padding:6px 12px;gap:8px;min-height:44px;flex-wrap:nowrap}
.workspace-ui .af-title{font-size:13px;font-weight:600;min-width:0;max-width:320px}
.workspace-ui .af-hist{flex-shrink:0}
.workspace-ui .af-save{min-width:0;font-size:11px;white-space:nowrap}
.workspace-ui .af-palette{position:relative;flex-shrink:0}
.workspace-ui .af-palette summary{list-style:none;cursor:pointer;font-size:12px;color:#526545;padding:8px 10px;border-radius:10px;white-space:nowrap}
.workspace-ui .af-palette summary::-webkit-details-marker{display:none}
.workspace-ui .af-palette summary:hover,.workspace-ui .af-palette[open] summary{background:#eff2e9}
.workspace-ui .af-palette summary:focus-visible{outline:2px solid var(--avo-700);outline-offset:2px}
.workspace-ui .af-palette #afAdd{position:absolute;right:0;top:calc(100% + 6px);width:260px;padding:10px;background:white;border:1px solid var(--line);border-radius:16px;box-shadow:0 8px 28px #1c2a1014;gap:6px}
.workspace-ui .af-palette .af-cat{width:calc(50% - 3px)}
.workspace-ui .af-palette .af-cat-btn{width:100%;justify-content:flex-start}
.workspace-ui .af-palette .af-cat-menu{left:auto;right:0;max-width:260px}
html[lang=en] .af-palette .zh-only,html:not([lang=en]) .af-palette .en-only{display:none}
@media(max-width:600px){
  .workspace-ui .cp-head b{display:none}
  .workspace-ui #cpOpen{width:44px;height:44px}
  .workspace-ui .af-bar{gap:4px;padding:4px 8px}
  .workspace-ui .af-title{flex:1}
  .workspace-ui .af-spacer{display:none}
  .workspace-ui .af-palette summary{min-height:44px;display:flex;align-items:center}
}

.workspace-ui #afSaveTpl{width:34px;height:34px;padding:0;border:0;border-radius:10px;flex-shrink:0}
.workspace-ui #afSaveTpl[hidden]{display:none}
@media(pointer:coarse){.workspace-ui #afSaveTpl{width:44px;height:44px}}

/* The close icon becomes a text button on narrow layouts; give its hover
   surface real padding instead of letting the label touch both edges. */
.workspace-ui #cpClose{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0}
@media(max-width:1040px){
  .workspace-ui #cpClose{padding:8px 12px;min-height:40px;margin-right:0}
  .workspace-ui #cpClose .back{font-weight:600;line-height:1.4;white-space:nowrap}
}

/* Show current work only; retain reasoning/results after an operation completes. */
.workspace-ui .tool{background:transparent;border-radius:0;padding:2px 0;font-weight:500;line-height:1.6;margin-left:40px}
.workspace-ui .ev:has(> .tool){margin-top:6px;margin-bottom:6px}
.workspace-ui .ev>.think{margin-left:40px}
@media(max-width:560px){
  .workspace-ui .tool,.workspace-ui .ev>.think{margin-left:38px}
}
.workspace-ui .tool .sp{display:none}
.workspace-ui .tool.done{display:none}
.workspace-ui .ev:has(> .tool.done):not(:has(.think)){display:none}
@supports (background-clip:text){
  .workspace-ui .tool:not(.done):not(.failed){
    background-image:linear-gradient(105deg,#637057 35%,#b7c5aa 48%,#637057 61%);
    background-size:250% 100%;background-clip:text;-webkit-background-clip:text;
    color:transparent;animation:tool-sheen 2.6s linear infinite;
  }
}
@keyframes tool-sheen{from{background-position:130% 0}to{background-position:-130% 0}}
@media(prefers-reduced-motion:reduce){
  .workspace-ui .tool:not(.done):not(.failed){background:none;color:#637057;animation:none}
}
