/* OPC Base integration: loaded after planner.css. Keep every override page-scoped. */
body.zmt-opc-planner-page { background:#f6f9fc!important; color:#172b44; }
.zmtopc-shell {
  --opc-ink:#172b44; --opc-muted:#61758d; --opc-line:#dce6f1; --opc-paper:#fff;
  --opc-mint:#2166d1; --opc-mint-hover:#1457bd; --opc-mint-soft:#eaf3ff;
  --opc-blue:#3474c8; --opc-blue-soft:#eef5ff;
  --opc-yellow:#b88529; --opc-yellow-soft:#fff8e9;
  --opc-coral:#cc6f55; --opc-coral-soft:#fff3ef;
  --opc-violet:#6b73ad; --opc-violet-soft:#f1f2fa;
  --opc-bg:#f6f9fc; --opc-r-sm:8px; --opc-r-md:12px; --opc-r-lg:16px;
  --opc-shadow-border:0 0 0 1px #dce6f1;
  --opc-shadow-sm:0 1px 3px rgba(32,72,116,.04),0 8px 24px rgba(32,72,116,.04);
  --opc-shadow-md:0 12px 36px rgba(32,72,116,.12);
  width:100vw; margin-left:calc(50% - 50vw); min-height:calc(100vh - 70px);
  background:#f6f9fc; color:#172b44;
}
.zmtopc-base-layout { width:100%; display:grid; grid-template-columns:minmax(0,1fr); gap:24px; padding:0 max(16px,env(safe-area-inset-right)) 0 max(16px,env(safe-area-inset-left)); }
.zmtopc-base-main { min-width:0; padding-top:28px; container-type:inline-size; }
.zmtopc-base-sidebar { display:none; min-width:0; min-height:100%; padding:30px 12px 40px 0; border-right:1px solid #e0e8f1; background:linear-gradient(160deg,#f0f7ff,#f8fbfd 78%); }
.zmtopc-base-sidebar-brand { display:flex; align-items:center; gap:10px; padding:2px 14px 20px; }
.zmtopc-base-sidebar-brand > span { display:grid; place-items:center; flex:0 0 34px; width:34px; height:34px; border-radius:9px; color:#185eb9; background:#e5f1ff; font-family:Georgia,'Songti SC',serif; font-size:19px; font-weight:750; }
.zmtopc-base-sidebar-brand strong { display:block; font-size:19px; font-weight:800; letter-spacing:-.02em; }
.zmtopc-base-sidebar-brand small { display:block; margin-top:6px; color:#71849b; font-size:11px; }
.zmtopc-base-sidebar nav { display:grid; gap:5px; }
.zmtopc-base-nav-group { margin:13px 14px 2px; color:#91a1b3; font-size:11px; font-weight:750; letter-spacing:.08em; }
.zmtopc-base-sidebar nav a { padding:11px 14px; border-radius:10px; color:#4d6079; font-size:14px; font-weight:600; text-decoration:none; transition:background .18s,color .18s,transform .18s; }
.zmtopc-base-sidebar nav a:hover { background:#e8f1ff; color:#1762cf; transform:translateX(2px); }
.zmtopc-base-sidebar nav a[aria-current] { background:#dcecff; color:#1455b6; font-weight:750; }
.zmtopc-base-sidebar > p { margin:42px 14px; color:#8aa0b6; font-size:12px; line-height:1.9; }
.zmtopc-base-mobile-nav { display:flex; gap:7px; overflow-x:auto; padding:0 0 16px; scrollbar-width:thin; white-space:nowrap; }
.zmtopc-base-mobile-nav a { flex:none; padding:8px 12px; border:1px solid #dce6f1; border-radius:999px; background:#fff; color:#405874; font-size:12px; font-weight:650; text-decoration:none; }
.zmtopc-base-mobile-nav a[aria-current] { border-color:#aac9f3; background:#eaf3ff; color:#1457bd; }
.zmtopc-base-breadcrumb { display:flex; align-items:center; gap:8px; min-width:0; margin:0 0 21px; color:#8497ac; font-size:12px; }
.zmtopc-base-breadcrumb a { color:#607996; text-decoration:none; }
.zmtopc-base-breadcrumb a:hover { color:#1457bd; }
.zmtopc-base-breadcrumb a[aria-current] { color:#2e598c; font-weight:700; }
.zmtopc-base-breadcrumb [data-breadcrumb-project] { min-width:0; overflow:hidden; color:#465e7a; text-overflow:ellipsis; white-space:nowrap; }
.zmtopc-shell :is(a,button,input,textarea,select):focus-visible { outline:3px solid #76b2ff; outline-offset:3px; }
.zmtopc-shell :is(.zmtopc-button,.zmtopc-icon-button,.zmtopc-menu-button) { min-height:42px; border-radius:9px; box-shadow:none; font-weight:750; transition:background-color .18s,border-color .18s,color .18s,box-shadow .18s,transform .18s; }
.zmtopc-shell .zmtopc-button--primary { border:1px solid #2166d1; color:#fff!important; background:#2166d1; box-shadow:none; }
.zmtopc-shell .zmtopc-button--primary:hover { background:#1457bd; box-shadow:0 8px 18px rgba(33,102,209,.17); }
.zmtopc-shell .zmtopc-button--soft,.zmtopc-shell .zmtopc-button--secondary { border:1px solid #cdddef; color:#315e9a!important; background:#fff; }
.zmtopc-shell .zmtopc-button--soft:hover,.zmtopc-shell .zmtopc-button--secondary:hover { border-color:#8db7eb; background:#f5f9ff; }
.zmtopc-shell .zmtopc-button--ink { border:1px solid #1f3c60; background:#1f3c60; color:#fff!important; }
.zmtopc-shell .zmtopc-icon-button,.zmtopc-shell .zmtopc-menu-button { border:1px solid #dce6f1; background:#fff; color:#405a79; }
.zmtopc-shell .zmtopc-eyebrow { color:#3474c8; }
.zmtopc-shell .zmtopc-card,.zmtopc-shell .zmtopc-form-section,.zmtopc-shell .zmtopc-path,.zmtopc-shell .zmtopc-canvas-section { border:1px solid #dce6f1; border-radius:16px; background:#fff; box-shadow:var(--opc-shadow-sm); }

/* Guest / non-member access is a compact Base page, not a separate product landing. */
.zmtopc-shell .zmtopc-access { min-height:0; padding:0 0 72px; overflow:visible; background:transparent; }
.zmtopc-shell .zmtopc-access::before,.zmtopc-shell .zmtopc-access-card::before { display:none; }
.zmtopc-shell .zmtopc-access-inner { display:grid; grid-template-columns:minmax(0,1fr) minmax(290px,360px); align-items:start; gap:24px; width:100%; }
.zmtopc-shell .zmtopc-access-story { display:block; min-width:0; min-height:0; padding:32px 36px; border:1px solid #dbe7f5; border-radius:18px; background:linear-gradient(115deg,#fff,#f5f9ff 78%); box-shadow:0 8px 30px rgba(41,83,127,.05); }
.zmtopc-shell .zmtopc-access-kicker,.zmtopc-hero-eyebrow { display:block; margin-bottom:11px; padding:0; color:#3474c8; background:none; box-shadow:none; font-size:11px; font-weight:800; letter-spacing:.13em; }
.zmtopc-shell .zmtopc-access-story h1 { max-width:760px; color:#172b44; font-family:Georgia,'Songti SC','Noto Serif CJK SC',serif; font-size:clamp(31px,3vw,44px); line-height:1.25; letter-spacing:-.035em; }
.zmtopc-shell .zmtopc-access-story h1 br { display:none; }
.zmtopc-shell .zmtopc-access-lead { max-width:68ch; margin:13px 0 0!important; color:#536a84; font-size:15px; line-height:1.8; }
.zmtopc-shell .zmtopc-access-flow { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; width:100%; margin:25px 0 0; padding:0; background:none; border:0; border-radius:0; box-shadow:none; backdrop-filter:none; }
.zmtopc-shell .zmtopc-access-flow > div { display:flex; align-items:flex-start; gap:9px; min-width:0; min-height:90px; padding:14px 11px; border:1px solid #e1eaf5; border-radius:10px; background:#fff!important; }
.zmtopc-shell .zmtopc-access-flow b { color:#2166d1; font-size:15px; font-variant-numeric:tabular-nums; }
.zmtopc-shell .zmtopc-access-flow span { display:grid; gap:5px; min-width:0; }
.zmtopc-shell .zmtopc-access-flow strong { color:#243c59; font-size:13px; }
.zmtopc-shell .zmtopc-access-flow small { color:#71849b; font-size:11px; line-height:1.5; }
.zmtopc-method-scope { margin-top:17px!important; color:#6f8197!important; font-size:12px!important; line-height:1.65!important; }
.zmtopc-shell .zmtopc-access-card { width:100%; margin:0; padding:28px; border:1px solid #dce6f1; border-radius:16px; background:#fff; box-shadow:var(--opc-shadow-sm); text-align:left; }
.zmtopc-shell .zmtopc-access-status { display:inline-block; margin-bottom:10px; color:#3474c8; background:#eef5ff; border-radius:5px; padding:5px 8px; font-size:11px; font-weight:800; }
.zmtopc-shell .zmtopc-access-card h2 { margin:0 0 10px; color:#172b44; font-size:22px; line-height:1.35; }
.zmtopc-shell .zmtopc-access-card > p { max-width:none; margin:0; color:#61758d; font-size:13px; line-height:1.7; }
.zmtopc-shell .zmtopc-access-card .zmtopc-access-cta { width:100%; min-width:0; margin:21px 0 0; }
.zmtopc-shell .zmtopc-access-card .zmtopc-access-fineprint { margin-top:17px!important; padding-top:15px; border-top:1px solid #e8eef5; color:#7c8ea2; font-size:11px; }

/* Planner workbench. */
.zmtopc-shell .zmtopc-app { min-width:0; min-height:0; }
.zmtopc-shell .zmtopc-hero { display:flex; justify-content:space-between; align-items:end; gap:22px; min-height:0; padding:4px 0 25px; overflow:visible; border:0; background:none; }
.zmtopc-hero h1 { margin:0 0 7px!important; color:#172b44; font-family:Georgia,'Songti SC','Noto Serif CJK SC',serif; font-size:clamp(33px,3vw,46px); font-weight:750; letter-spacing:-.035em; line-height:1.2; }
.zmtopc-hero p { max-width:70ch; color:#536a84; font-size:14px; line-height:1.65; }
.zmtopc-shell .zmtopc-top-actions { flex-wrap:wrap; flex:0 0 auto; }
.zmtopc-shell .zmtopc-hero .zmtopc-compute { min-height:42px; padding:0 13px; border:1px solid #d7e6f7; border-radius:9px; color:#3a679f; background:#eef5ff; box-shadow:none; font-size:12px; }
.zmtopc-shell .zmtopc-hero .zmtopc-compute b { font-size:14px; }
.zmtopc-shell .zmtopc-commandbar { position:relative; z-index:75; flex-wrap:wrap; justify-content:flex-start; gap:12px 18px; min-height:0; padding:0 0 20px; border-bottom:1px solid #dce6f1; background:none; box-shadow:none; backdrop-filter:none; }
.zmtopc-shell .zmtopc-commandbar .zmtopc-project-context { flex:1 1 280px; min-width:0; }
.zmtopc-shell .zmtopc-commandbar .zmtopc-project-trigger { grid-template-columns:34px minmax(0,1fr) auto 18px; width:min(100%,440px); min-width:0; min-height:52px; padding:6px 10px; border:1px solid #cdddef; border-radius:10px; background:#fff; box-shadow:none; }
.zmtopc-shell .zmtopc-commandbar .zmtopc-project-trigger:hover { border-color:#8db7eb; background:#fff; box-shadow:0 3px 12px rgba(41,83,127,.08); }
.zmtopc-shell .zmtopc-project-trigger-icon { width:34px; height:34px; color:#2166d1; background:#eaf3ff; border-radius:8px; }
.zmtopc-shell .zmtopc-commandbar .zmtopc-project-trigger-stage { color:#33689e; background:#eef5ff; border-radius:5px; font-size:11px; }
.zmtopc-shell .zmtopc-project-switcher { top:59px; width:min(440px,calc(100vw - 40px)); border-color:#dce6f1; border-radius:14px; box-shadow:0 18px 45px rgba(25,62,102,.16); }
.zmtopc-shell .zmtopc-project-card.is-active { border-color:#b5d3f8; background:#eef5ff; box-shadow:none; }
.zmtopc-shell .zmtopc-project-card.is-active::before,.zmtopc-shell .zmtopc-project-card progress::-webkit-progress-value { background:#2166d1; }
.zmtopc-shell .zmtopc-project-footer a { background:#eef5ff; }
.zmtopc-shell .zmtopc-project-footer small { color:#6783a3; }
.zmtopc-command-state { flex-wrap:wrap; gap:8px; font-size:12px; }
.zmtopc-shell .zmtopc-command-stage { border-radius:6px; color:#4f6e91; background:#eef5ff; }
.zmtopc-shell .zmtopc-command-stage > i { background:#3474c8; }
.zmtopc-shell .zmtopc-save-state.is-saved i { background:#2d8a70; }
.zmtopc-insight-toggle { margin-left:auto; }
.zmtopc-shell .zmtopc-layout { grid-template-columns:minmax(0,1fr); gap:20px; min-height:0; }
.zmtopc-shell .zmtopc-workspace,.zmtopc-shell .zmtopc-example-workspace { padding:25px 0 70px; }
.zmtopc-shell .zmtopc-empty { display:block; width:100%; max-width:none; margin:0; padding:34px 36px; border:1px solid #dce6f1; border-radius:16px; background:#fff; box-shadow:var(--opc-shadow-sm); text-align:left; }
.zmtopc-shell .zmtopc-empty h2 { margin:9px 0 9px; font-family:Georgia,'Songti SC','Noto Serif CJK SC',serif; font-size:clamp(27px,2.5vw,37px); line-height:1.3; }
.zmtopc-shell .zmtopc-empty > p:not(.zmtopc-eyebrow) { max-width:72ch; margin:0 0 22px; color:#61758d; font-size:14px; line-height:1.7; }
.zmtopc-shell .zmtopc-empty-actions { justify-content:flex-start; }
.zmtopc-shell .zmtopc-empty .zmtopc-entry-message { color:#a64437; }
.zmtopc-recent { margin-top:32px; padding-top:22px; border-top:1px solid #e5edf5; }
.zmtopc-recent h3 { margin-bottom:12px!important; font-size:16px; }
.zmtopc-recent > div { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:10px; }
.zmtopc-recent-card { display:grid; grid-template-columns:1fr auto; gap:4px 12px; align-items:center; min-width:0; padding:15px 17px; border:1px solid #dce6f1; border-radius:10px; color:#172b44; background:#fbfdff; text-align:left; cursor:pointer; }
.zmtopc-recent-card:hover { border-color:#9cc0ec; background:#f5f9ff; }
.zmtopc-recent-card strong { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:14px; }
.zmtopc-recent-card span { grid-column:1; color:#71849b; font-size:11px; }
.zmtopc-recent-card b { grid-column:2; grid-row:1/3; color:#2166d1; font-size:12px; }
.zmtopc-shell .zmtopc-stage { max-width:none; container-type:inline-size; }
.zmtopc-shell .zmtopc-stage-head h2 { margin:5px 0 7px; color:#172b44; font-size:clamp(25px,2.3vw,33px); line-height:1.25; letter-spacing:-.025em; }
.zmtopc-shell .zmtopc-progress { grid-template-columns:repeat(3,minmax(0,1fr)); gap:0; margin-bottom:12px; padding:0; border:1px solid #dce6f1; border-radius:12px; background:#fff; box-shadow:none; overflow:hidden; }
.zmtopc-shell .zmtopc-progress button { min-height:52px; border-radius:0; border-right:1px solid #e6edf5; color:#667d96; font-size:13px; }
.zmtopc-shell .zmtopc-progress button:last-child { border-right:0; }
.zmtopc-shell .zmtopc-progress button.is-active { color:#1457bd; background:#eaf3ff; box-shadow:inset 0 -3px #2166d1; }
.zmtopc-shell .zmtopc-progress button.is-complete::after { color:#2d8a70; }
.zmtopc-shell .zmtopc-progress button:disabled { opacity:.52; cursor:not-allowed; }
.zmtopc-interview-steps { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:22px; }
.zmtopc-interview-steps button { display:inline-flex; align-items:center; gap:7px; min-height:40px; padding:6px 10px; border:1px solid #dce6f1; border-radius:7px; color:#61758d; background:#fff; font-size:12px; cursor:pointer; }
.zmtopc-interview-steps button span { color:#8aa0b6; font-variant-numeric:tabular-nums; font-size:11px; }
.zmtopc-interview-steps button.is-active { border-color:#9dc4f3; color:#1457bd; background:#eef5ff; font-weight:750; }
.zmtopc-shell .zmtopc-summary-stat { background:#fff; border-color:#dce6f1; border-radius:10px; }
.zmtopc-shell .zmtopc-summary-stat:first-child { background:#eaf3ff; }
.zmtopc-shell .zmtopc-interview-title-icon,.zmtopc-shell .zmtopc-form-section-icon,.zmtopc-shell .zmtopc-step-number { color:#2166d1; background:#eaf3ff; border-radius:10px; box-shadow:none; }
.zmtopc-shell .zmtopc-interview-step-label { color:#3474c8!important; }
.zmtopc-shell .zmtopc-form-section { padding:23px; }
.zmtopc-shell .zmtopc-form-section-head h3 { color:#172b44; }
.zmtopc-shell .zmtopc-form-section-head p em { color:#3474c8; background:#eaf3ff; }
.zmtopc-shell .zmtopc-form-section-icon { color:#2166d1; background:#eaf3ff; }
.zmtopc-shell .zmtopc-field input,.zmtopc-shell .zmtopc-field textarea,.zmtopc-shell .zmtopc-field select { border-color:#d6e2ef; background:#fff; border-radius:9px; }
.zmtopc-shell .zmtopc-field input:focus,.zmtopc-shell .zmtopc-field textarea:focus,.zmtopc-shell .zmtopc-field select:focus { border-color:#76aaf0; box-shadow:0 0 0 3px #e6f1ff; }
.zmtopc-shell .zmtopc-chip input:checked + span { border-color:#8db7eb; color:#1457bd; background:#eaf3ff; box-shadow:none; }
.zmtopc-shell .zmtopc-path { border-top:3px solid #dce6f1; padding:18px; }
.zmtopc-shell .zmtopc-path:nth-child(1) { border-top-color:#2166d1; }
.zmtopc-shell .zmtopc-path:nth-child(2) { border-top-color:#6e95cb; }
.zmtopc-shell .zmtopc-path:nth-child(3) { border-top-color:#a8bad4; }
.zmtopc-shell .zmtopc-path.is-selected { border-color:#2166d1; box-shadow:0 0 0 2px #dbeaff; }
.zmtopc-shell .zmtopc-score { color:#1d5cae; background:#eaf3ff; border-radius:12px; }
.zmtopc-shell .zmtopc-canvas-toolbar { border-color:#dce6f1; border-radius:10px; box-shadow:none; }
.zmtopc-shell .zmtopc-section-head { background:#f8fbff; }
.zmtopc-shell .zmtopc-section-index,.zmtopc-shell .zmtopc-canvas-section:nth-child(4n+1) .zmtopc-section-index,.zmtopc-shell .zmtopc-canvas-section:nth-child(4n+2) .zmtopc-section-index,.zmtopc-shell .zmtopc-canvas-section:nth-child(4n+3) .zmtopc-section-index,.zmtopc-shell .zmtopc-canvas-section:nth-child(4n+4) .zmtopc-section-index { color:#2166d1; background:#eaf3ff; border-radius:8px; }
.zmtopc-shell .zmtopc-insight { display:none; position:fixed; z-index:90; top:72px; right:0; width:min(380px,100vw); height:calc(100vh - 72px); overflow:auto; border:1px solid #dce6f1; border-radius:16px 0 0 0; background:#fff; box-shadow:-16px 0 40px rgba(30,67,108,.17); }
.zmtopc-shell .zmtopc-insight.is-open { display:block; }
.zmtopc-insight-heading { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:17px 20px 0; color:#172b44; font-size:16px; }
.zmtopc-shell .zmtopc-insight-tabs { background:#eef3f9; }
.zmtopc-shell .zmtopc-insight-tabs button.is-active { color:#1457bd; background:#fff; box-shadow:0 1px 3px rgba(32,72,116,.08); }
.zmtopc-shell .zmtopc-insight-card { border-color:#dce6f1; border-radius:10px; background:#fff; box-shadow:none; }
.zmtopc-shell .zmtopc-base-references { border-color:#dce6f1; background:#f7faff; }
.zmtopc-shell .zmtopc-dialog { border-radius:16px; }
.zmtopc-shell .zmtopc-dialog-icon { color:#2166d1; background:#eaf3ff; border-radius:10px; box-shadow:none; }

@container (min-width:1248px) {
  .zmtopc-shell .zmtopc-layout { grid-template-columns:minmax(0,1fr) 300px; align-items:start; }
  .zmtopc-shell .zmtopc-insight { display:block; position:sticky; top:90px; width:auto; height:calc(100vh - 108px); border-radius:14px; box-shadow:none; }
  .zmtopc-insight-heading button,.zmtopc-insight-toggle { display:none!important; }
}
@container (max-width:900px) {
  .zmtopc-shell .zmtopc-access-inner { grid-template-columns:1fr; }
  .zmtopc-shell .zmtopc-path-grid { grid-template-columns:1fr; }
  .zmtopc-shell .zmtopc-summary-strip { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .zmtopc-shell .zmtopc-command-state { flex:1 1 100%; }
}
@media (min-width:768px) { .zmtopc-base-layout { padding-inline:max(24px,env(safe-area-inset-left)) max(24px,env(safe-area-inset-right)); } }
@media (min-width:1200px) { .zmtopc-base-layout { grid-template-columns:208px minmax(0,1fr); padding-inline:max(32px,env(safe-area-inset-left)) max(32px,env(safe-area-inset-right)); } .zmtopc-base-sidebar { display:block; } .zmtopc-base-mobile-nav { display:none; } .zmtopc-base-main { padding-top:30px; } }
@media (min-width:1600px) { .zmtopc-base-layout { grid-template-columns:224px minmax(0,1fr); gap:32px; padding-inline:max(48px,env(safe-area-inset-left)) max(48px,env(safe-area-inset-right)); } }
@media (min-width:2200px) { .zmtopc-base-layout { padding-inline:max(64px,env(safe-area-inset-left)) max(64px,env(safe-area-inset-right)); } }
@media (max-width:767px) {
  .zmtopc-shell[data-access="member"] .zmtopc-app { display:none!important; }
  .zmtopc-shell[data-access="member"] .zmtopc-desktop-gate { display:block!important; min-height:0; max-width:700px; margin:10px 0 70px; padding:27px; border:1px solid #dce6f1; border-radius:14px; background:#fff; box-shadow:var(--opc-shadow-sm); text-align:left; }
  .zmtopc-shell[data-access="member"] .zmtopc-desktop-gate h2 { margin:0 0 8px; font-size:23px; }
  .zmtopc-shell[data-access="member"] .zmtopc-desktop-gate p { margin:0; color:#61758d; font-size:14px; line-height:1.7; }
  .zmtopc-shell[data-access="member"] .zmtopc-desktop-gate > div { display:flex; flex-wrap:wrap; gap:9px; margin-top:20px; }
  .zmtopc-shell[data-access="member"] .zmtopc-desktop-gate a { padding:9px 13px; border:1px solid #cdddef; border-radius:8px; color:#1457bd; background:#f5f9ff; font-size:13px; text-decoration:none; }
  .zmtopc-shell:not([data-access="member"]) .zmtopc-access { display:block!important; }
  .zmtopc-shell:not([data-access="member"]) .zmtopc-desktop-gate { display:none!important; }
}
@media (max-width:700px) {
  .zmtopc-base-main { padding-top:15px; }
  .zmtopc-shell .zmtopc-access-story,.zmtopc-shell .zmtopc-access-card { padding:24px; }
  .zmtopc-shell .zmtopc-access-flow { grid-template-columns:1fr; }
  .zmtopc-shell .zmtopc-access-flow > div { min-height:0; }
}
@media print { .zmtopc-base-sidebar,.zmtopc-base-mobile-nav,.zmtopc-base-breadcrumb { display:none!important; } .zmtopc-base-layout { display:block; padding:0; } .zmtopc-base-main { padding:0; } }
@media (prefers-reduced-motion:reduce) { .zmtopc-shell *, .zmtopc-shell *::before,.zmtopc-shell *::after { scroll-behavior:auto!important; transition:none!important; animation:none!important; } }

/* V2 workbench detail system: shared typography, field rhythm, and state surfaces. */
.zmtopc-shell { font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","PingFang SC","Microsoft YaHei",sans-serif; font-size:15px; line-height:1.7; -webkit-font-smoothing:antialiased; --opc-text-base:15px; --opc-text-field:15px; }
.zmtopc-shell :is(h1,h2,h3) { text-wrap:balance; }
.zmtopc-shell :is(p,dd) { text-wrap:pretty; overflow-wrap:anywhere; }
.zmtopc-shell :is(input,textarea,select) { color:#172b44; }
.zmtopc-shell :is(button,input,textarea,select):focus { outline:none; }
.zmtopc-shell :is(a,button,input,textarea,select):focus-visible { outline:2px solid #2166d1; outline-offset:3px; }
.zmtopc-shell :is(button,.zmtopc-button):active:not(:disabled) { transform:scale(.96); }
.zmtopc-shell :is(button,.zmtopc-button):disabled { cursor:not-allowed; opacity:.55; }
.zmtopc-shell .zmtopc-hero { padding-bottom:20px; align-items:center; }
.zmtopc-shell .zmtopc-hero h1 { font-size:30px; font-family:inherit; font-weight:650; line-height:1.35; letter-spacing:-.02em; }
.zmtopc-shell .zmtopc-hero-eyebrow { margin-bottom:6px; font-size:12px; letter-spacing:.04em; }
.zmtopc-shell .zmtopc-hero p { font-size:14px; }
.zmtopc-shell .zmtopc-commandbar { padding-bottom:16px; gap:12px; }
.zmtopc-shell .zmtopc-command-state { font-variant-numeric:tabular-nums; }
.zmtopc-shell .zmtopc-workspace,.zmtopc-shell .zmtopc-example-workspace { padding-top:24px; }
.zmtopc-shell .zmtopc-stage-head { margin-bottom:20px; flex-wrap:wrap; }
.zmtopc-shell .zmtopc-stage-head > div:first-child { flex:1 1 440px; min-width:0; }
.zmtopc-shell .zmtopc-head-actions { flex:0 0 auto; flex-wrap:wrap; }
.zmtopc-shell .zmtopc-head-actions button { white-space:nowrap; }
.zmtopc-shell .zmtopc-stage-head h2 { font-size:24px; line-height:1.45; font-weight:650; }
.zmtopc-shell .zmtopc-stage-head > div > p:not(.zmtopc-eyebrow) { margin-top:6px; font-size:14px; line-height:1.7; color:#61758d; }
.zmtopc-shell .zmtopc-eyebrow { font-size:12px; font-weight:600; letter-spacing:.04em; }
.zmtopc-shell .zmtopc-progress button { min-height:48px; font-weight:600; }
.zmtopc-shell .zmtopc-interview-steps { margin-bottom:20px; }
.zmtopc-shell .zmtopc-summary-strip { gap:12px; margin-bottom:20px; }
.zmtopc-shell .zmtopc-summary-stat { padding:14px 16px; min-height:0; background:#fff; box-shadow:none; }
.zmtopc-shell .zmtopc-summary-stat small { color:#61758d; font-size:12px; }
.zmtopc-shell .zmtopc-summary-stat strong { margin-top:6px; color:#172b44; font-size:19px; font-weight:600; font-variant-numeric:tabular-nums; }
.zmtopc-shell .zmtopc-interview-card { padding:28px; border-radius:14px; box-shadow:0 1px 4px rgba(32,72,116,.035); }
.zmtopc-shell .zmtopc-interview-title { display:block; padding:0 0 24px; margin-bottom:0; border-bottom:1px solid #e2e8f0; }
.zmtopc-shell .zmtopc-interview-title h2 { font-size:22px; line-height:1.4; font-weight:650; }
.zmtopc-shell .zmtopc-interview-title p { margin:8px 0 0; max-width:85ch; color:#61758d; font-size:14px; line-height:1.7; }
.zmtopc-shell .zmtopc-form-sections { gap:0; }
.zmtopc-shell .zmtopc-form-section { padding:28px 0; border:0; border-bottom:1px solid #e2e8f0; border-radius:0; background:#fff; box-shadow:none; }
.zmtopc-shell .zmtopc-form-section:last-child { border-bottom:0; }
.zmtopc-shell .zmtopc-form-section-head { display:block; margin:0 0 24px; }
.zmtopc-shell .zmtopc-form-section-head > div { display:grid; grid-template-columns:1fr auto; gap:6px 16px; }
.zmtopc-shell .zmtopc-form-section-icon { display:none; }
.zmtopc-shell .zmtopc-form-section-head h3 { font-size:17px; line-height:1.5; font-weight:600; margin:0; }
.zmtopc-shell .zmtopc-form-section-head p { margin:0; }
.zmtopc-shell .zmtopc-form-section-head p em { background:none; padding:0; color:#61758d; font-size:12px; font-weight:400; font-style:normal; font-variant-numeric:tabular-nums; }
.zmtopc-shell .zmtopc-form-section-head small { grid-column:1/-1; color:#61758d; font-size:13px; line-height:1.7; }
.zmtopc-shell .zmtopc-form-section-fields { gap:24px; }
.zmtopc-shell .zmtopc-field { gap:8px; padding:0; border:0; border-radius:0; background:none; box-shadow:none; }
.zmtopc-shell .zmtopc-field > label { margin:0; color:#304660; font-size:14px; font-weight:600; gap:8px; }
.zmtopc-shell .zmtopc-field-label-icon { display:none; }
.zmtopc-shell .zmtopc-field-optional { padding:0; background:none; color:#61758d; font-size:12px; font-weight:400; }
.zmtopc-shell .zmtopc-field-required { padding:0; background:none; color:#315e9a; font-size:12px; font-weight:400; }
.zmtopc-shell .zmtopc-field :is(input,select,textarea) { min-height:46px; padding:11px 14px; border:1px solid #cbd8e7; border-radius:8px; background:#fff; font-size:15px; font-weight:400; line-height:1.7; box-shadow:none; }
.zmtopc-shell .zmtopc-field textarea { min-height:128px; resize:vertical; }
.zmtopc-shell .zmtopc-field textarea[data-long] { min-height:240px; }
.zmtopc-shell .zmtopc-field :is(input,select,textarea):focus { border-color:#2166d1; box-shadow:none; }
.zmtopc-shell .zmtopc-field :is(input,textarea)::placeholder { color:#74869a; opacity:1; }
.zmtopc-shell .zmtopc-field-help { margin:0; color:#61758d; font-size:12px; line-height:1.7; }
.zmtopc-shell .zmtopc-field-meta { margin:0; gap:16px; align-items:baseline; }
.zmtopc-shell .zmtopc-field-meta b { min-width:fit-content; color:#61758d; background:none; padding:0; font-size:12px; font-weight:400; font-variant-numeric:tabular-nums; }
.zmtopc-shell .zmtopc-problem-list { padding:0; gap:10px; border:0; background:none; }
.zmtopc-shell .zmtopc-problem-list-head { color:#61758d; font-size:12px; }
.zmtopc-shell .zmtopc-problem-list-head b { font-weight:400; color:#61758d; }
.zmtopc-shell .zmtopc-problem-row { grid-template-columns:28px minmax(0,1fr); gap:8px; }
.zmtopc-shell .zmtopc-problem-row > b { width:28px; height:28px; background:#f0f4f9; color:#61758d; font-size:12px; border-radius:6px; }
.zmtopc-shell .zmtopc-problem-row > span { display:none; }
.zmtopc-shell .zmtopc-form-actions { position:sticky; bottom:12px; margin:8px 0 0; padding:14px 16px; border:1px solid #dce6f1; border-radius:10px; background:rgba(255,255,255,.98); box-shadow:0 4px 16px rgba(32,72,116,.07); }
.zmtopc-shell .zmtopc-required-note { color:#61758d; font-size:12px; }
.zmtopc-shell .zmtopc-required-note i { background:#61758d; box-shadow:none; }
.zmtopc-shell .zmtopc-priority-list li,.zmtopc-shell .zmtopc-subject-panel,.zmtopc-shell .zmtopc-analysis-strip { border:1px solid #dce6f1; background:#f8fafd; box-shadow:none; border-radius:10px; }
.zmtopc-shell .zmtopc-subject-panel { padding:16px; }
.zmtopc-shell .zmtopc-analysis-strip { padding:16px; }
.zmtopc-shell .zmtopc-analysis-copy > span,.zmtopc-shell .zmtopc-subject-icon { color:#2166d1; background:#eaf3ff; box-shadow:none; }
.zmtopc-shell .zmtopc-button--analysis,.zmtopc-shell .zmtopc-button--import { color:#315e9a; border:1px solid #cdddef; background:#fff; box-shadow:none; }
.zmtopc-shell .zmtopc-chip > span { min-height:40px; border-radius:8px; padding:9px 12px; border-color:#dce6f1; color:#61758d; background:#fff; box-shadow:none; font-size:13px; }
.zmtopc-shell .zmtopc-chip input:focus-visible + span { outline:2px solid #2166d1; outline-offset:3px; }
.zmtopc-shell .zmtopc-priority-controls button,.zmtopc-shell .zmtopc-mini-button,.zmtopc-shell .zmtopc-lock,.zmtopc-shell .zmtopc-field-status { min-width:40px; min-height:40px; font-size:12px; }
.zmtopc-shell .zmtopc-canvas-toolbar { padding:16px 20px; margin-bottom:20px; background:#fff; }
.zmtopc-shell .zmtopc-canvas-toolbar p { color:#61758d; font-size:13px; }
.zmtopc-shell .zmtopc-path { border:1px solid #dce6f1; box-shadow:none; padding:24px; }
.zmtopc-shell .zmtopc-path.is-selected { border-color:#a9c6ed; background:#f8fbff; box-shadow:inset 3px 0 #2166d1; }
.zmtopc-shell .zmtopc-path h2 { font-size:22px; font-weight:650; }
.zmtopc-shell .zmtopc-path .zmtopc-one-liner { color:#61758d; font-size:14px; line-height:1.8; }
.zmtopc-shell .zmtopc-score { min-width:72px; background:none; padding:0; }
.zmtopc-shell .zmtopc-score b { font-size:24px; font-weight:650; }
.zmtopc-shell .zmtopc-score small { color:#61758d; font-size:12px; }
.zmtopc-shell .zmtopc-path-block { padding:16px 0; border-top:1px solid #e2e8f0; }
.zmtopc-shell .zmtopc-path-block :is(p,li) { color:#304660; font-size:15px; line-height:1.8; }
.zmtopc-shell .zmtopc-path-block > strong { color:#61758d; font-size:13px; }
.zmtopc-shell .zmtopc-canvas { display:grid; grid-template-columns:1fr; gap:24px; }
.zmtopc-shell .zmtopc-canvas-section { border-radius:12px; box-shadow:none; scroll-margin-top:100px; }
.zmtopc-shell .zmtopc-section-head { grid-template-columns:32px minmax(0,1fr) auto; padding:20px 24px; gap:12px; background:#f8fafd; }
.zmtopc-shell .zmtopc-section-head h2 { color:#172b44; font-size:19px; line-height:1.5; font-weight:600; }
.zmtopc-shell .zmtopc-section-head p { margin-top:5px; font-size:12px; color:#61758d; }
.zmtopc-shell .zmtopc-section-index { width:32px; height:32px; flex-basis:32px; font-size:14px; }
.zmtopc-shell .zmtopc-section-actions { gap:6px; flex-wrap:wrap; }
.zmtopc-shell .zmtopc-section-fields { grid-template-columns:1fr; gap:24px; padding:24px; }
.zmtopc-shell .zmtopc-canvas-field { padding:0 0 24px; border:0; border-bottom:1px solid #e2e8f0; }
.zmtopc-shell .zmtopc-canvas-field:last-child { padding-bottom:0; border-bottom:0; }
.zmtopc-shell .zmtopc-canvas-field-head { min-height:40px; margin-bottom:8px; }
.zmtopc-shell .zmtopc-canvas-field-head label { font-size:14px; font-weight:600; color:#304660; }
.zmtopc-shell .zmtopc-field-editor { min-height:120px; border:1px solid #cbd8e7; border-radius:8px; background:#fff; color:#304660; font-size:15px; line-height:1.85; padding:14px 16px; }
.zmtopc-shell .zmtopc-field-editor:focus { border-color:#2166d1; box-shadow:none; }
.zmtopc-shell .zmtopc-field-tags { margin-top:10px; gap:6px; }
.zmtopc-shell .zmtopc-tag { font-size:12px; font-weight:400; border-radius:5px; }
.zmtopc-shell .zmtopc-tag.user_fact { color:#315e9a; background:#edf4ff; }
.zmtopc-shell .zmtopc-tag.ai_hypothesis { color:#866025; background:#fff6e8; }
.zmtopc-shell .zmtopc-tag.web_evidence { color:#356f55; background:#edf7f2; }
.zmtopc-shell .zmtopc-economics { grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.zmtopc-shell .zmtopc-economics label { font-size:13px; color:#61758d; }
.zmtopc-shell .zmtopc-economics input { margin-top:8px; min-height:44px; border:1px solid #cbd8e7; border-radius:8px; background:#fff; color:#172b44; font-size:15px; }
.zmtopc-shell .zmtopc-scenarios { display:block; margin-top:20px; }
.zmtopc-shell .zmtopc-empty h2 { font-family:inherit; font-size:28px; font-weight:650; }
.zmtopc-shell .zmtopc-recent-card strong { white-space:normal; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; line-height:1.6; }
.zmtopc-shell .zmtopc-recent-card span { font-size:12px; color:#61758d; }
.zmtopc-shell .zmtopc-insight-card { padding:18px; }
.zmtopc-shell .zmtopc-insight-card p { color:#61758d; font-size:13px; line-height:1.8; }
.zmtopc-shell .zmtopc-insight-card strong { font-size:14px; color:#304660; font-weight:600; }
.zmtopc-shell .zmtopc-dialog { width:min(620px,calc(100vw - 48px)); padding:0; color:#172b44; border:1px solid #dce6f1; box-shadow:0 24px 72px rgba(23,43,68,.2); }
.zmtopc-shell .zmtopc-dialog-head { padding:28px 68px 28px 28px; gap:16px; background:#f8fafd; border-bottom:1px solid #e2e8f0; }
.zmtopc-shell .zmtopc-dialog-head h2 { font-size:24px; line-height:1.4; font-weight:650; }
.zmtopc-shell .zmtopc-dialog-head p { color:#61758d; font-size:14px; line-height:1.7; margin-top:8px; }
.zmtopc-shell .zmtopc-dialog-body { padding:24px 28px; background:#fff; }
.zmtopc-shell .zmtopc-dialog::backdrop { background:rgba(23,43,68,.32); backdrop-filter:blur(4px); }
.zmtopc-shell .zmtopc-dialog-icon { width:48px; height:48px; }
.zmtopc-shell .zmtopc-dialog-icon svg { width:26px; height:26px; }
.zmtopc-shell .zmtopc-dialog .zmtopc-eyebrow { padding:0; background:none; color:#3474c8; }
.zmtopc-shell .zmtopc-dialog-field { gap:8px; color:#304660; font-size:14px; font-weight:600; }
.zmtopc-shell .zmtopc-dialog-field input { min-height:46px; padding:11px 14px; border:1px solid #cbd8e7; border-radius:8px; background:#fff; color:#172b44; font-size:15px; box-shadow:none; }
.zmtopc-shell .zmtopc-dialog-field input:focus { border-color:#2166d1; box-shadow:none; }
.zmtopc-shell .zmtopc-dialog-field small { color:#61758d; font-size:12px; font-weight:400; }
.zmtopc-shell .zmtopc-dialog-close:hover { color:#2166d1; background:#eaf3ff; transform:none; }
.zmtopc-shell .zmtopc-dialog-actions { gap:12px; padding:20px 28px; border-top:1px solid #e2e8f0; background:#fff; }
.zmtopc-shell .zmtopc-dialog-close { width:40px; height:40px; min-width:40px; border:0; border-radius:8px; color:#61758d; background:transparent; }
.zmtopc-shell .zmtopc-toast { color:#fff; background:#172b44; border-radius:10px; box-shadow:0 8px 24px rgba(23,43,68,.18); font-size:14px; }
.zmtopc-shell .is-example-mode .zmtopc-layout { grid-template-columns:minmax(0,1fr); }
.zmtopc-shell .is-example-mode :is(.zmtopc-insight,.zmtopc-insight-toggle) { display:none!important; }
@container (max-width:1100px) {
  .zmtopc-shell .zmtopc-hero { align-items:flex-start; flex-wrap:wrap; gap:16px; }
  .zmtopc-shell .zmtopc-section-head { grid-template-columns:32px minmax(0,1fr); }
  .zmtopc-shell .zmtopc-section-actions { grid-column:1/-1; justify-content:flex-start; padding-top:4px; }
}
@container (max-width:700px) {
  .zmtopc-shell .zmtopc-form-section-fields { grid-template-columns:1fr; }
  .zmtopc-shell .zmtopc-interview-card { padding:24px; }
  .zmtopc-shell .zmtopc-economics { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .zmtopc-shell .zmtopc-form-actions { flex-wrap:wrap; gap:10px; }
  .zmtopc-shell .zmtopc-hero h1 { font-size:27px; }
}
.zmtopc-print-field-text { display:none; }
@media print {
  .zmtopc-shell .zmtopc-print-field-text { display:block; color:#172b44; white-space:pre-wrap; overflow-wrap:anywhere; font-size:11pt; line-height:1.7; }
  .zmtopc-shell .zmtopc-field-editor { display:none; }
  .zmtopc-shell .zmtopc-form-actions { position:static; }
  .zmtopc-shell .zmtopc-section-fields { grid-template-columns:1fr; }
  .zmtopc-shell .zmtopc-canvas-section { break-inside:auto; }
  .zmtopc-shell .zmtopc-canvas-field { break-inside:avoid; }
  .zmtopc-shell .zmtopc-field-editor { height:auto; min-height:0; }
}
