:root{
  --zy-wb-bg:#f6f7fb;
  --zy-wb-paper:#fff;
  --zy-wb-line:#e5e8f0;
  --zy-wb-text:#151a2d;
  --zy-wb-muted:#778197;
  --zy-wb-accent:#5d63f2;
  --zy-wb-accent-2:#7467f5;
  --zy-wb-danger:#c94455;
  --zy-wb-success:#23865a;
  --zy-wb-warning:#9a6500;
  --zy-wb-radius:18px;
  --zy-wb-shadow:0 16px 42px rgba(29,36,72,.07);
  --zy-wb-font:"PingFang SC","Microsoft YaHei","Noto Sans CJK SC","Source Han Sans SC",Inter,system-ui,sans-serif;
}
zhiyan-tool-hero{display:block;min-width:0;font-family:var(--zy-wb-font)}
.zy-tool-hero{
  position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1.35fr) minmax(300px,.9fr);gap:28px;align-items:center;
  min-height:172px;padding:30px 34px;border:1px solid rgba(121,128,255,.19);border-radius:24px;color:#fff;
  background:radial-gradient(circle at 77% 45%,rgba(124,104,255,.52),transparent 17rem),linear-gradient(135deg,#0f1530 0,#171d46 55%,#252260 100%);
  box-shadow:0 20px 48px rgba(24,28,67,.18)
}
.zy-tool-hero::before{content:"";position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:34px 34px;pointer-events:none}
.zy-tool-hero__copy,.zy-tool-hero__flow{position:relative;z-index:1;min-width:0}
.zy-tool-hero__kicker{display:block;margin-bottom:9px;color:#c9d0ff;font-size:11px;font-weight:800;letter-spacing:.12em;text-transform:uppercase}
.zy-tool-hero h1{margin:0;color:#fff;font-size:clamp(30px,3vw,46px);line-height:1.02;letter-spacing:-.06em}
.zy-tool-hero p{max-width:680px;margin:13px 0 0;color:#d5daf1;font-size:14px;line-height:1.7}
.zy-tool-hero__meta{display:flex;flex-wrap:wrap;gap:8px;margin-top:18px}
.zy-tool-hero__meta span{display:inline-flex;align-items:center;min-height:28px;padding:0 10px;border:1px solid rgba(210,217,255,.18);border-radius:999px;background:rgba(255,255,255,.08);color:#e8ebff;font-size:11px}
.zy-tool-hero__flow{display:grid;gap:11px;padding:18px;border:1px solid rgba(224,229,255,.14);border-radius:18px;background:rgba(58,58,132,.42);backdrop-filter:blur(8px)}
.zy-tool-hero__steps{display:grid;grid-template-columns:repeat(var(--zy-step-count,3),minmax(0,1fr));gap:10px}
.zy-tool-hero__step{display:grid;grid-template-columns:30px minmax(0,1fr);gap:9px;align-items:center;min-width:0}
.zy-tool-hero__step:not(:last-child)::after{content:"";position:absolute;display:none}
.zy-tool-hero__step b{display:grid;place-items:center;width:30px;height:30px;border-radius:10px;background:rgba(124,127,255,.34);color:#fff;font-size:10px}
.zy-tool-hero__step span{min-width:0;color:#fff;font-size:11px;font-weight:750;line-height:1.35}
.zy-tool-hero__step small{display:block;margin-top:2px;color:#bfc6e8;font-size:9px;font-weight:500}
.zy-tool-hero--compact{min-height:136px;padding:23px 28px;border-radius:20px}
.zy-tool-hero--compact h1{font-size:34px}
.zy-tool-hero--compact .zy-tool-hero__flow{padding:14px}
.zy-status-chip{display:inline-flex;align-items:center;gap:7px;min-height:30px;padding:0 11px;border-radius:999px;border:1px solid #dde2ec;background:#fff;color:#525d72;font:700 11px var(--zy-wb-font)}
.zy-status-chip::before{content:"";width:7px;height:7px;border-radius:50%;background:#9aa3b5}
.zy-status-chip.success::before{background:#2eb872;box-shadow:0 0 0 4px rgba(46,184,114,.1)}
.zy-status-chip.warning::before{background:#e2a300}.zy-status-chip.error::before{background:#d9505f}
.zy-feedback-layer{position:fixed;inset:0;z-index:2147483000;display:grid;place-items:center;padding:24px;background:rgba(17,22,48,.38);backdrop-filter:blur(7px)}
.zy-feedback-dialog{width:min(560px,100%);overflow:hidden;border:1px solid #e5e8f1;border-radius:22px;background:#fff;box-shadow:0 28px 80px rgba(21,28,65,.28);font-family:var(--zy-wb-font)}
.zy-feedback-head{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;padding:24px 25px 16px}
.zy-feedback-head h2{margin:0;color:var(--zy-wb-text);font-size:21px;letter-spacing:-.035em}.zy-feedback-head p{margin:7px 0 0;color:var(--zy-wb-muted);font-size:13px;line-height:1.6}
.zy-feedback-mark{flex:0 0 auto;display:grid;place-items:center;width:38px;height:38px;border-radius:13px;background:#eef0ff;color:var(--zy-wb-accent);font-weight:900}.zy-feedback-mark.success{background:#e9f8ef;color:var(--zy-wb-success)}.zy-feedback-mark.error{background:#fff0f2;color:var(--zy-wb-danger)}.zy-feedback-mark.warning{background:#fff7e2;color:var(--zy-wb-warning)}
.zy-feedback-body{padding:0 25px 22px}.zy-feedback-grid{display:grid;gap:9px;padding:14px;border:1px solid #e8ebf2;border-radius:15px;background:#f8f9fc}
.zy-feedback-grid div{display:grid;grid-template-columns:112px minmax(0,1fr);gap:14px;font-size:12px}.zy-feedback-grid span{color:#8992a4}.zy-feedback-grid b{color:#30384d;overflow-wrap:anywhere}
.zy-feedback-detail{margin-top:12px;border:1px solid #e8ebf2;border-radius:13px;background:#fff}.zy-feedback-detail summary{cursor:pointer;padding:11px 13px;color:#697388;font-size:11px;font-weight:750}.zy-feedback-detail pre{max-height:210px;overflow:auto;margin:0;padding:0 13px 13px;color:#3e475c;font:11px/1.55 "Cascadia Code",Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere}
.zy-feedback-actions{display:flex;justify-content:flex-end;gap:10px;padding:16px 25px 22px;border-top:1px solid #eef0f4}.zy-feedback-actions button{min-height:40px;padding:0 16px;border:1px solid #dfe3ec;border-radius:11px;background:#fff;color:#30384b;font:700 12px var(--zy-wb-font);cursor:pointer}.zy-feedback-actions button.primary{border-color:transparent;background:linear-gradient(135deg,var(--zy-wb-accent),var(--zy-wb-accent-2));color:#fff}.zy-feedback-actions button.danger{border-color:#f1cfd5;color:#bd3346;background:#fff7f8}
.zy-operation-panel{display:grid;gap:10px;padding:14px;border:1px solid #e6e9f1;border-radius:15px;background:#fafbfe}.zy-operation-step{display:grid;grid-template-columns:22px minmax(0,1fr);gap:9px;align-items:center;color:#7c8598;font:600 12px var(--zy-wb-font)}.zy-operation-step i{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:#eef1f6;color:#8790a2;font-style:normal;font-size:10px}.zy-operation-step.done{color:#2f684c}.zy-operation-step.done i{background:#e6f7ed;color:#2f8c5d}.zy-operation-step.active{color:#303a5d}.zy-operation-step.active i{background:#ebedff;color:#5d63f2;animation:zy-pulse 1.1s ease-in-out infinite}.zy-operation-step.error{color:#b83b4d}.zy-operation-step.error i{background:#fff0f2;color:#c54254}
.zy-project-menu{position:relative;display:inline-flex}.zy-project-menu>button{display:grid;place-items:center;width:34px;height:34px;border:1px solid #e1e5ed;border-radius:10px;background:#fff;color:#687287;font:900 17px var(--zy-wb-font);cursor:pointer}.zy-project-menu-panel{position:absolute;z-index:200;top:calc(100% + 8px);right:0;display:grid;min-width:176px;padding:7px;border:1px solid #e3e7ef;border-radius:13px;background:#fff;box-shadow:0 17px 46px rgba(24,31,65,.16)}.zy-project-menu-panel[hidden]{display:none}.zy-project-menu-panel button{display:flex;align-items:center;min-height:36px;padding:0 10px;border:0;border-radius:8px;background:transparent;color:#3d465a;font:650 12px var(--zy-wb-font);text-align:left;cursor:pointer}.zy-project-menu-panel button:hover{background:#f4f5fb}.zy-project-menu-panel button.danger{color:#c23e50}.zy-project-menu-panel hr{width:100%;height:1px;border:0;background:#eceef3}
.zy-chart-frame{position:relative;min-width:0;width:100%;aspect-ratio:16/9;min-height:220px;overflow:hidden}.zy-chart-frame>svg,.zy-chart-frame>canvas,.zy-chart-frame>img{display:block;width:100%!important;height:100%!important;object-fit:contain}.zy-chart-frame>svg{preserve-aspect-ratio:xMidYMid meet}.zy-chart-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.zy-chart-grid>*{min-width:0}.zy-chart-empty{display:none!important}
@keyframes zy-pulse{50%{transform:scale(.9);opacity:.6}}
@media(max-width:980px){.zy-tool-hero{grid-template-columns:1fr}.zy-tool-hero__flow{max-width:none}.zy-chart-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){.zy-tool-hero{min-height:0;padding:22px 20px;border-radius:18px}.zy-tool-hero h1{font-size:30px}.zy-tool-hero__steps{grid-template-columns:1fr}.zy-chart-grid{grid-template-columns:1fr}.zy-feedback-grid div{grid-template-columns:1fr;gap:3px}.zy-feedback-actions{flex-direction:column}.zy-feedback-actions button{width:100%}}
.zy-tool-hero__meta .zy-tool-hero__estimate{border-color:rgba(146,235,190,.28);background:rgba(51,160,105,.18);color:#e6fff1}


/* v3.5.7 unified research-chart downloads */
.zy-chart-export-host{position:relative}
.zy-chart-export-control{position:absolute;z-index:25;top:12px;right:12px;font-family:var(--zy-wb-font)}
.zy-chart-export-control.in-header{position:relative;top:auto;right:auto;margin-left:auto;flex:0 0 auto}
.zy-chart-download-btn{display:inline-flex;align-items:center;gap:6px;min-height:32px;padding:0 10px;border:1px solid #dfe3ee;border-radius:10px;background:rgba(255,255,255,.96);color:#4d5870;font:750 11px var(--zy-wb-font);box-shadow:0 6px 18px rgba(30,38,76,.06);cursor:pointer}
.zy-chart-download-btn:hover{border-color:#bdc6e6;color:#4c5ee4;background:#fff}.zy-chart-download-btn span{font-size:15px;line-height:1}.zy-chart-download-btn b{font-size:10px}
.zy-chart-download-menu{position:absolute;z-index:60;top:calc(100% + 7px);right:0;display:grid;min-width:128px;padding:6px;border:1px solid #e1e5ee;border-radius:11px;background:#fff;box-shadow:0 16px 40px rgba(25,32,67,.16)}
.zy-chart-download-menu[hidden]{display:none}.zy-chart-download-menu button{min-height:32px;padding:0 9px;border:0;border-radius:8px;background:transparent;color:#3d465a;font:650 11px var(--zy-wb-font);text-align:left;cursor:pointer}.zy-chart-download-menu button:hover{background:#f3f5ff;color:#4d5fe4}.zy-chart-download-menu button:disabled{opacity:.42;cursor:not-allowed}
.grounded-small-chart.zy-chart-export-host{padding-top:2px}.grounded-small-chart>.zy-chart-export-control{top:-2px;right:0}.grounded-small-chart .zy-chart-download-btn b{display:none}
@media(max-width:680px){.zy-chart-download-btn b{display:none}.zy-chart-download-btn{width:34px;padding:0;justify-content:center}}
