.wb-toolbar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  margin: 0 0 14px;
}

/* Controlled widget variants: the configuration never becomes executable CSS. */
.wb-widget[data-density=compact] .wb-task { padding-top:7px; padding-bottom:7px; }
.wb-widget[data-density=compact] .operations-project-table td { height:42px; padding-top:6px; padding-bottom:6px; }
.wb-widget[data-density=compact] .operations-pulse { min-height:110px; }
.wb-widget[data-density=compact] .operations-stage-chart { padding:10px 12px; }
.wb-widget[data-tone=soft] > .operations-panel { background:#f2f7f4; }
.wb-widget[data-tone=accent] > .operations-panel { border-top:3px solid #236246; }
.wb-widget[data-tone=soft] .operations-pulse { background:#254d3c; }
.wb-widget[data-tone=accent] .operations-pulse { border-top:3px solid #59a987; }
.wb-widget[data-title-align=center] .operations-panel-head > div { flex:1; text-align:center; }
.wb-widget[data-title-align=center] .operations-pulse-intro { text-align:center; }
.wb-widget.wb-hide-description .operations-panel-head small { display:none; }
.wb-widget.wb-hide-description .operations-metric small { display:none; }
.wb-toolbar p {
  margin: 0;
  color: #708278;
  font-size: 12px;
}
.wb-actions {
  display: flex;
  gap: 8px;
  align-items: center;
  flex-wrap: wrap;
}
.wb-button {
  font: inherit;
  font-size: 12px;
  padding: 8px 12px;
  border: 1px solid #d5dfda;
  border-radius: 6px;
  background: #fff;
  color: #236246;
  cursor: pointer;
  white-space: nowrap;
}
.wb-button.primary {
  background: var(--portal-primary, #236246);
  border-color: var(--portal-primary, #236246);
  color: #fff;
}
.wb-button:disabled {
  opacity: 0.45;
  cursor: not-allowed;
}
.wb-button:focus-visible,
.wb-task:focus-visible,
.wb-composer input:focus-visible,
.wb-composer select:focus-visible,
.wb-composer textarea:focus-visible {
  outline: 2px solid #328460;
  outline-offset: 2px;
}
.wb-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 16px;
  align-items: start;
}
.wb-widget {
  min-width: 0;
}
.wb-widget.full {
  grid-column: 1/-1;
}
.wb-widget .operations-panel {
  height: auto;
  min-height: 190px;
}

.wb-widget .operations-pulse {
  margin: 0;
  grid-template-columns: minmax(220px, 1.7fr) repeat(
      var(--wb-metrics, 4),
      minmax(100px, 1fr)
    );
}
.wb-widget .operations-project-wrap {
  max-height: none;
}
.wb-widget .operations-customer-list {
  max-height: 250px;
}
.wb-widget .operations-project-table {
  min-width: 780px;
}
.wb-widget .operations-project-table td {
  height: 70px;
}
.wb-empty {
  padding: 32px 20px;
  color: #708278;
  font-size: 13px;
  text-align: center;
  line-height: 1.9;
}
.wb-note {
  font-size: 12px;
  color: #708278;
  line-height: 1.7;
}
.wb-error {
  color: #a23424;
}
.wb-task-list {
  padding: 0 18px;
}
.wb-task {
  display: flex;
  width: 100%;
  gap: 12px;
  align-items: center;
  justify-content: space-between;
  text-align: left;
  border: 0;
  border-bottom: 1px solid #edf1ee;
  background: white;
  padding: 17px 0;
  color: #253e33;
  font: inherit;
  cursor: pointer;
}
.wb-task:last-child {
  border-bottom: 0;
}
.wb-task strong {
  font-size: 13px;
  display: block;
}
.wb-task small {
  font-size: 12px;
  display: block;
  color: #74847b;
  margin-top: 5px;
}
.wb-task-copy {
  min-width: 0;
  overflow-wrap: anywhere;
}
.wb-task .wb-note {
  white-space: nowrap;
}
.wb-task:disabled {
  cursor: default;
}
.wb-tasks-page {
  max-width: 1200px;
}
.wb-tasks-page .operations-panel {
  background: white;
  border: 1px solid #dce4df;
  border-radius: 10px;
}
.wb-tabs {
  display: flex;
  gap: 20px;
  border-bottom: 1px solid #dce4df;
  margin: 0 0 16px;
}
.wb-tabs button {
  background: none;
  border: 0;
  border-bottom: 2px solid transparent;
  color: #708278;
  font: inherit;
  padding: 12px 2px;
  cursor: pointer;
}
.wb-tabs button.active {
  color: #236246;
  border-bottom-color: #236246;
  font-weight: 600;
}
.wb-pager {
  padding: 14px 18px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 10px;
  border-top: 1px solid #edf1ee;
  font-size: 12px;
  color: #708278;
}
.wb-editor .portal-content {
  padding: 0;
}
.wb-editor {
  width: min(1450px, 100%);
  height: min(1000px, 94vh);
  max-height: 94vh;
}
.wb-editor header,
.wb-editor footer,
.wb-editor .portal-status {
  flex: none;
}
.wb-editor .portal-status {
  padding: 8px 24px;
  border-top: 1px solid #e0e8e4;
}
.wb-editor footer {
  border-bottom: 0;
  border-top: 1px solid #e0e8e4;
}
.wb-editor-body {
  display: grid;
  grid-template-columns: 330px minmax(0, 1fr);
  height: 100%;
  min-height: 0;
}
.wb-preview-area {
  background: #f3f6f3;
  padding: 20px;
  overflow: auto;
  min-width: 0;
}
.wb-preview-bar {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 10px;
  margin-bottom: 16px;
  flex-wrap: wrap;
}
.wb-preview-bar strong {
  font-size: 13px;
}
.wb-preview {
  background: #f3f6f3;
  min-width: 0;
}
.wb-preview.mobile {
  width: 390px;
  max-width: 100%;
  margin: auto;
}
.wb-preview.mobile .wb-grid {
  grid-template-columns: 1fr;
}
.wb-preview.mobile .wb-widget {
  grid-column: 1/-1;
}
.wb-preview.mobile .operations-pulse {
  display: grid;
  grid-template-columns: 1fr 1fr;
}
.wb-preview.mobile .operations-pulse-intro {
  grid-column: 1/-1;
}
.wb-preview.mobile .operations-metric {
  padding: 16px;
  border-top: 1px solid #ffffff18;
}
.wb-preview.mobile .operations-metric strong {
  font-size: 25px;
}
.wb-preview.mobile .wb-task {
  align-items: flex-start;
}
.wb-preview .operations-pulse-intro h2 {
  font-size: 18px;
}
.wb-preview .operations-pulse {
  grid-template-columns: minmax(180px, 1.5fr) repeat(
      var(--wb-metrics, 4),
      minmax(78px, 1fr)
    );
}
.wb-preview .operations-metric {
  padding: 18px 12px;
}
.wb-preview .operations-metric strong {
  font-size: 27px;
}
.wb-preview .operations-stage-chart {
  padding: 20px;
}
.wb-preview .operations-project-wrap {
  overflow: auto;
}
.wb-preview .operations-project-table {
  min-width: 650px;
}
.wb-preview .operations-panel-head small {
  display: block;
}
.wb-review {
  width: 100%;
  padding: 12px 16px;
  background: #eff6f1;
  border: 1px solid #cfddd5;
  border-radius: 8px;
  font-size: 12px;
  color: #305943;
  line-height: 1.8;
}
.wb-review p {
  margin: 0 0 8px;
}
.wb-review .wb-actions {
  justify-content: flex-end;
}
.wb-widget[data-widget="guangrou-projects"] {
  container-type: inline-size;
}
@container (max-width:600px) {
  .wb-widget .operations-project-table,
  .wb-preview .operations-project-table {
    min-width: 0;
    display: block;
    width: 100%;
  }
  .operations-project-table colgroup,
  .operations-project-table thead {
    display: none;
  }
  .operations-project-table tbody {
    display: block;
  }
  .operations-project-table tr {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    padding: 16px 12px;
    gap: 7px;
    border-bottom: 1px solid #e3eae6;
  }
  .wb-widget .operations-project-table td {
    display: block;
    height: auto !important;
    padding: 0 !important;
    border: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }
  .operations-project-table td:nth-child(1) {
    grid-column: 1;
    grid-row: 1;
  }
  .operations-project-table td:nth-child(2) {
    grid-column: 1/-1;
    grid-row: 2;
  }
  .operations-project-table td:nth-child(3) {
    grid-column: 1/-1;
    grid-row: 3;
  }
  .operations-project-table td:nth-child(3)::before {
    content: "申请工程师：";
    color: #78877f;
  }
  .operations-project-table td:nth-child(4) {
    grid-column: 1/-1;
    grid-row: 4;
    padding-top: 10px !important;
  }
  .operations-project-table td:nth-child(5) {
    grid-column: 2;
    grid-row: 1;
  }
  .operations-project-table .operations-progress {
    min-width: 0 !important;
  }
  .operations-project-table .operations-milestones {
    min-width: 0 !important;
  }
  .operations-project-table .operations-phase-labels {
    padding: 0;
  }
  .operations-project-table .operations-stage-pill {
    font-size: 10px;
    padding: 4px 6px;
  }
}
@media (max-width: 1100px) {
  .wb-widget .operations-pulse {
    grid-template-columns: repeat(4, 1fr);
  }
  .wb-widget .operations-pulse-intro {
    grid-column: 1/-1;
  }
  .wb-editor-body {
    grid-template-columns: 285px minmax(0, 1fr);
  }
  .wb-preview .operations-pulse {
    grid-template-columns: 1fr 1fr;
  }
  .wb-preview .operations-pulse-intro {
    grid-column: 1/-1;
  }
}
@media (max-width: 700px) {
  .wb-grid {
    grid-template-columns: 1fr;
  }
  .wb-widget {
    grid-column: 1/-1;
  }
  .wb-widget .operations-pulse {
    grid-template-columns: 1fr 1fr;
  }
  .wb-widget .operations-pulse-intro {
    grid-column: 1/-1;
  }
  .wb-widget .operations-metric {
    padding: 16px;
  }
  .wb-task {
    align-items: flex-start;
  }
  .wb-editor-body {
    display: flex;
    flex-direction: column;
    height: auto;
  }
  .wb-editor .portal-content {
    overflow: auto;
  }
  .wb-preview-area {
    overflow: visible;
    padding: 14px;
    order: 2;
  }
  .wb-preview .operations-project-table {
    min-width: 650px;
  }
  .wb-button {
    min-height: 40px;
  }
  .wb-toolbar {
    align-items: flex-start;
  }
  .wb-editor {
    height: 94dvh;
  }
  .wb-editor footer {
    padding: 12px;
  }
  .wb-editor .portal-status {
    padding: 8px 14px;
  }
  .wb-task .wb-note {
    font-size: 11px;
  }
  .wb-pager {
    flex-wrap: wrap;
  }
}
/* Composer chrome is independent from the business panels rendered inside it. */
.portal-dialog.wb-composer {
  --wb-accent: var(--portal-primary, #236246);
  width: min(1500px, 100%);
  height: 94dvh;
  max-height: 1100px;
  border-radius: 12px;
  font-family: "Segoe UI", "Microsoft YaHei UI", sans-serif;
  font-size: 13px;
}
.wb-composer > .portal-content { flex: 1; overflow: hidden; }
.wb-composer > header { padding: 17px 24px; }
.wb-composer > header h2 { font-size: 18px; }
.wb-composer .wb-editor-body { grid-template-columns: 300px minmax(0,1fr); }
.wb-library-rail { min-width: 0; overflow: hidden; display: flex; flex-direction: column; background: #fff; border-right: 1px solid #dce4df; }
.wb-rail-top { padding: 0 20px; flex: none; background: #fff; z-index: 2; }
.wb-library-tabs { display: flex; gap: 24px; border-bottom: 1px solid #dce4df; }
.wb-composer .wb-library-tabs button { flex: 1; border: 0; border-bottom: 2px solid transparent; border-radius: 0; background: none; padding: 16px 2px 12px; color: #708278; }
.wb-composer .wb-library-tabs [aria-selected=true] { color: var(--wb-accent); border-bottom-color: var(--wb-accent); font-weight: 600; }
.wb-library-content { padding: 0 18px 10px; flex: 1; min-height: 130px; overflow: auto; }
.wb-library-content > .wb-note { margin: 16px 2px 12px; }
.wb-library-item { display: flex; align-items: center; gap: 4px; border: 1px solid #dce4df; border-radius: 7px; margin-bottom: 8px; padding: 3px 7px 3px 0; background: #fff; }
.wb-library-item.selected { border-color: #93b8a5; background: #edf5f0; }
.wb-composer .wb-library-drag { display: flex; align-items: center; gap: 12px; flex: 1; min-width: 0; background: transparent; border: 0; padding: 9px 10px; text-align: left; cursor: grab; touch-action: none; }
.wb-library-copy { min-width: 0; }
.wb-library-copy strong { font-size: 13px; font-weight: 600; display: block; }
.wb-library-copy small { display: block; color: #708278; font-size: 11px; line-height: 1.6; margin-top: 3px; }
.wb-composer svg { width: 16px; height: 16px; flex: none; vertical-align: middle; }
.wb-library-drag > svg { width: 22px; height: 22px; }
.wb-composer .wb-library-add { display: flex; padding: 5px; align-items: center; justify-content: center; width: 30px; min-height: 30px; }
.wb-library-add span { display: none; }
.wb-library-add:has(svg) { border-color: #dce4df; }
.wb-properties { margin: 0 20px; padding: 14px 0; border-top: 1px solid #e4ebe7; flex: none; max-height: 300px; overflow: auto; }
.wb-properties h3, .wb-template-bindings h3 { margin: 0 0 14px; font-size: 13px; font-weight: 600; }
.wb-property-field { display: flex; align-items: center; justify-content: space-between; gap: 10px; color: #526e5e; margin: 10px 0; font-size: 12px; }
.wb-property-field select { width: 166px; max-width: 68%; min-width: 0; padding: 8px 6px; border: 1px solid #d5dfda; border-radius: 6px; color: #253e33; background: #fff; font: inherit; }
.wb-property-field select:disabled { opacity: 1; color: #526e5e; background: #f6f8f6; -webkit-appearance: none; appearance: none; }
.wb-source-note { font-size: 11px; line-height: 1.8; color: #708278; margin: 8px 0 12px; }
.wb-property-actions { display: flex; gap: 7px; margin-top: 14px; }
.wb-composer .wb-property-actions button { display: flex; align-items: center; gap: 3px; padding: 7px 8px; font-size: 12px; }
.wb-composer button.danger { color: #a23424; }
.wb-metric-choices, .wb-template-bindings { display: grid; gap: 10px; margin: 18px 0; font-size: 12px; }
.wb-metric-choices label, .wb-template-bindings label { display: flex; align-items: flex-start; gap: 7px; line-height: 1.7; cursor: pointer; }
.wb-composer input { accent-color: var(--wb-accent); }
.wb-ai-error { color: #a23424; background: #fff4f0; border-radius: 5px; padding: 8px; font-size: 11px; line-height: 1.7; }
.wb-composer .wb-canvas-settings { border: 0; padding: 3px 0; background: transparent; font-size: 14px; font-weight: 600; color: #253e33; }
.wb-composer .wb-preview-area { position: relative; padding: 20px 24px; background: #f3f6f3; overscroll-behavior: contain; }
.wb-composer .wb-preview-bar { margin-bottom: 16px; }
.wb-canvas-title { display: flex; gap: 14px; align-items: baseline; flex-wrap: wrap; }
.wb-canvas-title strong { font-size: 14px; }
.wb-canvas-title .wb-note { font-size: 11px; }
.wb-composer .wb-actions button { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; }
.wb-composer .wb-preview { background: transparent; container-type: inline-size; }
.wb-composer .wb-grid { gap: 16px; }
.wb-composer .wb-widget { border: 1px dashed #cbd9d1; padding: 5px; border-radius: 9px; background: #fff; min-width: 0; }
.wb-composer .wb-widget.selected { border: 1px solid var(--wb-accent); box-shadow: 0 0 0 1px var(--wb-accent); }
.wb-widget-tools { display: flex; align-items: center; gap: 4px; min-height: 32px; padding: 0 5px 5px; }
.wb-composer .wb-drag-handle, .wb-composer .wb-widget-select { background: none; border: 0; padding: 3px; margin: 0; min-height: 28px; }
.wb-composer .wb-drag-handle { cursor: grab; touch-action: none; }
.wb-composer .wb-widget-select { font-weight: 600; color: #253e33; font-size: 12px; text-align: left; }
.wb-width-label { color: #708278; font-size: 11px; margin-left: auto; background: #f1f5f2; border-radius: 3px; padding: 1px 6px; }
.wb-composer .operations-pulse { box-shadow: none; border-radius: 6px; grid-template-columns: minmax(190px,1.5fr) repeat(var(--wb-metrics,4),minmax(65px,1fr)); }
.wb-composer .operations-pulse-intro { padding: 18px; }
.wb-composer .operations-pulse-intro h2 { font-size: 17px; }
.wb-composer .operations-metric { padding: 16px 10px; }
.wb-composer .operations-metric strong { font-size: 27px; }
.wb-composer .operations-metric small, .wb-composer .operations-metric > span { font-size: 11px; }
.wb-composer .operations-panel { box-shadow: none; border-radius: 5px; border: 0; min-height: 150px; }
.wb-composer .operations-panel-head { padding: 12px; min-height: 0; }
.wb-composer .operations-panel-head strong { font-size: 12px; }
.wb-composer .operations-panel-head strong { display: none; }
.wb-composer .operations-panel-head small { font-size: 11px; line-height: 1.6; }
.wb-composer .operations-project-table { width: 100%; min-width: 0; table-layout: fixed; }
.wb-composer .operations-project-table col:nth-child(1) { width: 17% !important; }
.wb-composer .operations-project-table col:nth-child(2) { width: 19% !important; }
.wb-composer .operations-project-table col:nth-child(3) { width: 10% !important; }
.wb-composer .operations-project-table col:nth-child(5) { width: 12% !important; }
.wb-composer .operations-project-table td { height: 58px; padding: 10px 8px; font-size: 11px; overflow-wrap: anywhere; }
.wb-composer .operations-project-table th { padding: 10px 8px; font-size: 11px; }
.wb-composer .operations-project-id { font-size: 11px; }
.wb-composer .operations-progress { min-width: 0; }
.wb-composer .operations-phase-labels { font-size: 10px; }
.wb-composer .operations-stage-pill { font-size: 10px; white-space: normal; }
.wb-composer .wb-pager { padding: 9px 12px; font-size: 11px; }
.wb-composer .wb-pager button { padding: 5px 8px; font-size: 11px; }
.wb-composer .wb-task { padding: 12px 0; }
.wb-composer button.wb-task { border: 0; border-bottom: 1px solid #edf1ee; border-radius: 0; background: white; color: #253e33; opacity: 1; padding: 12px 0; cursor: default; }
.wb-composer .wb-task strong { font-size: 12px; }
.wb-composer .wb-task small { font-size: 11px; }
.wb-composer .operations-stage-chart { padding: 14px 12px; }
.wb-composer .operations-stage-row { grid-template-columns: 90px minmax(0,1fr) 25px; }
.wb-canvas-end { margin-top: 16px; padding: 24px 12px; text-align: center; color: #819388; font-size: 12px; border: 1px dashed #cbd9d1; border-radius: 7px; }
.wb-snap-guides { background-image: linear-gradient(90deg,transparent calc(50% - .5px),#4f977b88 calc(50% - .5px),#4f977b88 calc(50% + .5px),transparent calc(50% + .5px)) !important; outline: 1px dashed #4f977b88; outline-offset: 6px; }
.wb-dragging, .wb-dragging * { cursor: grabbing !important; user-select: none; }
.wb-drag-ghost { position: fixed; z-index: 100100; pointer-events: none; padding: 10px 16px; background: #236246; color: white; border-radius: 6px; box-shadow: 0 4px 16px #183a2830; font: 13px "Microsoft YaHei UI",sans-serif; }
.wb-drop-marker { position: fixed; z-index: 100099; pointer-events: none; background: #328460; color: #236246; font: 11px "Microsoft YaHei UI",sans-serif; line-height: 22px; text-indent: 8px; white-space: nowrap; }
.wb-drop-marker.vertical { text-indent: 8px; }
.wb-template { padding-bottom: 18px; margin-bottom: 16px; border-bottom: 1px solid #e4ebe7; }
.wb-template > strong { display: block; margin-top: 10px; font-size: 13px; }
.wb-template-preview { display: grid; grid-template-columns: 1fr 1fr; grid-auto-rows: 22px; gap: 6px; padding: 12px; background: #f3f6f3; border: 1px solid #dce4df; border-radius: 7px; }
.wb-template-preview span { border: 1px solid #d5dfda; border-radius: 3px; background: #fff; }
.wb-template-preview span.full { grid-column: 1/-1; }
.wb-template-preview [data-kind=summary] { background: #236246; }
.wb-template-preview [data-kind=guangrou-projects] { grid-row: span 2; }
.wb-template-preview [data-kind=quotation-stages] { background: repeating-linear-gradient(#dcebe2 0 4px,#fff 4px 8px); }
.wb-composer > footer { justify-content: flex-end; padding: 12px 24px; gap: 8px; }
.wb-composer > footer > .wb-note { margin-right: auto; }
.wb-composer > .portal-status { padding: 6px 24px; font-size: 11px; min-height: 18px; }
.wb-composer .wb-review { box-sizing: border-box; max-height: 200px; overflow: auto; }
.wb-composer .wb-mobile-tools, .wb-composer .wb-dismiss-rail { display: none; }
@container (max-width: 680px) {
  .wb-composer .operations-pulse { grid-template-columns: repeat(2,minmax(0,1fr)); }
  .wb-composer .operations-pulse-intro { grid-column: 1/-1; }
  .wb-composer .operations-metric { border-top: 1px solid #ffffff18; }
  .wb-composer .wb-grid { grid-template-columns: 1fr; }
  .wb-composer .wb-widget { grid-column: 1/-1; }
}
@media (max-width: 1100px) {
  .wb-composer .wb-editor-body { grid-template-columns: 270px minmax(0,1fr); }
  .wb-composer .wb-preview-area { padding: 16px; }
  .wb-canvas-title .wb-note { display: block; }
}
@media (max-width: 700px) {
  .portal-dialog.wb-composer { height: 96dvh; max-height: 96dvh; border-radius: 9px; }
  .wb-composer .wb-editor-body { display: block; height: 100%; position: relative; }
  .wb-composer .wb-preview-area { height: 100%; overflow: auto; padding: 12px; box-sizing: border-box; }
  .wb-composer .wb-library-rail { display: none; }
  .wb-composer.rail-open .wb-library-rail { display: block; position: absolute; inset: 0; z-index: 4; overflow: auto; border: 0; }
  .wb-composer .wb-rail-top { position: sticky; top: 0; padding-bottom: 1px; }
  .wb-composer .wb-mobile-tools { display: flex; gap: 8px; margin-bottom: 12px; }
  .wb-composer .wb-dismiss-rail { display: block; margin: 8px 0 10px auto; }
  .wb-composer .wb-preview-bar { gap: 10px; }
  .wb-composer .wb-preview-bar .wb-actions { gap: 6px; }
  .wb-composer .wb-preview-bar .wb-actions button { min-height: 36px; padding: 6px 9px; }
.wb-composer .wb-preview-bar .wb-actions button[aria-pressed][title="手机预览"] { display: none; }
  .wb-composer .wb-canvas-title { gap: 4px; }
  .wb-composer .wb-library-add { width: 40px; min-height: 40px; }
  .wb-composer .wb-drag-handle { min-height: 36px; min-width: 32px; }
  .wb-composer .wb-widget-select { min-height: 36px; }
  .wb-composer .wb-property-actions button { min-height: 42px; flex: 1; justify-content: center; }
  .wb-composer .wb-property-field select { min-height: 40px; }
  .wb-composer > header { padding: 12px 16px; }
  .wb-composer > header h2 { font-size: 16px; }
  .wb-composer > footer { padding: 10px 12px; }
  .wb-composer > footer > .wb-note { display: none; }
  .wb-composer > .portal-status { padding: 6px 12px; font-size: 10px; }
  .wb-composer .operations-project-table { display: block; min-width: 0; }
}

/* Independent AI conversation, with a canvas-first mobile sheet. */
.wb-composer .wb-editor-body { position:relative; grid-template-columns:240px minmax(0,1fr); }
.wb-composer.chat-open .wb-editor-body { grid-template-columns:220px minmax(0,1fr) 340px; }
.wb-composer.chat-open.chat-expanded .wb-editor-body { grid-template-columns:220px minmax(0,1fr) minmax(400px,40%); }
.wb-composer .wb-assistant { display:none; min-width:0; min-height:0; background:#fff; border-left:1px solid #dfe7e2; overflow:hidden; }
.wb-composer.chat-open .wb-assistant { display:flex; flex-direction:column; }
.wb-assistant-head { display:flex; align-items:center; justify-content:space-between; gap:10px; padding:18px 16px; border-bottom:1px solid #e7ece9; }
.wb-assistant-head strong { font-size:15px; }
.wb-composer .wb-assistant-head button { border:0; padding:4px; font-size:12px; background:transparent; }
.wb-assistant-scope { margin:14px 16px 0; padding:12px; border:1px solid #e1e9e4; background:#f7faf8; border-radius:7px; }
.wb-assistant-scope-head { display:flex; align-items:center; justify-content:space-between; gap:6px; font-size:12px; color:#226449; }
.wb-composer .wb-assistant-scope-head button { border:0; padding:3px; background:transparent; font-size:11px; }
.wb-assistant-scope small { display:block; font-size:11px; line-height:1.7; color:#738277; margin-top:8px; }
.wb-selection-chips { display:flex; flex-wrap:wrap; gap:6px; margin-top:10px; }
.wb-composer .wb-selection-chips button { padding:4px 7px; font-size:11px; background:white; }
.wb-assistant-log { flex:1; min-height:80px; padding:18px 16px; overflow:auto; overscroll-behavior:contain; overflow-wrap:anywhere; }
.wb-assistant-welcome { padding:20px 4px; color:#667c70; font-size:13px; line-height:1.8; }
.wb-assistant-welcome strong { color:#253e33; font-weight:600; }
.wb-assistant-welcome p { margin:10px 0; }
.wb-assistant-message { margin:0 0 20px; font-size:13px; line-height:1.8; }
.wb-assistant-message > strong { font-size:12px; color:#526e5e; }
.wb-assistant-message > p { white-space:pre-wrap; margin:7px 0; padding:12px; border-radius:7px; background:#f4f7f5; }
.wb-assistant-message.user > p { background:#e8f3ed; }
.wb-assistant-message > small { display:block; font-size:11px; color:#72857a; }
.wb-ai-proposal { border:1px solid #d9e5dd; border-radius:7px; margin-top:12px; padding:13px; background:#fff; }
.wb-ai-proposal > strong { font-size:12px; }
.wb-ai-proposal ul { padding-left:17px; margin:10px 0 16px; color:#63796c; font-size:12px; }
.wb-ai-proposal .wb-actions { justify-content:flex-end; }
.wb-assistant-bottom { padding:12px 16px; border-top:1px solid #e7ece9; }
.wb-assistant-bottom .wb-note { font-size:10px; line-height:1.7; margin:8px 0 0; }
.wb-assistant-input { border:1px solid #cfded4; border-radius:7px; padding:10px; }
.wb-assistant-input:focus-within { border-color:#328460; box-shadow:0 0 0 2px #32846012; }
.wb-assistant-input textarea { display:block; box-sizing:border-box; width:100%; resize:vertical; min-height:74px; max-height:160px; border:0; outline:none; color:#253e33; background:white; font:13px/1.8 'Segoe UI','Microsoft YaHei UI',sans-serif; padding:0; }
.wb-composer .wb-assistant-input textarea:focus-visible { outline:none; }
.wb-assistant-input-actions { display:flex; justify-content:space-between; align-items:center; gap:8px; margin-top:8px; }
.wb-assistant-input-actions small { color:#839088; font-size:10px; }
.wb-assistant-input-actions button { margin-left:auto; }
.wb-assistant-head,.wb-assistant-bottom,.wb-assistant-scope { flex-shrink:0; }
.wb-assistant .wb-ai-error { margin:0 0 10px; }
.wb-composer .wb-preview-bar { position:sticky; top:0; z-index:3; align-items:flex-start; gap:10px; padding:8px 0; background:#f3f6f3; }
.wb-composer .wb-canvas-title { min-width:90px; }
.wb-composer .wb-canvas-title .wb-note { display:block; font-size:10px; }
.wb-composer .wb-preview-area { padding:18px; }
.wb-composer.chat-open .wb-properties { padding:16px; }
.wb-composer .wb-properties { margin-left:0; margin-right:0; padding:16px; }
.wb-composer .wb-property-actions { flex-wrap:wrap; }
.wb-composer .wb-library-copy strong,.wb-composer .wb-library-copy small { white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.wb-composer .wb-library-drag { gap:8px; }
.wb-composer .wb-library-drag svg { flex:none; }
.wb-composer .wb-property-field { flex-wrap:wrap; }
.wb-composer.chat-open .wb-property-field select { max-width:100%; width:100%; }
.wb-composer .wb-widget.ai-selected { border:1px solid #328460; box-shadow:0 0 0 2px #32846038; }
.wb-composer .wb-ai-pick { flex:none; width:16px; height:16px; margin:4px; cursor:pointer; }
.wb-selecting, .wb-selecting * { cursor:crosshair !important; touch-action:none; user-select:none; }
.wb-selection-rectangle { position:fixed; z-index:100101; border:1px solid #328460; background:#32846016; pointer-events:none; }
.wb-composer .wb-widget[data-title-align=center] .wb-widget-select { flex:1; text-align:center; }
.wb-composer .wb-widget[data-density=compact] .wb-task { padding-top:7px; padding-bottom:7px; }
.wb-composer .wb-widget[data-density=compact] .operations-project-table td { height:42px; padding-top:6px; padding-bottom:6px; }
.wb-widget[data-density=compact] .operations-pulse-intro,.wb-widget[data-density=compact] .operations-metric { padding-top:12px; padding-bottom:12px; }
@media (min-width:1400px) {
  .portal-dialog.wb-composer { width:calc(100vw - 64px); max-width:1780px; }
}
@media (max-width:1399px) and (min-width:701px) {
  .wb-composer.chat-open .wb-editor-body,.wb-composer.chat-open.chat-expanded .wb-editor-body { grid-template-columns:240px minmax(0,1fr); }
  .wb-composer.chat-open .wb-assistant { position:absolute; right:0; top:0; bottom:0; width:360px; z-index:6; box-shadow:-10px 0 25px #17392918; }
  .wb-composer.chat-open.chat-expanded .wb-assistant { width:min(560px,70%); }
}
@media (max-width:700px) {
  .wb-composer.chat-open .wb-assistant { position:absolute; inset:0; z-index:6; border:0; }
  .wb-composer .wb-assistant-head { padding:12px 16px; }
  .wb-composer .wb-assistant-head button { min-height:40px; padding:8px; }
  .wb-composer .wb-assistant-head button:first-child { display:none; }
  .wb-composer .wb-assistant-bottom { padding:10px 14px; }
  .wb-composer .wb-assistant-scope { margin-top:8px; }
  .wb-composer .wb-assistant-input textarea { min-height:60px; font-size:16px; }
  .wb-composer .wb-assistant-input-actions button { min-height:40px; }
  .wb-composer .wb-assistant-input-actions small { display:none; }
  .wb-composer .wb-ai-pick { width:22px; height:22px; margin:5px; }
  .wb-composer .wb-preview-area { padding:12px; }
  .wb-composer .wb-preview-bar .wb-actions button { min-height:40px; }
  .wb-composer .wb-preview-bar .wb-actions { width:100%; }
  .wb-composer .wb-preview-bar .wb-actions button:nth-child(4) { display:none; }
  .wb-composer.chat-open > footer,.wb-composer.chat-open > .portal-status { display:none; }
}
@media (max-width:700px) and (max-height:620px) {
  .wb-composer .wb-assistant-scope { max-height:72px; overflow:auto; padding:8px; }
  .wb-composer .wb-assistant-scope small { display:none; }
  .wb-composer .wb-assistant-input textarea { min-height:36px; height:42px; max-height:64px; }
  .wb-composer .wb-assistant-bottom .wb-note { display:none; }
  .wb-composer .wb-assistant-log { min-height:40px; padding:10px 16px; }
}
