
.toast[data-v-5bd7511c] {
  position: fixed;
  z-index: var(--z-toast);
  right: 20px;
  bottom: 20px;
  width: min(360px, calc(100vw - 40px));
  display: grid;
  grid-template-columns: auto 1fr auto;
  align-items: start;
  gap: 10px;
  padding: 13px;
  border: 1px solid var(--line);
  border-radius: var(--radius-md);
  color: var(--ink);
  background: var(--surface-raised);
  box-shadow: var(--shadow-md);
}
.toast-icon[data-v-5bd7511c] {
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border-radius: var(--radius-sm);
  color: var(--success);
  background: var(--success-soft);
}
.toast strong[data-v-5bd7511c] {
  display: block;
  margin: 1px 0 3px;
  font-size: calc(12px * var(--font-scale));
}
.toast p[data-v-5bd7511c] {
  margin: 0;
  color: var(--ink-3);
  font-size: calc(11px * var(--font-scale));
  line-height: 1.45;
}
.toast button[data-v-5bd7511c] {
  width: 26px;
  height: 26px;
  display: grid;
  place-items: center;
  border-radius: var(--radius-xs);
  color: var(--ink-3);
  background: transparent;
}
.toast-enter-active[data-v-5bd7511c],
.toast-leave-active[data-v-5bd7511c] {
  transition: opacity var(--duration-state) ease, transform var(--duration-state) var(--ease-out-quart);
}
.toast-enter-from[data-v-5bd7511c],
.toast-leave-to[data-v-5bd7511c] {
  opacity: 0;
  transform: translateY(10px);
}

.brand-mark[data-v-a4b952b4] {
  display: block;
  flex: 0 0 auto;
}
.brand-mark--small[data-v-a4b952b4] {
  width: 32px;
  height: 32px;
}
.brand-mark--tiny[data-v-a4b952b4] {
  width: 24px;
  height: 24px;
}
.brand-mark--large[data-v-a4b952b4] {
  width: 44px;
  height: 44px;
}

.login-page[data-v-f207b306] { width: 100%; height: 100%; overflow: hidden; background: var(--canvas);
}
.login-window-bar[data-v-f207b306] { position: relative; z-index: 10; height: 58px; display: flex; align-items: center; justify-content: space-between; padding: 0 22px; border-bottom: 1px solid var(--line); background: color-mix(in srgb, var(--surface) 96%, transparent); backdrop-filter: blur(16px); -webkit-app-region: drag;
}
.login-brand[data-v-f207b306], .cloud-state[data-v-f207b306] { display: flex; align-items: center;
}.login-brand[data-v-f207b306] { gap: 9px;
}.login-brand strong[data-v-f207b306] { font-size: calc(12px * var(--font-scale));
}.login-brand > span[data-v-f207b306] { margin-left: 2px; padding-left: 10px; border-left: 1px solid var(--line); color: var(--ink-3); font-family: var(--font-mono); font-size: calc(8.5px * var(--font-scale)); letter-spacing: .06em; text-transform: uppercase;
}.cloud-state[data-v-f207b306] { gap: 6px; color: var(--success); font-size: calc(9px * var(--font-scale)); font-weight: 650;
}
.login-layout[data-v-f207b306] { height: calc(100% - 58px); display: grid; grid-template-columns: minmax(570px, 1.18fr) minmax(420px, .82fr);
}
.login-story[data-v-f207b306] { position: relative; display: flex; flex-direction: column; justify-content: center; overflow: hidden; padding: clamp(54px, 7vh, 82px) clamp(54px, 7vw, 112px) 42px; color: #182033; background: #f1f4fa;
}
.story-copy[data-v-f207b306] { position: relative; z-index: 2; max-width: 720px; clip-path: inset(0); animation: copy-reveal-f207b306 1800ms 700ms cubic-bezier(.4, 0, .2, 1) both;
}.story-signal[data-v-f207b306] { display: flex; align-items: center; gap: 9px; color: #375078; font-size: calc(10px * var(--font-scale)); font-weight: 680;
}.story-signal i[data-v-f207b306] { width: 8px; height: 8px; border: 2px solid #2c5fe0; border-radius: 50%; box-shadow: 0 0 0 4px rgb(44 95 224 / .1);
}.story-copy h1[data-v-f207b306] { max-width: 720px; margin: 23px 0 0; color: #182033; font-size: calc(58px * var(--font-scale)); line-height: 1.03; letter-spacing: -.035em;
}.story-copy h1 span[data-v-f207b306] { color: #2c5fe0;
}.story-copy p[data-v-f207b306] { max-width: 620px; margin: 23px 0 0; color: #59677c; font-size: calc(11.5px * var(--font-scale)); line-height: 1.75;
}
.story-canvas[data-v-f207b306] { position: relative; z-index: 1; width: min(720px, 100%); height: 230px; margin-top: clamp(40px, 5.5vh, 60px); overflow: hidden; border-top: 1px solid rgb(51 68 96 / .12); border-bottom: 1px solid rgb(51 68 96 / .1); background-image: radial-gradient(circle, rgb(75 96 132 / .22) .65px, transparent .8px); background-size: 18px 18px; clip-path: inset(0); animation: canvas-reveal-f207b306 900ms 2450ms var(--ease-out-quint) both;
}.story-canvas svg[data-v-f207b306] { position: absolute; inset: 0; width: 100%; height: 100%; overflow: visible;
}.trace-base[data-v-f207b306], .trace-progress[data-v-f207b306] { fill: none; stroke-width: 1.4; vector-effect: non-scaling-stroke;
}.trace-base[data-v-f207b306] { stroke: #c8d0dd;
}.trace-progress[data-v-f207b306] { stroke: #2c5fe0; stroke-dasharray: 1; stroke-dashoffset: 1; animation: trace-draw-f207b306 950ms 2950ms var(--ease-out-quint) forwards;
}
.trace-node[data-v-f207b306] { position: absolute; min-height: 64px; display: grid; grid-template-columns: 34px minmax(0, 1fr) auto; align-items: center; gap: 9px; padding: 10px; border: 1px solid #d8dee8; border-radius: 10px; background: rgb(255 255 255 / .94);
}.trace-node > span[data-v-f207b306] { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 8px; color: #2c5fe0; background: #edf3ff; font-family: var(--font-mono); font-size: calc(8px * var(--font-scale)); font-weight: 750;
}.trace-node small[data-v-f207b306], .trace-node strong[data-v-f207b306] { display: block;
}.trace-node small[data-v-f207b306] { color: #7d8899; font-size: calc(7.5px * var(--font-scale));
}.trace-node strong[data-v-f207b306] { margin-top: 3px; color: #273247; font-size: calc(9px * var(--font-scale));
}.trace-node > i[data-v-f207b306] { width: 7px; height: 7px; border: 2px solid #2c5fe0; border-radius: 50%; background: #fff;
}.requirement-node[data-v-f207b306] { left: 1.5%; top: 119px; width: 192px; animation: node-in-f207b306 520ms 2680ms var(--ease-out-quint) both;
}.prd-node[data-v-f207b306] { left: 35.5%; top: 40px; width: 202px; animation: node-in-f207b306 520ms 2860ms var(--ease-out-quint) both;
}.html-node[data-v-f207b306] { right: 1.5%; top: 119px; width: 212px; border-color: #b9c9ed; background: #f8faff; animation: node-in-f207b306 540ms 3040ms var(--ease-out-quint) both;
}.html-node em[data-v-f207b306] { padding: 4px 5px; border-radius: 5px; color: #16835c; background: #e9f7f1; font-family: var(--font-mono); font-size: calc(6.5px * var(--font-scale)); font-style: normal; font-weight: 700;
}.story-canvas > p[data-v-f207b306] { position: absolute; left: 13px; bottom: 9px; display: flex; align-items: center; gap: 7px; margin: 0; color: #68768b; font-size: calc(7.5px * var(--font-scale));
}.story-canvas > p span[data-v-f207b306] { width: 6px; height: 6px; border-radius: 50%; background: #16835c;
}
.login-panel[data-v-f207b306] { display: grid; place-items: center; padding: 52px; background: var(--surface);
}.login-form-shell[data-v-f207b306] { width: min(390px, 100%); animation: form-in-f207b306 420ms var(--ease-out-quint) both;
}.login-form-shell > header[data-v-f207b306] { margin-bottom: 34px;
}.login-form-shell > header small[data-v-f207b306] { display: block; margin-bottom: 11px; color: var(--accent); font-size: calc(8.5px * var(--font-scale)); font-weight: 700;
}.login-form-shell h2[data-v-f207b306] { margin: 0; font-size: calc(25px * var(--font-scale)); letter-spacing: -.04em;
}.login-form-shell header p[data-v-f207b306] { margin: 8px 0 0; color: var(--ink-3); font-size: calc(10px * var(--font-scale));
}
.login-form-shell form[data-v-f207b306] { display: grid; gap: 18px;
}.login-form-shell form > label > span[data-v-f207b306] { display: block; margin-bottom: 8px; color: var(--ink-2); font-size: calc(9.5px * var(--font-scale)); font-weight: 650;
}.login-input[data-v-f207b306] { height: 46px; display: flex; align-items: center; gap: 9px; padding: 0 12px; border: 1px solid var(--line); border-radius: var(--radius-sm); color: var(--ink-3); background: var(--surface); transition: border-color var(--duration-fast) ease, box-shadow var(--duration-fast) ease;
}.login-input[data-v-f207b306]:focus-within { border-color: var(--accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 12%, transparent);
}.login-input input[data-v-f207b306] { min-width: 0; flex: 1; border: 0; outline: 0; color: var(--ink); background: transparent; font-size: calc(10px * var(--font-scale));
}.login-input button[data-v-f207b306] { width: 27px; height: 27px; display: grid; place-items: center; padding: 0; border-radius: 6px; color: var(--ink-3); background: transparent;
}.login-input button[data-v-f207b306]:hover { color: var(--ink); background: var(--surface-muted);
}
.login-options[data-v-f207b306] { display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: -3px;
}.login-options label[data-v-f207b306] { display: flex; align-items: center; gap: 6px; color: var(--ink-2); font-size: calc(8.5px * var(--font-scale));
}.login-options input[data-v-f207b306] { accent-color: var(--accent);
}.login-options small[data-v-f207b306] { color: var(--ink-3); font-size: calc(7.8px * var(--font-scale));
}.login-switch[data-v-f207b306] { text-align: center; margin-top: -6px; color: var(--ink-3); font-size: calc(9px * var(--font-scale));
}.login-switch a[data-v-f207b306] { color: var(--accent); font-weight: 650; text-decoration: none;
}.login-switch a[data-v-f207b306]:hover { text-decoration: underline;
}.login-error[data-v-f207b306] { margin: -5px 0 0; padding: 8px 10px; border: 1px solid color-mix(in srgb, var(--danger) 28%, var(--line)); border-radius: 7px; color: var(--danger); background: var(--danger-soft); font-size: calc(8.5px * var(--font-scale));
}.login-submit[data-v-f207b306] { height: 43px; display: flex; align-items: center; justify-content: center; gap: 8px; margin-top: 2px; border-radius: var(--radius-sm); color: #fff; background: var(--accent); font-size: calc(10px * var(--font-scale)); font-weight: 720; transition: background var(--duration-fast) ease, transform var(--duration-fast) ease;
}.login-submit[data-v-f207b306]:hover:not(:disabled) { background: var(--accent-strong);
}.login-submit[data-v-f207b306]:active:not(:disabled) { transform: translateY(1px);
}.spin[data-v-f207b306] { animation: spin-f207b306 800ms linear infinite;
}
.login-error-enter-active[data-v-f207b306], .login-error-leave-active[data-v-f207b306] { transition: opacity 160ms ease, transform 160ms var(--ease-out-quart);
}.login-error-enter-from[data-v-f207b306], .login-error-leave-to[data-v-f207b306] { opacity: 0; transform: translateY(-4px);
}
@keyframes spin-f207b306 {
to { transform: rotate(360deg);
}
}
@keyframes form-in-f207b306 {
from { opacity: 0; transform: translateY(10px);
}
}
@keyframes copy-reveal-f207b306 {
from { opacity: 0; clip-path: inset(0 100% 0 0); filter: blur(4px); transform: translateX(-18px);
}
}
@keyframes canvas-reveal-f207b306 {
from { opacity: 0; clip-path: inset(0 100% 0 0); transform: translateX(-12px);
}
}
@keyframes node-in-f207b306 {
from { opacity: 0; transform: translateY(8px) scale(.985);
}
}
@keyframes trace-draw-f207b306 {
to { stroke-dashoffset: 0;
}
}
@media (max-width: 1120px) {
.story-copy h1[data-v-f207b306] { font-size: calc(50px * var(--font-scale));
}.trace-node[data-v-f207b306] { transform: scale(.9); transform-origin: left center;
}.html-node[data-v-f207b306] { transform-origin: right center;
}
}
@media (max-width: 980px) {
.login-layout[data-v-f207b306] { grid-template-columns: 1fr; overflow: auto;
}.login-story[data-v-f207b306] { min-height: 650px;
}.login-panel[data-v-f207b306] { min-height: 560px;
}.story-copy h1[data-v-f207b306] { font-size: calc(56px * var(--font-scale));
}
}
@media (max-width: 620px) {
.login-window-bar[data-v-f207b306] { padding-right: 14px;
}.cloud-state span[data-v-f207b306], .login-brand > span[data-v-f207b306] { display: none;
}.login-story[data-v-f207b306] { min-height: 590px; padding: 54px 24px 30px;
}.story-copy h1[data-v-f207b306] { font-size: calc(42px * var(--font-scale));
}.story-canvas[data-v-f207b306] { height: 215px; margin-top: 40px;
}.trace-node[data-v-f207b306] { min-height: 58px; grid-template-columns: 29px 1fr; padding: 8px; transform: scale(.78);
}.trace-node > span[data-v-f207b306] { width: 29px; height: 29px;
}.trace-node > i[data-v-f207b306], .trace-node em[data-v-f207b306] { display: none;
}.requirement-node[data-v-f207b306] { left: -15px;
}.prd-node[data-v-f207b306] { left: 29%;
}.html-node[data-v-f207b306] { right: -14px;
}.login-panel[data-v-f207b306] { min-height: 540px; padding: 48px 24px 70px;
}
}
@media (prefers-reduced-motion: reduce) {
.story-copy[data-v-f207b306], .story-canvas[data-v-f207b306], .trace-node[data-v-f207b306], .trace-progress[data-v-f207b306], .login-form-shell[data-v-f207b306] { animation: none; filter: none; clip-path: none;
}
.trace-progress[data-v-f207b306] { stroke-dashoffset: 0;
}
}

.modal-backdrop[data-v-483b4b23] {
  position: fixed;
  z-index: var(--z-modal);
  inset: 0;
  display: grid;
  place-items: center;
  padding: 24px;
  background: rgb(17 22 30 / 0.42);
  backdrop-filter: blur(3px);
}
.modal-panel[data-v-483b4b23] {
  max-width: 100%;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--radius-lg);
  background: var(--surface-raised);
  box-shadow: var(--shadow-md);
}
.modal-head[data-v-483b4b23] {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 24px;
  padding: 20px 20px 16px;
  border-bottom: 1px solid var(--line);
}
h2[data-v-483b4b23] {
  margin: 0;
  font-size: calc(17px * var(--font-scale));
  line-height: 1.4;
}
p[data-v-483b4b23] {
  margin: 5px 0 0;
  color: var(--ink-3);
  font-size: calc(11.5px * var(--font-scale));
  line-height: 1.5;
}
.modal-body[data-v-483b4b23] {
  max-height: min(65vh, 680px);
  overflow: auto;
  padding: 20px;
}
.modal-foot[data-v-483b4b23] {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  padding: 14px 20px;
  border-top: 1px solid var(--line);
  background: var(--surface-muted);
}
.modal-enter-active[data-v-483b4b23],
.modal-leave-active[data-v-483b4b23] {
  transition: opacity var(--duration-state) ease;
}
.modal-enter-active .modal-panel[data-v-483b4b23],
.modal-leave-active .modal-panel[data-v-483b4b23] {
  transition: transform var(--duration-panel) var(--ease-out-quart), opacity var(--duration-state) ease;
}
.modal-enter-from[data-v-483b4b23],
.modal-leave-to[data-v-483b4b23] {
  opacity: 0;
}
.modal-enter-from .modal-panel[data-v-483b4b23],
.modal-leave-to .modal-panel[data-v-483b4b23] {
  opacity: 0;
  transform: translateY(8px) scale(0.985);
}

.prompt-input[data-v-037515eb] {
  height: 36px;
  padding: 0 11px;
  font-size: calc(13px * var(--font-scale));
}
.prompt-actions[data-v-037515eb] {
  display: flex;
  justify-content: flex-end;
  gap: 8px;
  margin-top: 16px;
}

.project-home[data-v-57d78bae] { width: 100%; height: 100%; overflow: hidden; background: var(--panel);
}
.home-topbar[data-v-57d78bae] { height: 58px; display: flex; align-items: center; justify-content: space-between; padding: 0 22px; border-bottom: 1px solid var(--line); background: var(--surface); -webkit-app-region: drag;
}
.home-topbar button[data-v-57d78bae], .home-topbar a[data-v-57d78bae] { -webkit-app-region: no-drag;
}
.home-brand[data-v-57d78bae], .home-actions[data-v-57d78bae] { display: flex; align-items: center; gap: 9px;
}
.home-brand strong[data-v-57d78bae] { font-size: calc(13px * var(--font-scale));
}
.home-actions[data-v-57d78bae] { gap: 7px;
}
.workspace-picker[data-v-57d78bae] { position: relative;
}
.workspace-user[data-v-57d78bae] { height: 34px; display: flex; align-items: center; gap: 7px; padding: 0 10px; border: 1px solid var(--line); border-radius: var(--radius-sm); color: var(--ink-2); background: var(--surface); font-size: calc(10.5px * var(--font-scale));
}
.workspace-user > span[data-v-57d78bae] { max-width: 180px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.workspace-user > em[data-v-57d78bae] { min-width: 17px; height: 17px; display: grid; place-items: center; border-radius: 99px; color: #fff; background: var(--accent); font-size: 9px; font-style: normal; font-weight: 750;
}
.workspace-menu[data-v-57d78bae], .project-menu[data-v-57d78bae] { position: absolute; z-index: var(--z-dropdown); display: grid; gap: 2px; padding: 5px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--surface-raised); box-shadow: var(--shadow-sm);
}
.workspace-menu[data-v-57d78bae] { top: 40px; right: 0; width: 282px; padding: 7px;
}
.workspace-menu button[data-v-57d78bae], .project-menu button[data-v-57d78bae] { min-height: 31px; display: flex; align-items: center; gap: 7px; padding: 0 8px; border-radius: var(--radius-xs); color: var(--ink-2); text-align: left; background: transparent; white-space: nowrap;
}
.workspace-menu button[data-v-57d78bae]:hover, .project-menu button[data-v-57d78bae]:hover { color: var(--ink); background: var(--surface-muted);
}
.workspace-menu > button[data-v-57d78bae] { min-height: 42px;
}
.workspace-menu > button.selected[data-v-57d78bae] { color: var(--ink); background: var(--accent-soft);
}
.workspace-menu-label[data-v-57d78bae] { padding: 5px 8px 4px; color: var(--ink-3); font-size: calc(8.5px * var(--font-scale)); font-weight: 700; text-transform: uppercase; letter-spacing: .06em;
}
.workspace-avatar[data-v-57d78bae] { width: 27px; height: 27px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 8px; color: var(--accent-strong); background: var(--accent-soft); font-size: 11px; font-weight: 750;
}
.workspace-option-copy[data-v-57d78bae] { min-width: 0; flex: 1;
}
.workspace-option-copy strong[data-v-57d78bae], .workspace-option-copy small[data-v-57d78bae] { display: block; overflow: hidden; text-overflow: ellipsis;
}
.workspace-option-copy strong[data-v-57d78bae] { color: var(--ink); font-size: calc(10px * var(--font-scale));
}
.workspace-option-copy small[data-v-57d78bae] { margin-top: 2px; color: var(--ink-3); font-size: calc(8px * var(--font-scale));
}
.workspace-menu-divider[data-v-57d78bae] { height: 1px; margin: 5px 2px; background: var(--line);
}
.menu-count[data-v-57d78bae], .side-count[data-v-57d78bae] { min-width: 17px; height: 17px; margin-left: auto; display: grid; place-items: center; border-radius: 99px; color: #fff; background: var(--accent); font-size: 8px; font-weight: 750;
}
.home-layout[data-v-57d78bae] { height: calc(100% - 58px); display: grid; grid-template-columns: 226px minmax(0, 1fr);
}
.home-sidebar[data-v-57d78bae] { display: flex; flex-direction: column; padding: 20px 12px 14px; border-right: 1px solid var(--line); background: var(--panel);
}
.side-section[data-v-57d78bae] { display: grid; gap: 4px;
}
.side-section.secondary[data-v-57d78bae] { margin-top: 26px;
}
.side-label[data-v-57d78bae] { padding: 0 9px 7px; color: var(--ink-3); font-size: calc(9.5px * var(--font-scale)); font-weight: 700;
}
.side-link[data-v-57d78bae] { height: 36px; display: flex; align-items: center; gap: 9px; padding: 0 9px; border-radius: var(--radius-sm); color: var(--ink-2); text-align: left; background: transparent; font-size: calc(11px * var(--font-scale));
}
.side-link[data-v-57d78bae]:hover { color: var(--ink); background: var(--surface-muted);
}
.side-link.active[data-v-57d78bae] { color: var(--accent-strong); background: var(--accent-soft); font-weight: 680;
}
.storage-card[data-v-57d78bae] { display: flex; align-items: center; gap: 9px; margin: 0 5px; padding: 10px; border: 1px solid var(--line); border-radius: var(--radius-sm); color: var(--ink-3); background: var(--surface);
}
.storage-card strong[data-v-57d78bae], .storage-card small[data-v-57d78bae] { display: block;
}
.storage-card strong[data-v-57d78bae] { color: var(--ink-2); font-size: calc(9.5px * var(--font-scale));
}
.storage-card small[data-v-57d78bae] { margin-top: 3px; font-size: calc(8px * var(--font-scale));
}
.home-sidebar-actions[data-v-57d78bae] { display: grid; gap: 3px; margin-top: auto; padding-top: 10px; border-top: 1px solid var(--line);
}.home-sidebar-actions a[data-v-57d78bae], .home-sidebar-actions button[data-v-57d78bae] { min-height: 36px; display: flex; align-items: center; gap: 9px; padding: 0 9px; border-radius: var(--radius-sm); color: var(--ink-2); text-align: left; background: transparent; font-size: calc(10.5px * var(--font-scale));
}.home-sidebar-actions a[data-v-57d78bae]:hover, .home-sidebar-actions button[data-v-57d78bae]:hover { color: var(--ink); background: var(--surface-muted);
}.home-sidebar-actions button[data-v-57d78bae] { color: var(--danger);
}
.home-main[data-v-57d78bae] { min-width: 0; overflow: auto; padding: 34px clamp(26px, 4vw, 62px) 60px; background: var(--canvas);
}
.home-heading[data-v-57d78bae] { display: flex; align-items: flex-end; justify-content: space-between; gap: 24px; max-width: 1180px; margin: 0 auto;
}
.home-heading h1[data-v-57d78bae] { margin: 0; font-size: calc(25px * var(--font-scale)); letter-spacing: -0.03em;
}
.home-heading p[data-v-57d78bae] { margin: 7px 0 0; color: var(--ink-3); font-size: calc(11px * var(--font-scale));
}
.home-toolbar[data-v-57d78bae] { max-width: 1180px; margin: 26px auto 15px; display: flex; align-items: center; justify-content: space-between; gap: 18px;
}
.home-toolbar > span[data-v-57d78bae] { color: var(--ink-3); font-size: calc(9.5px * var(--font-scale));
}
.search-box[data-v-57d78bae] { width: min(380px, 50vw); height: 36px; display: flex; align-items: center; gap: 8px; padding: 0 10px; border: 1px solid var(--line); border-radius: var(--radius-sm); color: var(--ink-3); background: var(--surface);
}
.search-box[data-v-57d78bae]:focus-within { border-color: var(--accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 12%, transparent);
}
.search-box input[data-v-57d78bae] { min-width: 0; flex: 1; border: 0; outline: 0; color: var(--ink); background: transparent; font-size: calc(10.5px * var(--font-scale));
}
.project-grid[data-v-57d78bae] { max-width: 1180px; display: grid; grid-template-columns: repeat(3, minmax(240px, 1fr)); gap: 15px; margin: 0 auto;
}
.project-card[data-v-57d78bae] { position: relative; min-height: 260px; display: flex; flex-direction: column; overflow: visible; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--surface); box-shadow: 0 2px 7px rgb(30 39 52 / 0.04); transition: border-color 160ms ease, box-shadow 160ms ease, transform 160ms ease;
}
.project-card.menu-open[data-v-57d78bae] { z-index: var(--z-dropdown);
}
.project-card[data-v-57d78bae]:hover { border-color: var(--accent-border); box-shadow: var(--shadow-sm); transform: translateY(-2px);
}
.project-card > header[data-v-57d78bae] { display: flex; align-items: center; gap: 8px; padding: 14px 14px 0;
}
.project-card > header[data-v-57d78bae] { position: relative;
}
.project-menu[data-v-57d78bae] { top: 42px; right: 0; width: max-content; min-width: 184px; max-width: 240px; padding: 6px;
}
.project-menu button[data-v-57d78bae] { width: 100%; min-height: 34px; justify-content: flex-start; padding: 0 10px; font-size: calc(9.5px * var(--font-scale));
}
.project-menu button > svg[data-v-57d78bae] { flex: 0 0 auto;
}
.project-menu .danger[data-v-57d78bae] { color: var(--danger);
}
.project-icon[data-v-57d78bae] { width: 38px; height: 38px; display: grid; place-items: center; border-radius: var(--radius-sm); color: var(--project-accent); background: color-mix(in srgb, var(--project-accent) 11%, var(--surface));
}
.permission-badge[data-v-57d78bae], .local-badge[data-v-57d78bae] { padding: 4px 6px; border-radius: var(--radius-xs); font-size: calc(8px * var(--font-scale)); font-weight: 700; white-space: nowrap;
}
.permission-badge[data-v-57d78bae] { margin-left: auto; color: var(--accent-strong); background: var(--accent-soft);
}
.permission-badge.view[data-v-57d78bae] { color: var(--ink-3); background: var(--surface-muted);
}
.permission-badge.edit[data-v-57d78bae] { color: var(--warning); background: var(--warning-soft);
}
.local-badge[data-v-57d78bae] { color: var(--success); background: var(--success-soft);
}
.project-card > header > button[data-v-57d78bae] { width: 27px; height: 27px; flex: 0 0 auto; display: grid; place-items: center; border-radius: var(--radius-xs); color: var(--ink-3); background: transparent;
}
.project-card > header > button[data-v-57d78bae]:hover,
.project-card > header > button[aria-expanded='true'][data-v-57d78bae] { color: var(--ink); background: var(--surface-muted);
}
.project-copy[data-v-57d78bae] { padding: 12px 14px 10px;
}
.project-copy h2[data-v-57d78bae] { margin: 0; font-size: calc(13px * var(--font-scale)); letter-spacing: -0.01em;
}
.project-copy p[data-v-57d78bae] { min-height: 34px; margin: 6px 0 0; color: var(--ink-3); font-size: calc(9.5px * var(--font-scale)); line-height: 1.55;
}
.project-preview[data-v-57d78bae] { min-height: 76px; display: flex; align-items: center; justify-content: center; gap: 7px; margin: 0 14px 13px; border: 1px solid var(--line); border-radius: var(--radius-sm); background-color: var(--canvas); background-image: radial-gradient(circle, color-mix(in srgb, var(--ink-3) 20%, transparent) 0.7px, transparent 0.8px); background-size: 13px 13px;
}
.preview-node[data-v-57d78bae] { width: 46px; height: 34px; display: grid; place-items: center; border: 1px solid var(--line-strong); border-radius: 7px; background: var(--surface); box-shadow: var(--shadow-sm); font-family: var(--font-mono); font-size: calc(7.5px * var(--font-scale)); font-weight: 700;
}
.preview-node.requirement[data-v-57d78bae] { color: var(--warning);
}
.preview-node.prd[data-v-57d78bae] { color: var(--accent);
}
.preview-node.page[data-v-57d78bae] { width: 54px; color: var(--success);
}
.project-preview i[data-v-57d78bae] { width: 16px; height: 1px; background: var(--line-strong);
}
.project-card > footer[data-v-57d78bae] { min-height: 41px; display: flex; align-items: center; gap: 11px; margin-top: auto; padding: 0 14px; border-top: 1px solid var(--line); color: var(--ink-3); font-size: calc(8.5px * var(--font-scale));
}
.project-card > footer time[data-v-57d78bae] { margin-left: auto;
}
.visibility-label[data-v-57d78bae] { display: inline-flex; align-items: center; gap: 4px;
}
.empty-projects[data-v-57d78bae] { max-width: 1180px; min-height: 330px; margin: 0 auto; display: flex; flex-direction: column; align-items: center; justify-content: center; border: 1px dashed var(--line-strong); border-radius: var(--radius-md); color: var(--ink-3);
}
.empty-projects h2[data-v-57d78bae] { margin: 12px 0 0; color: var(--ink); font-size: calc(14px * var(--font-scale));
}
.empty-projects p[data-v-57d78bae] { margin: 6px 0 14px; font-size: calc(10px * var(--font-scale));
}
.create-form[data-v-57d78bae] { display: grid; gap: 16px;
}
.create-form .text-area[data-v-57d78bae] { min-height: 96px;
}
.flow-choice[data-v-57d78bae] { display: grid; grid-template-columns: 1fr 1fr; gap: 8px;
}
.flow-choice > strong[data-v-57d78bae] { grid-column: 1 / -1; color: var(--ink-2); font-size: calc(10.5px * var(--font-scale));
}
.flow-choice button[data-v-57d78bae] { min-height: 58px; display: flex; align-items: center; gap: 9px; padding: 9px; border: 1px solid var(--line); border-radius: var(--radius-sm); text-align: left; background: var(--surface);
}
.flow-choice button.selected[data-v-57d78bae] { border-color: var(--accent); background: var(--accent-soft);
}
.flow-choice button > svg[data-v-57d78bae] { color: var(--accent);
}
.flow-choice span[data-v-57d78bae], .flow-choice small[data-v-57d78bae] { display: block;
}
.flow-choice span[data-v-57d78bae] { font-size: calc(10px * var(--font-scale)); font-weight: 650;
}
.flow-choice small[data-v-57d78bae] { margin-top: 3px; color: var(--ink-3); font-size: calc(8.5px * var(--font-scale)); font-weight: 400;
}
.workspace-callout[data-v-57d78bae], .role-hint[data-v-57d78bae] { display: flex; align-items: flex-start; gap: 10px; padding: 12px; border: 1px solid var(--accent-border); border-radius: var(--radius-sm); color: var(--accent-strong); background: var(--accent-soft);
}
.workspace-callout p[data-v-57d78bae] { margin: 0;
}
.workspace-callout strong[data-v-57d78bae], .workspace-callout span[data-v-57d78bae], .role-hint strong[data-v-57d78bae] { display: block;
}
.workspace-callout strong[data-v-57d78bae], .role-hint strong[data-v-57d78bae] { margin-bottom: 3px; color: var(--ink); font-size: calc(10px * var(--font-scale));
}
.workspace-callout span[data-v-57d78bae], .role-hint span[data-v-57d78bae] { color: var(--ink-2); font-size: calc(9px * var(--font-scale)); line-height: 1.55;
}
.workspace-tabs[data-v-57d78bae] { display: flex; gap: 4px; margin: -5px 0 18px; padding-bottom: 12px; border-bottom: 1px solid var(--line);
}
.workspace-tabs button[data-v-57d78bae] { min-height: 34px; display: flex; align-items: center; gap: 7px; padding: 0 11px; border-radius: var(--radius-sm); color: var(--ink-3); background: transparent; font-size: calc(10px * var(--font-scale));
}
.workspace-tabs button[data-v-57d78bae]:hover { color: var(--ink); background: var(--surface-muted);
}
.workspace-tabs button.active[data-v-57d78bae] { color: var(--accent-strong); background: var(--accent-soft); font-weight: 700;
}
.workspace-tabs button span[data-v-57d78bae] { min-width: 17px; height: 17px; display: grid; place-items: center; border-radius: 99px; color: #fff; background: var(--accent); font-size: 8px;
}
.panel-summary[data-v-57d78bae] { min-height: 42px; display: flex; align-items: center; justify-content: space-between; gap: 16px; margin-bottom: 10px;
}
.panel-summary strong[data-v-57d78bae], .panel-summary span[data-v-57d78bae] { display: block;
}
.panel-summary-actions[data-v-57d78bae] { display: flex; align-items: center; gap: 7px;
}
.panel-summary strong[data-v-57d78bae] { font-size: calc(11px * var(--font-scale));
}
.panel-summary span[data-v-57d78bae] { margin-top: 4px; color: var(--ink-3); font-size: calc(8.5px * var(--font-scale));
}
.member-list[data-v-57d78bae] { display: grid; border: 1px solid var(--line); border-radius: var(--radius-md); overflow: hidden;
}
.member-row[data-v-57d78bae] { min-height: 62px; display: flex; align-items: center; gap: 11px; padding: 9px 12px; background: var(--surface);
}
.member-row + .member-row[data-v-57d78bae] { border-top: 1px solid var(--line);
}
.member-row[data-v-57d78bae]:hover { background: color-mix(in srgb, var(--surface-muted) 55%, var(--surface));
}
.member-avatar[data-v-57d78bae] { width: 34px; height: 34px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 10px; color: var(--accent-strong); background: var(--accent-soft); font-size: 11px; font-weight: 780;
}
.member-copy[data-v-57d78bae] { min-width: 0; flex: 1;
}
.member-copy strong[data-v-57d78bae], .member-copy small[data-v-57d78bae] { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.member-copy strong[data-v-57d78bae] { color: var(--ink); font-size: calc(10px * var(--font-scale));
}
.member-copy strong em[data-v-57d78bae] { margin-left: 6px; padding: 2px 5px; border-radius: 5px; color: var(--ink-3); background: var(--surface-muted); font-size: 8px; font-style: normal;
}
.member-copy small[data-v-57d78bae] { margin-top: 3px; color: var(--ink-3); font-size: calc(8.5px * var(--font-scale));
}
.member-status[data-v-57d78bae] { min-width: 58px; padding: 4px 7px; border-radius: 99px; color: var(--ink-2); background: var(--surface-muted); text-align: center; font-size: calc(8px * var(--font-scale)); font-weight: 680;
}
.member-status.invited[data-v-57d78bae] { color: var(--warning); background: var(--warning-soft);
}
.access-count[data-v-57d78bae] { min-width: 72px; color: var(--ink-3); font-size: calc(8.5px * var(--font-scale)); text-align: right;
}
.member-actions[data-v-57d78bae] { display: flex; gap: 3px;
}
.member-actions .danger[data-v-57d78bae], .leave-workspace[data-v-57d78bae] { color: var(--danger);
}
.leave-workspace[data-v-57d78bae] { min-height: 34px; display: flex; align-items: center; gap: 7px; margin: 14px 0 0 auto; padding: 0 10px; border-radius: var(--radius-sm); background: transparent; font-size: calc(9px * var(--font-scale));
}
.leave-workspace[data-v-57d78bae]:hover { background: var(--danger-soft);
}
.invite-form[data-v-57d78bae], .member-editor[data-v-57d78bae] { display: grid; gap: 16px;
}
.invite-grid[data-v-57d78bae] { display: grid; grid-template-columns: minmax(0, 1fr) 180px; gap: 12px;
}
.input-with-icon[data-v-57d78bae] { position: relative;
}
.input-with-icon > svg[data-v-57d78bae] { position: absolute; z-index: 1; top: 50%; left: 10px; color: var(--ink-3); transform: translateY(-50%);
}
.input-with-icon .text-input[data-v-57d78bae] { padding-left: 34px;
}
.project-access-editor[data-v-57d78bae] { display: grid; gap: 9px; padding: 14px; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--canvas);
}
.project-access-editor.compact[data-v-57d78bae] { padding: 12px;
}
.project-access-editor > header[data-v-57d78bae] { display: flex; align-items: center; justify-content: space-between; gap: 16px;
}
.project-access-editor > header strong[data-v-57d78bae], .project-access-editor > header span[data-v-57d78bae] { display: block;
}
.project-access-editor > header strong[data-v-57d78bae] { font-size: calc(10px * var(--font-scale));
}
.project-access-editor > header span[data-v-57d78bae], .project-access-editor > header small[data-v-57d78bae] { margin-top: 3px; color: var(--ink-3); font-size: calc(8.5px * var(--font-scale));
}
.access-project-list[data-v-57d78bae] { max-height: 290px; overflow: auto; display: grid; gap: 5px;
}
.access-project-row[data-v-57d78bae] { min-height: 52px; display: flex; align-items: center; gap: 9px; padding: 7px 9px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--surface); transition: border-color 140ms ease, background 140ms ease;
}
.access-project-row[data-v-57d78bae]:hover { border-color: var(--accent-border);
}
.access-project-row > input[data-v-57d78bae] { width: 15px; height: 15px; accent-color: var(--accent);
}
.project-access-icon[data-v-57d78bae] { width: 30px; height: 30px; flex: 0 0 auto; display: grid; place-items: center; border-radius: 8px; color: var(--project-accent); background: color-mix(in srgb, var(--project-accent) 11%, var(--surface));
}
.access-project-row > span[data-v-57d78bae]:nth-of-type(2) { min-width: 0; flex: 1;
}
.access-project-row strong[data-v-57d78bae], .access-project-row small[data-v-57d78bae] { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.access-project-row strong[data-v-57d78bae] { font-size: calc(9.5px * var(--font-scale));
}
.access-project-row small[data-v-57d78bae] { margin-top: 3px; color: var(--ink-3); font-size: calc(8px * var(--font-scale));
}
.access-project-row select[data-v-57d78bae] { height: 30px; min-width: 94px; padding: 0 7px; border: 1px solid var(--line); border-radius: var(--radius-xs); color: var(--ink-2); background: var(--surface); font-size: calc(8.5px * var(--font-scale));
}
.inline-empty[data-v-57d78bae] { margin: 15px 0; color: var(--ink-3); text-align: center; font-size: calc(9px * var(--font-scale));
}
.form-actions[data-v-57d78bae] { display: flex; justify-content: flex-end; gap: 8px; padding-top: 4px;
}
.invitation-panel[data-v-57d78bae] { display: grid; gap: 8px;
}
.invitation-row[data-v-57d78bae] { min-height: 66px; display: flex; align-items: center; gap: 10px; padding: 10px 12px; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--surface);
}
.invitation-icon[data-v-57d78bae] { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 10px; color: var(--accent-strong); background: var(--accent-soft);
}
.invitation-row > div[data-v-57d78bae] { min-width: 0; flex: 1;
}
.invitation-row strong[data-v-57d78bae] { font-size: calc(10px * var(--font-scale));
}
.invitation-row p[data-v-57d78bae] { margin: 4px 0 0; color: var(--ink-3); font-size: calc(8.5px * var(--font-scale));
}
.invitation-empty[data-v-57d78bae] { min-height: 220px; display: flex; flex-direction: column; align-items: center; justify-content: center; color: var(--ink-3);
}
.invitation-empty strong[data-v-57d78bae] { margin-top: 10px; color: var(--ink); font-size: calc(11px * var(--font-scale));
}
.invitation-empty span[data-v-57d78bae] { margin-top: 5px; font-size: calc(9px * var(--font-scale));
}
@media (max-width: 1050px) {
.project-grid[data-v-57d78bae] { grid-template-columns: repeat(2, minmax(240px, 1fr));
}
}
@media (max-width: 760px) {
.home-layout[data-v-57d78bae] { grid-template-columns: 1fr;
}
.home-sidebar[data-v-57d78bae] { display: none;
}
.home-main[data-v-57d78bae] { padding: 24px 18px 50px;
}
.project-grid[data-v-57d78bae] { grid-template-columns: 1fr;
}
.home-actions .app-button[data-v-57d78bae], .workspace-user[data-v-57d78bae] { display: none;
}
}

.workspace-topbar[data-v-1a074fc3] {
  position: fixed;
  z-index: 40;
  inset: 0 0 auto 0;
  height: var(--topbar-height);
  display: grid;
  grid-template-columns: var(--sidebar-width) minmax(520px, 1fr) auto;
  align-items: stretch;
  border-bottom: 1px solid var(--line);
  background: color-mix(in srgb, var(--panel) 95%, transparent);
  backdrop-filter: blur(14px);
  -webkit-app-region: drag;
}
button[data-v-1a074fc3] {
  -webkit-app-region: no-drag;
}
.brand-zone[data-v-1a074fc3] {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 14px;
  border-right: 1px solid var(--line);
  text-align: left;
  background: transparent;
}
.brand-copy strong[data-v-1a074fc3],
.brand-copy small[data-v-1a074fc3] {
  display: block;
}
.brand-copy strong[data-v-1a074fc3] {
  font-size: calc(12.5px * var(--font-scale));
}
.brand-copy small[data-v-1a074fc3] {
  margin-top: 2px;
  color: var(--ink-3);
  font-size: calc(9.5px * var(--font-scale));
}
.project-zone[data-v-1a074fc3] {
  min-width: 0;
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 0 12px 0 16px;
}
.breadcrumb[data-v-1a074fc3] {
  min-width: 150px;
  display: flex;
  flex: 1;
  align-items: center;
  gap: 7px;
  overflow: hidden;
  color: var(--ink-3);
  white-space: nowrap;
  font-size: calc(11px * var(--font-scale));
}
.breadcrumb strong[data-v-1a074fc3] {
  max-width: 220px;
  overflow: hidden;
  color: var(--ink);
  text-overflow: ellipsis;
}
.breadcrumb em[data-v-1a074fc3] {
  color: var(--ink-2);
  font-style: normal;
}
.breadcrumb i.readonly-badge[data-v-1a074fc3] { padding: 3px 6px; border-radius: 6px; color: var(--warning); background: var(--warning-soft); font-size: calc(8px * var(--font-scale)); font-style: normal; font-weight: 720;
}
.tool-strip[data-v-1a074fc3],
.project-actions[data-v-1a074fc3],
.publish-zone[data-v-1a074fc3] {
  display: flex;
  align-items: center;
  gap: 6px;
}
.publish-zone[data-v-1a074fc3] {
  padding: 0 12px;
  border-left: 1px solid var(--line);
}
@media (max-width: 1240px) {
.workspace-topbar[data-v-1a074fc3] {
    grid-template-columns: 68px minmax(480px, 1fr) auto;
}
.brand-zone[data-v-1a074fc3] {
    justify-content: center;
    padding: 0;
}
.brand-copy[data-v-1a074fc3] {
    display: none;
}
.project-actions .app-button[data-v-1a074fc3]:first-child {
    display: none;
}
}

.workspace-sidebar[data-v-adf780d3] {
  position: fixed;
  z-index: 30;
  inset: var(--topbar-height) auto 0 0;
  width: var(--sidebar-width);
  display: flex;
  flex-direction: column;
  border-right: 1px solid var(--line);
  background: var(--panel);
}
.workspace-switcher[data-v-adf780d3] {
  min-height: 52px;
  margin: 12px;
  display: flex;
  align-items: center;
  gap: 9px;
  padding: 8px 9px;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  text-align: left;
  background: var(--surface);
}
.workspace-switcher[data-v-adf780d3]:hover {
  border-color: var(--line-strong);
}
.sidebar-workspace-menu[data-v-adf780d3] { position: absolute; z-index: 12; top: 68px; left: 12px; right: 12px; display: grid; gap: 2px; padding: 5px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--surface-raised); box-shadow: var(--shadow-sm);
}.sidebar-workspace-menu button[data-v-adf780d3] { min-height: 36px; display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 0 8px; border-radius: var(--radius-xs); color: var(--ink-2); text-align: left; background: transparent;
}.sidebar-workspace-menu button small[data-v-adf780d3] { color: var(--ink-3); font-size: calc(7.5px * var(--font-scale));
}.sidebar-workspace-menu button[data-v-adf780d3]:hover, .sidebar-workspace-menu button.active[data-v-adf780d3] { color: var(--ink); background: var(--surface-muted);
}
.workspace-avatar[data-v-adf780d3] {
  width: 28px;
  height: 28px;
  display: grid;
  flex: 0 0 auto;
  place-items: center;
  border-radius: var(--radius-sm);
  color: var(--accent-strong);
  background: var(--accent-soft);
  font-size: calc(10px * var(--font-scale));
  font-weight: 780;
}
.workspace-copy[data-v-adf780d3] {
  min-width: 0;
  flex: 1;
}
.workspace-copy strong[data-v-adf780d3],
.workspace-copy small[data-v-adf780d3] {
  display: block;
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.workspace-copy strong[data-v-adf780d3] {
  font-size: calc(11px * var(--font-scale));
}
.workspace-copy small[data-v-adf780d3] {
  margin-top: 2px;
  color: var(--ink-3);
  font-size: calc(9px * var(--font-scale));
}
.workspace-chevron[data-v-adf780d3] {
  color: var(--ink-3);
}
.primary-nav[data-v-adf780d3] {
  display: grid;
  gap: 3px;
  padding: 0 8px 11px;
}
.nav-link[data-v-adf780d3],
.foot-link[data-v-adf780d3] {
  display: flex;
  align-items: center;
  gap: 9px;
  border-radius: var(--radius-sm);
  color: var(--ink-2);
}
.nav-link[data-v-adf780d3] {
  min-height: 35px;
  padding: 0 10px;
  font-size: calc(11.5px * var(--font-scale));
}
.nav-link[data-v-adf780d3]:hover,
.foot-link[data-v-adf780d3]:hover {
  color: var(--ink);
  background: var(--surface-muted);
}
.nav-link.active[data-v-adf780d3] {
  color: var(--accent-strong);
  background: var(--accent-soft);
  font-weight: 680;
}
.node-tree[data-v-adf780d3] {
  min-height: 0;
  display: flex;
  flex: 1;
  flex-direction: column;
  border-top: 1px solid var(--line);
}
.node-tree header[data-v-adf780d3] {
  min-height: 40px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 0 11px 0 14px;
  color: var(--ink-3);
  font-size: calc(10px * var(--font-scale));
  font-weight: 700;
}
.node-tree header button[data-v-adf780d3] {
  width: 25px;
  height: 25px;
  display: grid;
  place-items: center;
  border-radius: var(--radius-xs);
  color: var(--ink-2);
  background: transparent;
}
.node-tree header button[data-v-adf780d3]:hover {
  background: var(--surface-muted);
}
.tree-scroll[data-v-adf780d3] {
  min-height: 0;
  overflow: auto;
  padding: 0 8px;
}
.tree-item[data-v-adf780d3] {
  width: 100%;
  min-height: 35px;
  display: grid;
  grid-template-columns: 19px minmax(0, 1fr) auto;
  align-items: center;
  gap: 8px;
  padding: 0 8px;
  border-radius: var(--radius-xs);
  color: var(--ink-2);
  text-align: left;
  background: transparent;
  font-size: calc(10.5px * var(--font-scale));
}
.tree-item > span[data-v-adf780d3]:nth-child(2) {
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.tree-item[data-v-adf780d3]:hover,
.tree-item.active[data-v-adf780d3] {
  color: var(--ink);
  background: var(--surface-muted);
}
.tree-item.active[data-v-adf780d3] {
  font-weight: 650;
}
.tree-glyph[data-v-adf780d3] {
  width: 18px;
  height: 18px;
  display: grid;
  place-items: center;
  border: 1px solid var(--line);
  border-radius: 5px;
  background: var(--surface);
  font-family: var(--font-mono);
  font-size: calc(8px * var(--font-scale));
  font-weight: 750;
}
.tree-tail[data-v-adf780d3] {
  color: var(--ink-3);
}
.sidebar-foot[data-v-adf780d3] {
  display: grid;
  gap: 3px;
  padding: 9px 8px 11px;
  border-top: 1px solid var(--line);
}
.foot-link[data-v-adf780d3] {
  min-height: 33px;
  padding: 0 9px;
  font-size: calc(10.5px * var(--font-scale));
}
.local-state[data-v-adf780d3] {
  margin: 7px 4px 0;
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 9px;
  border-radius: var(--radius-sm);
  color: var(--success);
  background: var(--success-soft);
}
.local-state strong[data-v-adf780d3],
.local-state small[data-v-adf780d3] {
  display: block;
}
.local-state strong[data-v-adf780d3] {
  font-size: calc(9.5px * var(--font-scale));
}
.local-state small[data-v-adf780d3] {
  margin-top: 3px;
  opacity: 0.8;
  font-size: calc(8.5px * var(--font-scale));
}
@media (max-width: 1080px) {
.workspace-sidebar[data-v-adf780d3] {
    width: 68px;
}
.workspace-switcher[data-v-adf780d3] {
    justify-content: center;
    min-height: 46px;
    margin: 10px;
    padding: 0;
}
.workspace-copy[data-v-adf780d3],
  .workspace-chevron[data-v-adf780d3],
  .nav-link span[data-v-adf780d3],
  .node-tree[data-v-adf780d3],
  .foot-link span[data-v-adf780d3],
  .local-state[data-v-adf780d3] {
    display: none;
}
.nav-link[data-v-adf780d3],
  .foot-link[data-v-adf780d3] {
    justify-content: center;
    padding: 0;
}
}

.workspace-layout[data-v-47e2c1e0] {
  width: 100%;
  height: 100%;
  overflow: hidden;
  background: var(--canvas);
}
.workspace-view[data-v-47e2c1e0] {
  position: fixed;
  inset: var(--topbar-height) 0 0 var(--sidebar-width);
  min-width: 0;
  overflow: hidden;
}
.workspace-view[data-v-47e2c1e0] >  * {
  width: 100%;
  height: 100%;
}
.workspace-page-enter-active[data-v-47e2c1e0],
.workspace-page-leave-active[data-v-47e2c1e0] {
  transition: opacity var(--duration-state) ease, transform var(--duration-state) var(--ease-out-quart);
}
.workspace-page-enter-from[data-v-47e2c1e0] {
  opacity: 0;
  transform: translateY(6px);
}
.workspace-page-leave-to[data-v-47e2c1e0] {
  opacity: 0;
  transform: translateY(-3px);
}
@media (max-width: 1080px) {
.workspace-view[data-v-47e2c1e0] {
    left: 68px;
}
}

/* 画板式统一外壳：节点容器透明，卡片本体是 .content-card（内容节点）/ .page-frame（页面节点） */
.canvas-node[data-v-bed8467c] {
  --node-color: var(--accent);
  --node-soft: var(--accent-soft);
  --node-border: var(--accent-border);
  position: absolute;
  z-index: var(--z-canvas-node);
  display: flex;
  flex-direction: column;
  background: transparent;
}
.node-requirement[data-v-bed8467c] { --node-color: var(--warning); --node-soft: var(--warning-soft); --node-border: color-mix(in srgb, var(--warning) 30%, var(--line));
}
.node-text[data-v-bed8467c] { --node-color: var(--ink-2); --node-soft: var(--surface-muted); --node-border: var(--line-strong);
}
.node-image[data-v-bed8467c] { --node-color: var(--accent); --node-soft: var(--accent-soft); --node-border: var(--accent-border);
}
.node-document[data-v-bed8467c] { --node-color: #0ea5e9; --node-soft: #e7f6fd; --node-border: color-mix(in srgb, #0ea5e9 26%, var(--line));
}
.node-prd[data-v-bed8467c] { --node-color: var(--accent); --node-soft: var(--accent-soft); --node-border: var(--accent-border);
}
.node-feature[data-v-bed8467c] { --node-color: var(--success); --node-soft: var(--success-soft); --node-border: color-mix(in srgb, var(--success) 28%, var(--line));
}
.node-ui-spec[data-v-bed8467c] { --node-color: var(--ink-2); --node-soft: var(--surface-muted); --node-border: var(--line-strong);
}
.node-html-page[data-v-bed8467c] { --node-color: var(--accent); --node-soft: var(--accent-soft); --node-border: var(--accent-border);
}

/* -- HTML 页面节点：整体做成与「设计稿总览」demo 一致的卡片（头栏+预览+脚条+手柄+可折叠）-- */
.canvas-node.node-html-page[data-v-bed8467c] {
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 18px;
  box-shadow: 0 14px 40px rgba(22, 24, 28, 0.10);
  transition: box-shadow 0.15s ease, border-color 0.15s ease;
}
.canvas-node.node-html-page[data-v-bed8467c]:hover { box-shadow: 0 20px 52px rgba(22, 24, 28, 0.15);
}
.canvas-node.node-html-page.selected[data-v-bed8467c] { border-color: var(--accent); box-shadow: 0 0 0 3px rgba(44, 95, 224, 0.14), 0 20px 52px rgba(22, 24, 28, 0.15);
}
.canvas-node.node-html-page.connection-source[data-v-bed8467c] { box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent) 60%, transparent), 0 18px 40px rgba(22, 24, 28, 0.18);
}
.canvas-node.node-html-page.connection-target[data-v-bed8467c] { box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent) 40%, transparent), 0 18px 40px rgba(22, 24, 28, 0.18);
}
.demo-head[data-v-bed8467c] {
  display: flex; align-items: center; gap: 8px; height: 38px; padding: 0 9px 0 12px;
  cursor: grab; border-bottom: 1px solid var(--line); background: #fbfbfd; flex-shrink: 0;
  border-radius: 17px 17px 0 0;
}
.demo-head[data-v-bed8467c]:active { cursor: grabbing;
}
.demo-dot[data-v-bed8467c] { width: 8px; height: 8px; border-radius: 50%; background: var(--accent); flex-shrink: 0;
}
.demo-name[data-v-bed8467c] { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--ink); font-size: 12.5px; font-weight: 650;
}
.demo-actions[data-v-bed8467c] { display: flex; align-items: center; gap: 3px;
}
.demo-action[data-v-bed8467c] { width: 23px; height: 23px; border-radius: 6px; display: grid; place-items: center; color: var(--ink-3); background: transparent; transition: color 0.15s ease, background 0.15s ease;
}
.demo-action[data-v-bed8467c]:hover { color: var(--accent); background: var(--accent-soft);
}
.demo-body[data-v-bed8467c] { flex: 1; min-height: 0; position: relative;
}

/* 预览区作为卡片正体内部的一块，去掉自身圆角/描边/阴影，统一交由外层卡片呈现 */
.canvas-node.node-html-page .site-mini.page-frame[data-v-bed8467c] {
  margin: 0; overflow: hidden; border: 0; border-radius: 0; outline: none; box-shadow: none; background: #fff;
}
.canvas-node.node-html-page.selected .site-mini.page-frame[data-v-bed8467c],
.canvas-node.node-html-page.connection-source .site-mini.page-frame[data-v-bed8467c],
.canvas-node.node-html-page.connection-target .site-mini.page-frame[data-v-bed8467c] { box-shadow: none; border-color: transparent;
}
.demo-foot[data-v-bed8467c] {
  height: 32px; display: flex; align-items: center; gap: 10px; padding: 0 12px;
  color: var(--ink-3); font-size: 10.5px; border-top: 1px solid var(--line);
  background: #fbfbfd; flex-shrink: 0; user-select: none; border-radius: 0 0 17px 17px;
}
.demo-foot-status[data-v-bed8467c] { display: flex; flex: none; align-items: center; gap: 5px; font-weight: 600; white-space: nowrap;
}
.demo-foot-status i[data-v-bed8467c] { width: 6px; height: 6px; border-radius: 50%; background: currentColor;
}
.demo-foot-status.ready[data-v-bed8467c] { color: #17a34a;
}
.demo-foot-status.draft[data-v-bed8467c] { color: var(--ink-3);
}
.demo-foot-status.generating[data-v-bed8467c] { color: var(--accent);
}
.demo-foot-status.modified[data-v-bed8467c] { color: #e0a20f;
}
.demo-foot-status.failed[data-v-bed8467c] { color: #e5484d;
}
.demo-foot-meta[data-v-bed8467c] { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.demo-foot-hint[data-v-bed8467c] { margin-left: auto; white-space: nowrap;
}

/* 所有节点共用的八方向缩放手柄：命中区保持宽松，视觉只在悬停/选中时出现。 */
.node-resize[data-v-bed8467c] { position: absolute; z-index: var(--z-floating-control); opacity: 0; transition: opacity var(--duration-fast) ease, background var(--duration-fast) ease;
}
.canvas-node:hover > .node-resize[data-v-bed8467c],
.canvas-node.selected > .node-resize[data-v-bed8467c],
.canvas-node.resizing > .node-resize[data-v-bed8467c] { opacity: 1;
}
.node-resize.n[data-v-bed8467c] { top: -5px; right: 14px; left: 14px; height: 10px; cursor: ns-resize;
}
.node-resize.e[data-v-bed8467c] { top: 14px; right: -5px; bottom: 14px; width: 10px; cursor: ew-resize;
}
.node-resize.s[data-v-bed8467c] { right: 14px; bottom: -5px; left: 14px; height: 10px; cursor: ns-resize;
}
.node-resize.w[data-v-bed8467c] { top: 14px; bottom: 14px; left: -5px; width: 10px; cursor: ew-resize;
}
.node-resize.ne[data-v-bed8467c], .node-resize.se[data-v-bed8467c], .node-resize.sw[data-v-bed8467c], .node-resize.nw[data-v-bed8467c] {
  width: 18px;
  height: 18px;
  transform: scale(var(--canvas-control-scale));
  transform-origin: center;
}
.node-resize.ne[data-v-bed8467c] { top: -9px; right: -9px; cursor: nesw-resize;
}
.node-resize.se[data-v-bed8467c] { right: -9px; bottom: -9px; cursor: nwse-resize;
}
.node-resize.sw[data-v-bed8467c] { bottom: -9px; left: -9px; cursor: nesw-resize;
}
.node-resize.nw[data-v-bed8467c] { top: -9px; left: -9px; cursor: nwse-resize;
}
.node-resize.n[data-v-bed8467c]:hover, .node-resize.s[data-v-bed8467c]:hover { background: linear-gradient(transparent 4px, var(--accent) 4px, var(--accent) 6px, transparent 6px);
}
.node-resize.e[data-v-bed8467c]:hover { background: linear-gradient(90deg, transparent 4px, var(--accent) 4px, var(--accent) 6px, transparent 6px);
}
.node-resize.w[data-v-bed8467c]:hover { background: linear-gradient(90deg, transparent 4px, var(--accent) 4px, var(--accent) 6px, transparent 6px);
}
.node-resize.ne[data-v-bed8467c]::after, .node-resize.se[data-v-bed8467c]::after, .node-resize.sw[data-v-bed8467c]::after, .node-resize.nw[data-v-bed8467c]::after {
  content: ""; position: absolute; top: 5px; left: 5px; width: 7px; height: 7px;
  box-sizing: border-box; border: 1.5px solid var(--accent); background: #fff;
}

/* 拖动中：禁用过渡、提升层级、隔离 iframe 指针事件，避免每帧重绘预览造成卡顿 */
.canvas-node.dragging[data-v-bed8467c] { z-index: var(--z-canvas-selected); transition: none; will-change: transform;
}
.canvas-node.dragging iframe[data-v-bed8467c] { pointer-events: none;
}
.canvas-node.dragging .preview-shield[data-v-bed8467c] { cursor: grabbing;
}
@media (prefers-reduced-motion: reduce) {
.canvas-node.node-html-page[data-v-bed8467c], .demo-action[data-v-bed8467c] { transition: none;
}
}
.canvas-node:hover .content-card[data-v-bed8467c] { box-shadow: 0 12px 30px rgb(23 30 45 / 0.13), 0 2px 5px rgb(23 30 45 / 0.07);
}
.canvas-node.selected[data-v-bed8467c] { z-index: var(--z-canvas-selected);
}
.canvas-node.selected .content-card[data-v-bed8467c] { box-shadow: 0 0 0 2px var(--accent), 0 10px 26px rgb(23 30 45 / 0.12);
}
.canvas-node.menu-active[data-v-bed8467c] { z-index: var(--z-canvas-menu);
}
.canvas-node.connection-source .content-card[data-v-bed8467c] { box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent) 60%, transparent), 0 10px 26px rgb(23 30 45 / 0.12);
}
.canvas-node.connection-target .content-card[data-v-bed8467c] { box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent) 40%, transparent), 0 10px 26px rgb(23 30 45 / 0.12);
}
.type-chip[data-v-bed8467c] { flex: none; padding: 2px 7px; border-radius: 6px; color: var(--node-color); background: color-mix(in srgb, var(--node-color) 10%, #fff); font-size: calc(8.5px * var(--font-scale)); font-weight: 750;
}
.content-card[data-v-bed8467c] {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  background: var(--surface);
  border-radius: 12px;
  border-top: 3px solid var(--node-color);
  outline: 1px solid rgb(23 30 45 / 0.05);
  box-shadow: 0 10px 26px rgb(23 30 45 / 0.10), 0 1px 3px rgb(23 30 45 / 0.05);
  transition: box-shadow var(--duration-fast) ease;
}
.content-card .node-body[data-v-bed8467c] { flex: 1;
}
.canvas-node:not(.node-html-page) .content-card[data-v-bed8467c] { overflow: hidden;
}
.canvas-node:not(.node-html-page) .node-body[data-v-bed8467c] { min-height: 0; overflow: auto;
}

/* 图片节点直接呈现素材本身，不叠加卡片描边、顶色条、阴影或状态底栏。 */
.canvas-node.node-image .content-card[data-v-bed8467c],
.canvas-node.node-image:hover .content-card[data-v-bed8467c] {
  border: 0;
  border-radius: 0;
  outline: 0;
  background: transparent;
  box-shadow: none;
}
.canvas-node.node-image.selected .content-card[data-v-bed8467c] { box-shadow: 0 0 0 var(--canvas-selection-width) var(--accent);
}
.canvas-node.node-image.connection-source .content-card[data-v-bed8467c] { box-shadow: 0 0 0 var(--canvas-selection-width) color-mix(in srgb, var(--accent) 72%, transparent);
}
.canvas-node.node-image.connection-target .content-card[data-v-bed8467c] { box-shadow: 0 0 0 var(--canvas-selection-width) color-mix(in srgb, var(--accent) 54%, transparent);
}
.canvas-node.node-image .node-body[data-v-bed8467c] { display: flex; padding: 0; overflow: hidden;
}
.canvas-node.node-image .page-meta[data-v-bed8467c] {
  position: absolute;
  z-index: var(--z-floating-control);
  top: auto;
  right: auto;
  bottom: calc(100% + var(--canvas-control-gap));
  left: 50%;
  width: max-content;
  max-width: calc(100% - 16px);
  min-height: 30px;
  margin: 0;
  padding: 3px 4px 3px 9px;
  border-radius: 8px;
  color: #fff;
  background: rgb(17 20 26 / 0.78);
  box-shadow: 0 2px 6px rgb(17 20 26 / 0.18);
  opacity: 0;
  transform: translateX(-50%) scale(var(--canvas-control-scale));
  transform-origin: bottom center;
  transition: opacity var(--duration-fast) ease;
}
.canvas-node.node-image:hover .page-meta[data-v-bed8467c],
.canvas-node.node-image.selected .page-meta[data-v-bed8467c],
.canvas-node.node-image.menu-active .page-meta[data-v-bed8467c] { opacity: 1;
}
.canvas-node.node-image .type-chip[data-v-bed8467c] { display: none;
}
.canvas-node.node-image .page-name[data-v-bed8467c] { max-width: 220px; padding: 0; color: #fff; background: transparent; box-shadow: none; font-size: calc(11.5px * var(--font-scale)); user-select: none;
}
.canvas-node.node-image .page-name[data-v-bed8467c]:hover { color: #fff;
}
.canvas-node.node-image .page-name[data-v-bed8467c]:focus-visible { outline-color: #fff; outline-offset: 1px;
}
.canvas-node.node-image .page-menu-button[data-v-bed8467c] { color: #fff;
}
.canvas-node.node-image .page-menu-button[data-v-bed8467c]:hover { color: #fff; background: rgb(255 255 255 / 0.16);
}
.canvas-node.node-image .page-menu[data-v-bed8467c] { top: calc(100% + 4px); right: auto; left: 0; width: 174px; color: var(--ink);
}
.canvas-node.node-image .node-menu button[data-v-bed8467c] { height: 35px; color: var(--ink-2); background: transparent; font-size: calc(11px * var(--font-scale));
}
.canvas-node.node-image .node-menu button[data-v-bed8467c]:hover { color: var(--ink); background: var(--surface-muted);
}
.canvas-node.node-image .node-menu button.danger[data-v-bed8467c] { color: var(--danger);
}
.canvas-node.node-image .node-menu button.danger[data-v-bed8467c]:hover { color: #fff; background: var(--danger);
}
.card-foot[data-v-bed8467c] { display: flex; align-items: center; gap: 8px; padding: 8px 14px 11px; color: var(--ink-3); font-size: calc(8px * var(--font-scale));
}
.card-foot .st[data-v-bed8467c] { display: flex; flex: none; align-items: center; gap: 4px; font-weight: 650; white-space: nowrap;
}
.card-foot .st i[data-v-bed8467c] { width: 5px; height: 5px; border-radius: 99px; background: currentColor;
}
.card-foot .st.ready[data-v-bed8467c] { color: var(--success);
}
.card-foot .st.draft[data-v-bed8467c] { color: var(--ink-3);
}
.card-foot .st.generating[data-v-bed8467c] { color: var(--accent);
}
.card-foot .st.modified[data-v-bed8467c] { color: var(--warning);
}
.card-foot .st.failed[data-v-bed8467c] { color: var(--danger);
}
.card-foot em[data-v-bed8467c] { min-width: 0; overflow: hidden; margin-left: auto; font-style: normal; text-overflow: ellipsis; white-space: nowrap;
}
@keyframes generating-pulse-bed8467c {
0%, 100% { opacity: 0.52;
}
50% { opacity: 1;
}
}
.node-menu[data-v-bed8467c],
.branch-menu[data-v-bed8467c] {
  position: absolute;
  z-index: var(--z-dropdown);
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  background: var(--surface-raised);
  box-shadow: 0 6px 8px rgb(34 44 58 / 0.12);
}
.node-menu[data-v-bed8467c] {
  top: 46px;
  right: 8px;
  width: 145px;
  padding: 5px;
}
.node-menu button[data-v-bed8467c] {
  width: 100%;
  height: 32px;
  display: flex;
  align-items: center;
  gap: 8px;
  padding: 0 8px;
  border-radius: 6px;
  text-align: left;
  background: transparent;
  font-size: calc(10px * var(--font-scale));
  transition: color var(--duration-fast) ease, background var(--duration-fast) ease, padding var(--duration-fast) var(--ease-out-quart);
}
.node-menu button[data-v-bed8467c]:hover { padding-left: 11px; background: var(--surface-muted);
}
.node-menu button.prd-edit-action[data-v-bed8467c] { color: var(--accent); font-weight: 700;
}
.node-menu button.prd-edit-action[data-v-bed8467c]:hover { background: var(--accent-soft);
}
.node-menu button.prd-edit-action[data-v-bed8467c]:disabled { cursor: wait; color: var(--ink-3); background: transparent; opacity: .72;
}
.menu-divider[data-v-bed8467c] { display: block; height: 1px; margin: 4px 3px; background: var(--line);
}
.node-menu button.danger[data-v-bed8467c] { color: var(--danger);
}
.node-body[data-v-bed8467c] { padding: 13px 14px 12px;
}
.canvas-node.node-text .node-body[data-v-bed8467c] { display: flex; padding: 10px 12px 8px;
}
.inline-text-editor[data-v-bed8467c] {
  width: 100%;
  min-width: 0;
  min-height: 100%;
  flex: 1;
  margin: 0;
  padding: 3px 2px;
  resize: none;
  overflow: auto;
  border: 0;
  border-radius: 4px;
  outline: 0;
  color: var(--ink);
  background: transparent;
  font: inherit;
  font-size: calc(10.5px * var(--font-scale));
  line-height: 1.65;
  text-align: left;
  white-space: pre-wrap;
  caret-color: var(--accent);
  cursor: text;
  transition: background var(--duration-fast) ease, box-shadow var(--duration-fast) ease;
}
.inline-text-editor[data-v-bed8467c]::placeholder { color: var(--ink-3); opacity: 1;
}
.inline-text-editor[data-v-bed8467c]:hover { background: color-mix(in srgb, var(--surface-muted) 58%, transparent);
}
.inline-text-editor[data-v-bed8467c]:focus {
  background: color-mix(in srgb, var(--accent-soft) 42%, transparent);
  box-shadow: inset 0 0 0 1px color-mix(in srgb, var(--accent) 28%, transparent);
}
.summary[data-v-bed8467c], .node-description[data-v-bed8467c] { display: -webkit-box; overflow: hidden; margin: 0; color: var(--ink-2); font-size: calc(10px * var(--font-scale)); line-height: 1.6; text-wrap: pretty; -webkit-box-orient: vertical; -webkit-line-clamp: 4;
}
.requirement-metrics span[data-v-bed8467c] { color: color-mix(in srgb, var(--warning) 72%, var(--ink)); background: var(--warning-soft);
}
.node-description[data-v-bed8467c] { margin-bottom: 12px; -webkit-line-clamp: 2;
}
.chip-row[data-v-bed8467c] {
  display: flex;
  flex-wrap: wrap;
  gap: 5px;
  margin-top: 11px;
}
.chip-row span[data-v-bed8467c] {
  padding: 3px 7px;
  border: 1px solid var(--line);
  border-radius: 999px;
  color: var(--ink-2);
  background: var(--surface);
  font-size: calc(8px * var(--font-scale));
}
.outline-list[data-v-bed8467c] { display: grid; gap: 5px;
}
.outline-item[data-v-bed8467c] { min-height: 29px; display: grid; grid-template-columns: 20px 1fr; align-items: center; gap: 7px; padding: 3px 6px; border-radius: 6px; background: var(--surface-muted);
}
.outline-item span[data-v-bed8467c] { width: 18px; height: 18px; display: grid; place-items: center; border-radius: 5px; color: var(--accent); background: var(--surface); font-family: var(--font-mono); font-size: calc(7.5px * var(--font-scale)); font-weight: 750;
}
.outline-item p[data-v-bed8467c] { overflow: hidden; margin: 0; color: var(--ink-2); font-size: calc(9px * var(--font-scale)); line-height: 1.4; text-overflow: ellipsis; white-space: nowrap;
}
.outline-empty[data-v-bed8467c] { padding: 10px; border: 1px dashed var(--line-strong); border-radius: 7px; color: var(--ink-3); font-size: calc(8.5px * var(--font-scale)); line-height: 1.45; text-align: center;
}
.node-content[data-v-bed8467c] { display: -webkit-box; overflow: hidden; margin: 0; color: var(--ink-2); font-size: calc(10px * var(--font-scale)); line-height: 1.6; text-wrap: pretty; -webkit-box-orient: vertical; -webkit-line-clamp: 5;
}
.node-image-preview[data-v-bed8467c] { width: 100%; height: 100%; display: block; object-fit: contain; border: 0; border-radius: 0;
}
.node-image-placeholder[data-v-bed8467c] { min-height: 96px; display: grid; place-items: center; align-content: center; gap: 8px; padding: 10px; border: 1px dashed var(--line-strong); border-radius: 8px; color: var(--ink-3); font-size: calc(9px * var(--font-scale)); text-align: center;
}
.doc-attach[data-v-bed8467c] { display: flex; align-items: center; gap: 8px; min-height: 52px; padding: 10px 12px; border: 1px solid var(--line); border-radius: 8px; color: var(--accent); background: var(--accent-soft);
}
.doc-attach span[data-v-bed8467c] { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: calc(10px * var(--font-scale)); font-weight: 600;
}
.doc-attach[data-v-bed8467c]:hover { border-color: var(--accent);
}
.feature-content[data-v-bed8467c] { min-height: 62px; display: flex; flex-direction: column; justify-content: space-between; gap: 10px;
}
.feature-content p[data-v-bed8467c] { display: -webkit-box; overflow: hidden; margin: 0; color: var(--ink-2); font-size: calc(10px * var(--font-scale)); line-height: 1.55; text-wrap: pretty; -webkit-box-orient: vertical; -webkit-line-clamp: 3;
}
.feature-meta[data-v-bed8467c] { min-height: 20px; display: flex; flex-wrap: wrap; align-items: center; gap: 5px;
}
.feature-meta span[data-v-bed8467c] { padding: 3px 7px; border-radius: 999px; color: var(--ink-3); background: var(--surface-muted); font-size: calc(7.5px * var(--font-scale)); font-weight: 650;
}
.feature-meta .feature-id[data-v-bed8467c] { color: var(--success); background: var(--success-soft); font-family: var(--font-mono);
}
.feature-meta .spec-count[data-v-bed8467c] { color: var(--ink-2);
}
.feature-meta .priority[data-v-bed8467c] { color: var(--accent-strong); background: var(--accent-soft); font-family: var(--font-mono);
}
.feature-meta .priority.p1[data-v-bed8467c] { color: var(--danger); background: color-mix(in srgb, var(--danger) 10%, var(--surface));
}
.feature-meta .priority.p3[data-v-bed8467c] { color: var(--ink-3); background: var(--surface-muted);
}
.palette-preview[data-v-bed8467c] { height: 26px; display: flex; overflow: hidden; margin-bottom: 11px; border: 1px solid var(--line); border-radius: 7px;
}
.palette-preview i[data-v-bed8467c] { flex: 1;
}
.palette-preview .blue[data-v-bed8467c] { background: #2c5fe0;
}
.palette-preview .ink[data-v-bed8467c] { background: #17191d;
}
.palette-preview .paper[data-v-bed8467c] { background: #ffffff;
}
.palette-preview .muted[data-v-bed8467c] { background: #eef1f5;
}
.token-list[data-v-bed8467c] { display: grid; gap: 7px;
}
.token-list > div[data-v-bed8467c] { display: grid; grid-template-columns: 28px 1fr auto; align-items: center; gap: 8px; color: var(--ink-2); font-size: calc(9.5px * var(--font-scale));
}
.token-list strong[data-v-bed8467c] { font-weight: 550;
}
.token-list em[data-v-bed8467c] { color: var(--ink-3); font-family: var(--font-mono); font-size: calc(8px * var(--font-scale)); font-style: normal;
}
.token-sample[data-v-bed8467c] { width: 28px; height: 19px; border: 1px solid var(--line); border-radius: 5px;
}
.token-sample.blue[data-v-bed8467c] { background: #2c5fe0;
}
.token-sample.paper[data-v-bed8467c] { background: #fff;
}
.token-sample.ink[data-v-bed8467c] { background: #17191d;
}
.branch-button[data-v-bed8467c] {
  position: absolute;
  z-index: var(--z-floating-control);
  right: -42px;
  top: calc(50% - 15px);
  width: 30px;
  height: 30px;
  display: grid;
  place-items: center;
  border: 1px solid var(--line-strong);
  border-radius: 50%;
  color: var(--node-color);
  background: var(--surface);
  box-shadow: var(--shadow-sm);
  transition: color var(--duration-fast) ease, background var(--duration-fast) ease, transform var(--duration-fast) var(--ease-out-quart), box-shadow var(--duration-fast) ease;
}
.branch-button[data-v-bed8467c]:hover { border-color: var(--node-color); color: #f8fbff; background: var(--node-color); box-shadow: 0 0 0 4px color-mix(in srgb, var(--node-color) 10%, transparent); transform: scale(1.06);
}
.branch-button[data-v-bed8467c]:active { transform: scale(0.94);
}
.branch-menu[data-v-bed8467c] { top: calc(50% + 20px); left: calc(100% + 12px); width: 190px;
}
.branch-menu header[data-v-bed8467c] { padding: 8px 10px; border-bottom: 1px solid var(--line); color: var(--ink-3); font-size: calc(8.5px * var(--font-scale)); font-weight: 700;
}
.branch-menu button[data-v-bed8467c] { width: 100%; min-height: 48px; display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 8px 10px; text-align: left; background: transparent; transition: color var(--duration-fast) ease, background var(--duration-fast) ease, padding var(--duration-fast) var(--ease-out-quart);
}
.branch-menu button[data-v-bed8467c]:hover { padding-left: 13px; background: var(--surface-muted);
}
.branch-menu .connect-option[data-v-bed8467c] { color: var(--accent); border-bottom: 1px solid var(--line);
}
.branch-menu strong[data-v-bed8467c], .branch-menu small[data-v-bed8467c] { display: block;
}
.branch-menu strong[data-v-bed8467c] { font-size: calc(10px * var(--font-scale));
}
.branch-menu small[data-v-bed8467c] { margin-top: 3px; color: var(--ink-3); font-size: calc(8.5px * var(--font-scale));
}

/* 图片节点内的操作控件使用反向缩放，画布放大后仍保持固定屏幕尺寸。 */
.canvas-node.node-image > .branch-button[data-v-bed8467c] {
  top: 50%;
  right: auto;
  left: 100%;
  transform: translate(var(--canvas-control-offset), var(--canvas-control-half)) scale(var(--canvas-control-scale));
  transform-origin: 0 0;
}
.canvas-node.node-image > .branch-button[data-v-bed8467c]:hover {
  transform: translate(var(--canvas-control-offset), var(--canvas-control-half)) scale(var(--canvas-control-scale));
}
.canvas-node.node-image > .branch-button[data-v-bed8467c]:active {
  transform: translate(var(--canvas-control-offset), var(--canvas-control-half)) scale(var(--canvas-control-scale));
}
.canvas-node.node-image > .branch-menu[data-v-bed8467c] {
  top: 50%;
  left: 100%;
  transform: translate(var(--canvas-control-offset), var(--canvas-menu-offset-y)) scale(var(--canvas-control-scale));
  transform-origin: 0 0;
}
.input-port[data-v-bed8467c] { position: absolute; z-index: 14; left: -15px; top: calc(50% - 15px); width: 30px; height: 30px; display: grid; place-items: center; border: 1px solid var(--accent); border-radius: 50%; color: var(--accent); background: var(--surface); box-shadow: 0 0 0 4px color-mix(in srgb, var(--accent) 10%, transparent), var(--shadow-sm); animation: port-in-bed8467c var(--duration-state) var(--ease-out-quart) both;
}
.input-port[data-v-bed8467c]:hover { color: #fff; background: var(--accent); transform: scale(1.08);
}
.canvas-node.node-image > .input-port[data-v-bed8467c] {
  top: 50%;
  left: 0;
  animation: none;
  transform: translate(var(--canvas-control-half), var(--canvas-control-half)) scale(var(--canvas-control-scale));
  transform-origin: 0 0;
}
.canvas-node.node-image > .input-port[data-v-bed8467c]:hover {
  transform: translate(var(--canvas-control-half), var(--canvas-control-half)) scale(var(--canvas-control-scale));
}
@keyframes port-in-bed8467c {
from { opacity: 0; transform: scale(0.55);
}
to { opacity: 1; transform: scale(1);
}
}

 /* ---- HTML 页面节点：设计稿总览 demo 同款卡片样式在下方 .canvas-node.node-html-page 系列规则中定义 ---- */
.page-meta[data-v-bed8467c] { position: relative; display: flex; align-items: center; gap: 8px; min-height: 26px; margin-bottom: 8px; padding: 0 2px; cursor: grab; user-select: none;
}
.page-meta[data-v-bed8467c]:active { cursor: grabbing;
}
.page-name[data-v-bed8467c] { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--ink); font-size: calc(11.5px * var(--font-scale)); font-weight: 750; letter-spacing: -0.01em;
}
.name-button[data-v-bed8467c] { font-family: inherit; text-align: left; transition: color var(--duration-fast) ease;
}
.name-button[data-v-bed8467c]:hover { color: var(--accent);
}
.page-generating[data-v-bed8467c] { display: flex; flex: none; align-items: center; gap: 4px; color: var(--accent); font-size: calc(8px * var(--font-scale)); white-space: nowrap; animation: generating-pulse-bed8467c 1.2s ease-in-out infinite;
}
.page-generating i[data-v-bed8467c] { width: 5px; height: 5px; border-radius: 50%; background: currentColor;
}
.page-devices[data-v-bed8467c] { display: flex; flex: none; gap: 2px; margin-left: auto; padding: 3px; border-radius: 9px; background: #17191D; box-shadow: 0 6px 16px rgb(23 30 45 / 0.26);
}
.page-devices button[data-v-bed8467c] { height: 20px; padding: 0 8px; border-radius: 6px; color: #E8ECF4; background: transparent; font-size: calc(8px * var(--font-scale)); font-weight: 650;
}
.page-devices button[data-v-bed8467c]:hover { color: #fff;
}
.page-devices button.on[data-v-bed8467c] { color: #fff; background: var(--accent);
}
.page-menu-anchor[data-v-bed8467c] { position: relative; flex: none; display: grid; place-items: center;
}
.page-menu-button[data-v-bed8467c] { width: 24px; height: 24px; flex: none; display: grid; place-items: center; border-radius: 6px; color: var(--ink-3); background: transparent;
}
.page-menu-button[data-v-bed8467c]:hover { color: var(--ink); background: var(--surface-muted);
}
.page-menu-button[data-v-bed8467c]:active { transform: scale(0.92);
}
.page-menu[data-v-bed8467c] { top: calc(100% + 4px); right: auto; left: 0;
}
.node-html-page .site-mini.page-frame[data-v-bed8467c] { position: relative; margin: 0; overflow: hidden; border: 0; border-radius: 0; outline: none; color: #17191d; background: #fff; box-shadow: none;
}
.page-status-pill[data-v-bed8467c] { position: absolute; z-index: 3; left: 10px; bottom: 10px; display: flex; align-items: center; gap: 5px; padding: 4px 9px; border-radius: 999px; color: #fff; background: rgb(23 25 29 / 0.82); font-size: calc(8px * var(--font-scale)); font-weight: 650; backdrop-filter: blur(4px); pointer-events: none;
}
.page-status-pill i[data-v-bed8467c] { width: 6px; height: 6px; border-radius: 50%; background: #3DDC97;
}
.page-status-pill.draft i[data-v-bed8467c] { background: #A8B0BD;
}
.page-status-pill.generating i[data-v-bed8467c] { background: var(--accent); animation: generating-pulse-bed8467c 1.2s ease-in-out infinite;
}
.page-status-pill.modified i[data-v-bed8467c] { background: #F5B23D;
}
.page-status-pill.failed i[data-v-bed8467c] { background: #FF6B77;
}
.page-under[data-v-bed8467c] { display: flex; align-items: center; gap: 10px; margin-top: 9px; padding: 0 2px;
}
.page-under > span[data-v-bed8467c] { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--ink-3); font-size: calc(8.5px * var(--font-scale));
}
.page-under button[data-v-bed8467c] { display: flex; flex: none; align-items: center; gap: 4px; margin-left: auto; color: var(--accent); font-size: calc(9.5px * var(--font-scale)); font-weight: 700; transition: color var(--duration-fast) ease;
}
.page-under button[data-v-bed8467c]:hover { color: var(--accent-strong);
}
.node-html-page.device-tablet[data-v-bed8467c] { --node-color: var(--accent);
}
.node-html-page.device-mobile[data-v-bed8467c] { --node-color: var(--warning); --node-soft: var(--warning-soft); --node-border: color-mix(in srgb, var(--warning) 30%, var(--line));
}
.site-mini.live-preview[data-v-bed8467c] { display: block; overflow: hidden; background: #fff;
}
.preview-content[data-v-bed8467c] { height: 100%; overflow-x: hidden; overflow-y: auto; background: #fff; scrollbar-width: thin; scrollbar-color: rgb(23 30 45 / 0.22) transparent;
}
/* 缩放盒子：宽度/高度为缩放后的内容尺寸，iframe 在设计尺寸下缩放后被它裁剪，滚动范围=缩放后内容，不滚进空白 */
.preview-scale-box[data-v-bed8467c] { position: relative; overflow: hidden; transform-origin: 0 0;
}
.page-preview-frame[data-v-bed8467c] { position: absolute; top: 0; left: 0; display: block; border: 0; background: #fff; transform-origin: 0 0;
}
.page-preview-state[data-v-bed8467c] { min-height: 260px; display: grid; place-items: center; align-content: center; gap: 9px; padding: 12px; color: var(--ink-3); font-size: calc(9px * var(--font-scale)); text-align: center; box-sizing: border-box;
}
.page-preview-state.page-preview-empty[data-v-bed8467c] { min-height: 200px;
}
.page-preview-empty small[data-v-bed8467c] { line-height: 1.8;
}
.preview-skeleton[data-v-bed8467c] { width: 72%; height: 7px; border-radius: 4px; background: #e4e8ee; animation: skeleton-pulse-bed8467c 1.1s ease-in-out infinite;
}

/* ---- 生成中骨架：页面节点为页面形骨架，其余节点为行条 ---- */
.sk[data-v-bed8467c] { display: block; border-radius: 6px; background: linear-gradient(90deg, #eceff5 25%, #f7f9fc 42%, #eceff5 60%); background-size: 200% 100%; animation: sk-shimmer-bed8467c 1.4s ease-in-out infinite;
}
@keyframes sk-shimmer-bed8467c {
0% { background-position: 200% 0;
}
100% { background-position: -200% 0;
}
}
.page-skeleton[data-v-bed8467c] { height: 100%; padding: 14px 16px; background: #fff;
}
.page-skeleton .sk-nav[data-v-bed8467c] { width: 42%; height: 18px; margin-bottom: 12px;
}
.page-skeleton .sk-hero[data-v-bed8467c] { height: 84px; margin-bottom: 14px; border-radius: 10px;
}
.page-skeleton .sk-line[data-v-bed8467c] { height: 9px; margin-bottom: 9px;
}
.page-skeleton .sk-btn[data-v-bed8467c] { width: 88px; height: 24px; margin: 4px 0 14px; border-radius: 7px;
}
.page-skeleton .sk-card[data-v-bed8467c] { width: 31%; height: 64px; border-radius: 8px;
}
.page-skeleton .sk-cards[data-v-bed8467c] { display: flex; gap: 8px;
}
.sk-line[data-v-bed8467c] { height: 9px; margin-bottom: 9px;
}
.sk-line.w90[data-v-bed8467c] { width: 90%;
}
.sk-line.w85[data-v-bed8467c] { width: 85%;
}
.sk-line.w80[data-v-bed8467c] { width: 80%;
}
.sk-line.w75[data-v-bed8467c] { width: 75%;
}
.sk-line.w70[data-v-bed8467c] { width: 70%;
}
.sk-line.w60[data-v-bed8467c] { width: 60%;
}
.sk-line.w55[data-v-bed8467c] { width: 55%;
}
.body-skeleton[data-v-bed8467c] { min-height: 58px; padding: 3px 1px;
}
.page-preview-state small[data-v-bed8467c] { font-size: inherit;
}
@keyframes skeleton-pulse-bed8467c {
0%, 100% { opacity: 0.45;
}
50% { opacity: 1;
}
}
.page-preview-state.error[data-v-bed8467c] { color: #c53030;
}
.preview-swap-enter-active[data-v-bed8467c], .preview-swap-leave-active[data-v-bed8467c] { transition: opacity var(--duration-state) ease, transform var(--duration-state) var(--ease-out-quart);
}.preview-swap-enter-from[data-v-bed8467c] { opacity: 0; transform: translateX(7px);
}.preview-swap-leave-to[data-v-bed8467c] { opacity: 0; transform: translateX(-4px);
}
@media (prefers-reduced-motion: reduce) {
.canvas-node[data-v-bed8467c], .node-resize[data-v-bed8467c], .node-image .page-meta[data-v-bed8467c], .page-menu-button[data-v-bed8467c], .branch-button[data-v-bed8467c], .branch-menu button[data-v-bed8467c], .preview-swap-enter-active[data-v-bed8467c], .preview-swap-leave-active[data-v-bed8467c], .inline-text-editor[data-v-bed8467c] { transition: none;
}
.page-generating[data-v-bed8467c], .page-status-pill.generating i[data-v-bed8467c], .preview-skeleton[data-v-bed8467c], .input-port[data-v-bed8467c], .sk[data-v-bed8467c] { animation: none;
}
}

.canvas-minimap[data-v-a3a8cd9f] {
  position: absolute;
  z-index: 24;
  right: 16px;
  bottom: 16px;
  width: 184px;
  height: 118px;
  overflow: hidden;
  border: 1px solid var(--line);
  border-radius: 12px;
  outline: 0;
  background: color-mix(in srgb, var(--surface) 94%, transparent);
  box-shadow: 0 10px 28px rgb(30 40 55 / 0.12);
  backdrop-filter: blur(12px);
  cursor: crosshair;
}
.canvas-minimap[data-v-a3a8cd9f]:focus-visible { box-shadow: 0 0 0 2px var(--accent), 0 10px 28px rgb(30 40 55 / 0.12);
}
.canvas-minimap header[data-v-a3a8cd9f] { position: absolute; z-index: 3; top: 7px; left: 9px; display: flex; align-items: center; gap: 4px; color: var(--ink-3); font-size: calc(8px * var(--font-scale)); font-weight: 700; pointer-events: none;
}
.mini-node[data-v-a3a8cd9f] { position: absolute; z-index: 1; min-width: 3px; min-height: 3px; border: 1px solid color-mix(in srgb, var(--accent) 34%, transparent); border-radius: 2px; background: color-mix(in srgb, var(--accent) 30%, transparent); pointer-events: none; transition: inset var(--duration-fast) ease, width var(--duration-fast) ease, height var(--duration-fast) ease, background var(--duration-fast) ease;
}
.mini-node.type-requirement[data-v-a3a8cd9f] { background: color-mix(in srgb, var(--warning) 36%, transparent);
}
.mini-node.type-feature[data-v-a3a8cd9f] { background: color-mix(in srgb, var(--success) 36%, transparent);
}
.mini-node.selected[data-v-a3a8cd9f] { z-index: 2; border-color: var(--accent); background: var(--accent);
}
.mini-viewport[data-v-a3a8cd9f] { position: absolute; z-index: 2; border: 1.5px solid var(--accent); border-radius: 3px; background: color-mix(in srgb, var(--accent) 6%, transparent); pointer-events: none; transition: inset var(--duration-fast) ease, width var(--duration-fast) ease, height var(--duration-fast) ease;
}
.mini-node-enter-active[data-v-a3a8cd9f], .mini-node-leave-active[data-v-a3a8cd9f] { transition: opacity var(--duration-state) ease, transform var(--duration-state) var(--ease-out-quart);
}
.mini-node-enter-from[data-v-a3a8cd9f], .mini-node-leave-to[data-v-a3a8cd9f] { opacity: 0; transform: scale(0.4);
}

.connection-layer[data-v-e26d7dd3] { position: absolute; z-index: 0; left: 0; top: 0; width: 1px; height: 1px; overflow: visible; pointer-events: none;
}
.edge-line[data-v-e26d7dd3], .pending-edge path[data-v-e26d7dd3] { fill: none; stroke: color-mix(in srgb, var(--ink-3) 58%, var(--canvas)); stroke-width: 2; stroke-linecap: round; vector-effect: non-scaling-stroke;
}
.edge-line.active[data-v-e26d7dd3] { stroke: color-mix(in srgb, var(--accent) 70%, var(--canvas));
}
.edge-hit[data-v-e26d7dd3] { fill: none; stroke: transparent; stroke-width: 15; pointer-events: stroke; cursor: pointer; vector-effect: non-scaling-stroke;
}
.edge-dot[data-v-e26d7dd3] { fill: var(--canvas); stroke: var(--line-strong); stroke-width: 2; vector-effect: non-scaling-stroke; transition: stroke var(--duration-fast) ease;
}
.pending-edge path[data-v-e26d7dd3] { stroke: var(--accent); stroke-dasharray: 6 7; animation: pending-flow-e26d7dd3 0.7s linear infinite;
}
.pending-edge circle[data-v-e26d7dd3] { fill: var(--surface); stroke: var(--accent); stroke-width: 2; vector-effect: non-scaling-stroke;
}
.edge-enter-active .edge-line[data-v-e26d7dd3] { animation: edge-draw-e26d7dd3 var(--duration-panel) var(--ease-out-quart) both;
}
.edge-leave-active[data-v-e26d7dd3] { transition: opacity var(--duration-state) ease;
}
.edge-leave-to[data-v-e26d7dd3] { opacity: 0;
}
@keyframes edge-draw-e26d7dd3 {
from { stroke-dasharray: 1; stroke-dashoffset: 1;
}
to { stroke-dasharray: 1; stroke-dashoffset: 0;
}
}
@keyframes pending-flow-e26d7dd3 {
to { stroke-dashoffset: -13;
}
}

.struct-editor[data-v-d6ec7359] { display: grid; gap: 6px;
}
.struct-head[data-v-d6ec7359] { display: flex; align-items: center; gap: 8px; padding: 4px 2px;
}
.struct-label[data-v-d6ec7359] { color: var(--ink); font-size: calc(9.5px * var(--font-scale)); font-weight: 700;
}
.struct-count[data-v-d6ec7359] { min-width: 20px; padding: 2px 6px; border-radius: 999px; color: var(--accent-strong); background: var(--accent-soft); font-family: var(--font-mono); font-size: calc(8px * var(--font-scale)); text-align: center;
}
.struct-add[data-v-d6ec7359] { display: inline-flex; align-items: center; gap: 4px; margin-left: auto; padding: 4px 8px; border-radius: var(--radius-xs); color: var(--accent); font-size: calc(8.5px * var(--font-scale)); font-weight: 650; background: var(--accent-soft);
}
.struct-add[data-v-d6ec7359]:hover { color: var(--accent-deep);
}
.struct-empty[data-v-d6ec7359] { padding: 8px 9px; border: 1px dashed var(--line-strong); border-radius: var(--radius-sm); color: var(--ink-3); font-size: calc(8.5px * var(--font-scale));
}
.struct-item[data-v-d6ec7359] { border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--surface);
}
.struct-title[data-v-d6ec7359] { display: flex; align-items: center; gap: 7px; min-height: 34px; padding: 0 9px; cursor: pointer;
}
.struct-title strong[data-v-d6ec7359] { min-width: 0; overflow: hidden; font-size: calc(9px * var(--font-scale)); text-overflow: ellipsis; white-space: nowrap;
}
.struct-arrow[data-v-d6ec7359] { color: var(--ink-3); transform: rotate(-90deg); transition: transform var(--duration-fast) ease;
}
.struct-arrow.open[data-v-d6ec7359] { transform: rotate(0);
}
.struct-del[data-v-d6ec7359] { margin-left: auto; padding: 3px; border-radius: var(--radius-xs); color: var(--ink-3); opacity: 0.75;
}
.struct-del[data-v-d6ec7359]:hover { color: var(--danger); opacity: 1;
}
.struct-body[data-v-d6ec7359] { display: grid; gap: 8px; padding: 9px; border-top: 1px solid var(--line);
}
.struct-field[data-v-d6ec7359] { display: grid; gap: 4px;
}
.struct-field-name[data-v-d6ec7359] { color: var(--ink-3); font-size: calc(8px * var(--font-scale)); font-weight: 650;
}
.struct-input[data-v-d6ec7359] { width: 100%; border: 1px solid var(--line); border-radius: var(--radius-xs); color: var(--ink); background: var(--surface); font-size: calc(9.5px * var(--font-scale));
}
.struct-input[data-v-d6ec7359] { min-height: 30px; padding: 0 8px;
}
.struct-textarea[data-v-d6ec7359] { min-height: 44px; padding: 6px 8px; line-height: 1.5; resize: vertical;
}
.struct-input[data-v-d6ec7359]:focus { border-color: var(--accent); outline: none;
}
.struct-check[data-v-d6ec7359] { display: inline-flex; align-items: center; gap: 6px;
}
.struct-check input[data-v-d6ec7359] { accent-color: var(--accent);
}

.detail-editor[data-v-076b4df7] { display: grid; gap: 8px;
}
.property-group[data-v-076b4df7] { padding: 13px 12px; border-bottom: 1px solid var(--line);
}
.property-group h3[data-v-076b4df7] { margin: 0 0 11px; display: flex; align-items: center; justify-content: space-between; font-size: calc(10.5px * var(--font-scale));
}
.property-group h3 span[data-v-076b4df7] { color: var(--ink-3); font-size: calc(9.5px * var(--font-scale)); font-weight: 500;
}
.sub-h3[data-v-076b4df7] { margin: 14px 0 8px !important;
}
.field-label[data-v-076b4df7] { display: block; margin: 0 0 5px; color: var(--ink-2); font-size: calc(9px * var(--font-scale)); font-weight: 650;
}
.field-label.second[data-v-076b4df7] { margin-top: 12px;
}
.text-input[data-v-076b4df7], .text-area[data-v-076b4df7] { width: 100%; border: 1px solid var(--line); border-radius: var(--radius-sm); color: var(--ink); background: var(--surface); font-size: calc(10px * var(--font-scale));
}
.text-input[data-v-076b4df7] { min-height: 30px; padding: 0 9px;
}
.text-area[data-v-076b4df7] { min-height: 52px; padding: 7px 9px; line-height: 1.5; resize: vertical;
}
.text-input[data-v-076b4df7]:focus, .text-area[data-v-076b4df7]:focus { border-color: var(--accent); outline: none;
}
.more-group[data-v-076b4df7] { margin-top: 12px; border: 1px solid var(--line); border-radius: var(--radius-sm);
}
.more-group summary[data-v-076b4df7] { padding: 7px 9px; color: var(--ink-2); cursor: pointer; font-size: calc(9px * var(--font-scale)); font-weight: 700; list-style: none;
}
.more-group summary[data-v-076b4df7]::-webkit-details-marker { display: none;
}
.more-group[data-v-076b4df7] > *:not(summary) { margin-left: 9px; margin-right: 9px;
}
.two-col[data-v-076b4df7] { display: grid; grid-template-columns: 1fr 1fr; gap: 8px;
}
.platform-pick[data-v-076b4df7] { margin-top: 12px;
}
.platform-pick .field-label[data-v-076b4df7] { margin-bottom: 6px;
}
.segmented[data-v-076b4df7] { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; padding: 4px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--surface-muted);
}
.segmented button[data-v-076b4df7] { min-height: 30px; display: inline-flex; align-items: center; justify-content: center; gap: 5px; padding: 0 6px; border-radius: calc(var(--radius-sm) - 2px); color: var(--ink-2); font-size: calc(9.5px * var(--font-scale)); font-weight: 650; background: transparent;
}
.segmented button[data-v-076b4df7]:hover { color: var(--ink); background: var(--surface);
}
.segmented button.active[data-v-076b4df7] { color: var(--accent); background: var(--surface); box-shadow: var(--shadow-sm);
}
.save-row[data-v-076b4df7] { display: flex; gap: 8px; margin-top: 12px;
}
.app-button[data-v-076b4df7] { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 32px; padding: 0 12px; border-radius: var(--radius-sm); font-size: calc(9.5px * var(--font-scale)); font-weight: 650;
}
.app-button.primary[data-v-076b4df7] { color: #fff; background: var(--accent);
}
.app-button.primary[data-v-076b4df7]:hover { background: var(--accent-deep);
}
.deep-section[data-v-076b4df7] { display: grid; gap: 12px;
}
.spec-empty[data-v-076b4df7] { margin: 12px; color: var(--ink-3); font-size: calc(9px * var(--font-scale)); line-height: 1.6;
}

.node-inspector[data-v-e7640dcf] {
  width: var(--inspector-width);
  min-width: var(--inspector-width);
  display: flex;
  flex-direction: column;
  border-left: 1px solid var(--line);
  background: var(--panel);
}
.inspector-tabs[data-v-e7640dcf] {
  height: 43px;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  padding: 6px 8px 0;
  border-bottom: 1px solid var(--line);
}
.inspector-tabs button[data-v-e7640dcf] {
  position: relative;
  color: var(--ink-3);
  background: transparent;
  font-size: calc(10.5px * var(--font-scale));
}
.inspector-tabs button.active[data-v-e7640dcf] { color: var(--ink); font-weight: 700;
}
.inspector-tabs button.active[data-v-e7640dcf]::after { content: ''; position: absolute; left: 17px; right: 17px; bottom: -1px; height: 2px; border-radius: 2px 2px 0 0; background: var(--accent);
}
.selected-summary[data-v-e7640dcf] { height: 44px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 0 12px; border-bottom: 1px solid var(--line);
}
.selected-summary span[data-v-e7640dcf] { color: var(--ink-2); font-size: calc(10.5px * var(--font-scale)); font-weight: 650;
}
.selected-summary strong[data-v-e7640dcf] { padding: 4px 6px; border-radius: var(--radius-xs); color: var(--accent-strong); background: var(--accent-soft); font-family: var(--font-mono); font-size: calc(9.5px * var(--font-scale));
}
.inspector-scroll[data-v-e7640dcf] { min-height: 0; flex: 1; overflow: auto;
}
.property-group[data-v-e7640dcf] { padding: 13px 12px; border-bottom: 1px solid var(--line);
}
.property-group h3[data-v-e7640dcf] { margin: 0 0 11px; display: flex; align-items: center; justify-content: space-between; font-size: calc(10.5px * var(--font-scale));
}
.property-group h3 span[data-v-e7640dcf] { color: var(--ink-3); font-size: calc(9.5px * var(--font-scale)); font-weight: 500;
}
.field-label.second[data-v-e7640dcf] { margin-top: 12px;
}
.text-area[data-v-e7640dcf] { min-height: 76px; font-size: calc(10.5px * var(--font-scale));
}
.feature-spec[data-v-e7640dcf] { display: grid; gap: 8px; padding-bottom: 16px;
}
.feature-spec h3[data-v-e7640dcf] { margin-bottom: 2px;
}
.page-contract[data-v-e7640dcf] { display: grid; gap: 6px; padding: 9px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--surface-muted);
}
.page-contract > div[data-v-e7640dcf] { min-width: 0; display: flex; align-items: center; gap: 6px;
}
.page-contract small[data-v-e7640dcf], .page-contract em[data-v-e7640dcf] { color: var(--ink-3); font-size: calc(8.5px * var(--font-scale)); font-style: normal;
}
.page-contract strong[data-v-e7640dcf] { min-width: 0; overflow: hidden; text-overflow: ellipsis; font-size: calc(10px * var(--font-scale)); white-space: nowrap;
}
.page-contract code[data-v-e7640dcf] { min-width: 0; overflow: hidden; color: var(--accent-strong); font-family: var(--font-mono); font-size: calc(8.5px * var(--font-scale)); text-overflow: ellipsis; white-space: nowrap;
}
.page-contract p[data-v-e7640dcf] { margin: 0; color: var(--ink-2); font-size: calc(9px * var(--font-scale)); line-height: 1.5;
}
.page-contract p b[data-v-e7640dcf] { margin-right: 5px; color: var(--ink); font-weight: 700;
}
.feature-spec details[data-v-e7640dcf] { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--surface);
}
.feature-spec details > summary[data-v-e7640dcf] { min-height: 34px; display: flex; align-items: center; gap: 6px; padding: 0 9px; color: var(--ink-2); cursor: pointer; font-size: calc(9.5px * var(--font-scale)); font-weight: 700; list-style: none;
}
.feature-spec details > summary[data-v-e7640dcf]::-webkit-details-marker { display: none;
}
.feature-spec details > summary[data-v-e7640dcf]::before { content: '›'; color: var(--ink-3); transform: rotate(0); transition: transform var(--duration-fast) ease;
}
.feature-spec details[open] > summary[data-v-e7640dcf]::before { transform: rotate(90deg);
}
.feature-spec details > summary span[data-v-e7640dcf] { margin-left: auto; padding: 2px 5px; border-radius: 999px; color: var(--accent-strong); background: var(--accent-soft); font-family: var(--font-mono); font-size: calc(8px * var(--font-scale));
}
.spec-list[data-v-e7640dcf] { display: grid; gap: 1px; border-top: 1px solid var(--line); background: var(--line);
}
.spec-list article[data-v-e7640dcf] { min-width: 0; display: grid; gap: 4px; padding: 8px 9px; background: var(--surface);
}
.spec-list article header[data-v-e7640dcf] { min-width: 0; display: flex; align-items: center; gap: 6px;
}
.spec-list article header strong[data-v-e7640dcf] { min-width: 0; color: var(--ink); font-size: calc(9px * var(--font-scale));
}
.spec-list article header strong i[data-v-e7640dcf] { margin-left: 4px; padding: 1px 4px; border-radius: 3px; color: var(--danger); background: color-mix(in srgb, var(--danger) 9%, var(--surface)); font-size: calc(7px * var(--font-scale)); font-style: normal;
}
.spec-list article header em[data-v-e7640dcf] { margin-left: auto; color: var(--ink-3); font-family: var(--font-mono); font-size: calc(7.5px * var(--font-scale)); font-style: normal;
}
.spec-list article header em.action-primary[data-v-e7640dcf] { color: var(--accent);
}.spec-list article header em.action-danger[data-v-e7640dcf] { color: var(--danger);
}
.spec-list article p[data-v-e7640dcf], .spec-list article small[data-v-e7640dcf] { margin: 0; overflow-wrap: anywhere; color: var(--ink-2); font-size: calc(8.5px * var(--font-scale)); line-height: 1.5;
}
.spec-list article small[data-v-e7640dcf] { display: block; color: var(--ink-3);
}
.spec-list article > code[data-v-e7640dcf] { color: var(--accent-strong); font-family: var(--font-mono); font-size: calc(8px * var(--font-scale)); overflow-wrap: anywhere;
}
.requirement-list article header strong[data-v-e7640dcf] { display: flex; align-items: center; gap: 5px;
}
.requirement-list article header strong i[data-v-e7640dcf] { margin: 0; color: var(--warning); background: var(--warning-soft); font-family: var(--font-mono);
}
.scope-grid[data-v-e7640dcf] { display: grid; gap: 1px; border-top: 1px solid var(--line); background: var(--line);
}
.scope-grid > div[data-v-e7640dcf] { padding: 8px 9px; background: var(--surface);
}
.scope-grid strong[data-v-e7640dcf] { font-size: calc(9px * var(--font-scale));
}
.scope-grid ul[data-v-e7640dcf], .compact-steps[data-v-e7640dcf] { display: grid; gap: 4px; margin: 6px 0 0; padding-left: 18px; color: var(--ink-2); font-size: calc(8.5px * var(--font-scale)); line-height: 1.5;
}
.mini-contract[data-v-e7640dcf] { display: grid; gap: 3px; padding: 6px 7px; border-radius: var(--radius-xs); background: var(--surface-muted);
}
.mini-contract b[data-v-e7640dcf], .mini-contract span[data-v-e7640dcf] { font-size: calc(8px * var(--font-scale));
}.mini-contract span[data-v-e7640dcf] { color: var(--ink-2);
}
.flow-list .compact-steps li small[data-v-e7640dcf] { display: block; margin-top: 2px;
}
.rule-list[data-v-e7640dcf] { display: grid; gap: 6px; margin: 0; padding: 8px 9px 9px 25px; border-top: 1px solid var(--line); color: var(--ink-2); font-size: calc(8.5px * var(--font-scale)); line-height: 1.5;
}
.state-list[data-v-e7640dcf] { border-top: 1px solid var(--line);
}
.spec-empty[data-v-e7640dcf] { margin: 0; padding: 9px; border-top: 1px solid var(--line); color: var(--ink-3); font-size: calc(8.5px * var(--font-scale));
}
.metric-grid[data-v-e7640dcf] { display: grid; grid-template-columns: repeat(4, 1fr); gap: 6px;
}
.metric-grid > div[data-v-e7640dcf] { height: 38px; display: flex; align-items: center; gap: 5px; padding: 0 7px; border: 1px solid var(--line); border-radius: var(--radius-xs); background: var(--surface);
}
.metric-grid small[data-v-e7640dcf] { color: var(--ink-3); font-size: calc(9px * var(--font-scale));
}
.metric-grid strong[data-v-e7640dcf] { font-family: var(--font-mono); font-size: calc(9px * var(--font-scale));
}
.relation-card[data-v-e7640dcf] { width: 100%; min-height: 52px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 9px; padding: 7px; border: 1px solid var(--line); border-radius: var(--radius-sm); text-align: left; background: var(--surface);
}
.relation-card > span[data-v-e7640dcf] { width: 31px; height: 31px; display: grid; place-items: center; border-radius: var(--radius-sm); color: var(--accent); background: var(--accent-soft);
}
.relation-card strong[data-v-e7640dcf], .relation-card small[data-v-e7640dcf] { display: block;
}
.relation-card strong[data-v-e7640dcf] { font-size: calc(9.5px * var(--font-scale));
}
.relation-card small[data-v-e7640dcf] { margin-top: 3px; color: var(--ink-3); font-size: calc(9.5px * var(--font-scale));
}
.relation-list[data-v-e7640dcf] { min-height: 0; overflow: auto; padding: 12px;
}.relation-list section + section[data-v-e7640dcf] { margin-top: 18px;
}.relation-list h3[data-v-e7640dcf] { margin: 0 0 8px; font-size: calc(10.5px * var(--font-scale));
}.relation-list .relation-card + .relation-card[data-v-e7640dcf] { margin-top: 6px;
}.relation-list > section > p[data-v-e7640dcf] { margin: 0; color: var(--ink-3); line-height: 1.5;
}
.ai-edit[data-v-e7640dcf] { margin: 12px; display: grid; grid-template-columns: auto 1fr; gap: 8px; padding: 11px; border: 1px solid var(--accent-border); border-radius: var(--radius-md); background: var(--accent-soft);
}
.ai-icon[data-v-e7640dcf] { width: 30px; height: 30px; display: grid; place-items: center; border-radius: var(--radius-sm); color: var(--accent); background: var(--surface);
}
.ai-edit strong[data-v-e7640dcf] { display: block; color: var(--accent-strong); font-size: calc(10px * var(--font-scale));
}
.ai-edit p[data-v-e7640dcf] { margin: 4px 0 0; color: var(--ink-2); font-size: calc(8.5px * var(--font-scale)); line-height: 1.45;
}
.ai-edit .text-area[data-v-e7640dcf], .ai-edit .app-button[data-v-e7640dcf] { grid-column: 1 / -1;
}
.ai-model[data-v-e7640dcf] { grid-column: 1 / -1; display: grid; gap: 5px;
}
.ai-model span[data-v-e7640dcf] { color: var(--ink-3); font-size: calc(9px * var(--font-scale)); font-weight: 650;
}
.ai-model select[data-v-e7640dcf] { width: 100%; min-height: 34px; padding: 0 9px; border: 1px solid var(--line); border-radius: var(--radius-sm); color: var(--ink); background: var(--surface); font-size: calc(10px * var(--font-scale));
}
.ai-edit .app-button[data-v-e7640dcf] { justify-self: stretch;
}
.empty-tab[data-v-e7640dcf] { min-height: 280px; display: flex; flex: 1; flex-direction: column; align-items: center; justify-content: center; padding: 24px; color: var(--ink-3); text-align: center;
}
.empty-tab strong[data-v-e7640dcf] { margin-top: 10px; color: var(--ink); font-size: calc(11px * var(--font-scale));
}
.empty-tab p[data-v-e7640dcf] { max-width: 190px; margin: 6px 0 0; font-size: calc(9.5px * var(--font-scale)); line-height: 1.55;
}
.version-mini-list[data-v-e7640dcf] { display: grid; gap: 4px; padding: 10px;
}
.version-note[data-v-e7640dcf] { margin: 4px 2px; color: var(--ink-3); font-size: calc(9px * var(--font-scale)); line-height: 1.6;
}
.version-mini-list button[data-v-e7640dcf] { min-height: 54px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 9px; padding: 7px 8px; border-radius: var(--radius-sm); text-align: left; background: transparent;
}
.version-mini-list button[data-v-e7640dcf]:hover { background: var(--surface-muted);
}
.version-mini-list button > span[data-v-e7640dcf] { width: 8px; height: 8px; border: 2px solid var(--accent-border); border-radius: 50%;
}
.version-mini-list strong[data-v-e7640dcf], .version-mini-list small[data-v-e7640dcf] { display: block;
}
.version-mini-list strong[data-v-e7640dcf] { font-size: calc(9.5px * var(--font-scale));
}
.version-mini-list small[data-v-e7640dcf] { margin-top: 3px; color: var(--ink-3); font-size: calc(8px * var(--font-scale));
}
.version-mini-list em[data-v-e7640dcf] { color: var(--success); font-size: calc(8px * var(--font-scale)); font-style: normal;
}
.segmented[data-v-e7640dcf] { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; padding: 4px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--surface-muted);
}
.segmented button[data-v-e7640dcf] { min-height: 30px; padding: 0 6px; border-radius: calc(var(--radius-sm) - 2px); color: var(--ink-2); font-size: calc(9.5px * var(--font-scale)); font-weight: 650; background: transparent;
}
.segmented button[data-v-e7640dcf]:hover { color: var(--ink); background: var(--surface);
}
.segmented button.active[data-v-e7640dcf] { color: var(--accent); background: var(--surface); box-shadow: var(--shadow-sm);
}
.field-hint[data-v-e7640dcf] { margin: 8px 0 0; color: var(--ink-3); font-size: calc(9px * var(--font-scale)); line-height: 1.6;
}

.detail-body[data-v-659dd163] { display: grid; gap: 18px;
}
.d-section h3[data-v-659dd163] { display: flex; align-items: center; gap: 7px; margin: 0 0 9px; font-size: calc(11.5px * var(--font-scale)); font-weight: 750;
}
.d-section h3 span[data-v-659dd163] { padding: 1px 6px; border-radius: 5px; color: var(--accent); background: var(--accent-soft); font-size: calc(9px * var(--font-scale)); font-weight: 700;
}
.d-grid[data-v-659dd163] { display: grid; gap: 9px;
}
.d-field span[data-v-659dd163] { display: block; margin-bottom: 3px; color: var(--ink-3); font-size: calc(8.5px * var(--font-scale)); font-weight: 700;
}
.d-field p[data-v-659dd163] { margin: 0; color: var(--ink-2); font-size: calc(10.5px * var(--font-scale)); line-height: 1.7;
}
.d-text[data-v-659dd163] { margin: 0; color: var(--ink-2); font-size: calc(10.5px * var(--font-scale)); line-height: 1.75; white-space: pre-wrap;
}
.d-two-col[data-v-659dd163] { display: grid; grid-template-columns: 1fr 1fr; gap: 9px;
}
.d-list-card[data-v-659dd163] { padding: 10px 12px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--surface-muted);
}
.d-list-card strong[data-v-659dd163] { display: block; margin-bottom: 6px; font-size: calc(9px * var(--font-scale));
}
.d-list-card ul[data-v-659dd163] { margin: 0; padding-left: 16px; color: var(--ink-2); font-size: calc(9.5px * var(--font-scale)); line-height: 1.8;
}
.d-objects[data-v-659dd163] { display: grid; grid-template-columns: repeat(2, 1fr); gap: 9px;
}
.d-object[data-v-659dd163] { padding: 10px 12px; border: 1px solid var(--line); border-radius: var(--radius-sm);
}
.d-object strong[data-v-659dd163] { display: block; margin-bottom: 4px; font-size: calc(10px * var(--font-scale));
}
.d-object p[data-v-659dd163] { margin: 0 0 6px; color: var(--ink-2); font-size: calc(9px * var(--font-scale)); line-height: 1.6;
}
.d-chips[data-v-659dd163] { display: flex; flex-wrap: wrap; gap: 4px;
}
.d-chips span[data-v-659dd163] { padding: 1px 7px; border-radius: 99px; color: var(--ink-2); background: var(--surface-muted); font-size: calc(8px * var(--font-scale));
}
.d-collapse[data-v-659dd163] { overflow: hidden; margin-bottom: 7px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--surface);
}
.d-collapse summary[data-v-659dd163] { display: flex; align-items: center; gap: 8px; min-height: 38px; padding: 6px 12px; cursor: pointer; font-size: calc(10.5px * var(--font-scale)); font-weight: 650; list-style: none; user-select: none;
}
.d-collapse summary[data-v-659dd163]::-webkit-details-marker { display: none;
}
.d-collapse summary[data-v-659dd163]::after { content: ''; margin-left: auto; width: 7px; height: 7px; border-right: 1.5px solid var(--ink-3); border-bottom: 1.5px solid var(--ink-3); transform: rotate(45deg); transition: transform var(--duration-fast) ease;
}
.d-collapse[open] summary[data-v-659dd163]::after { transform: rotate(225deg);
}
.d-collapse summary[data-v-659dd163]:hover { background: var(--surface-muted);
}
.d-rid[data-v-659dd163] { padding: 1px 7px; border-radius: 5px; color: var(--success); background: var(--success-soft); font-family: var(--font-mono); font-size: calc(9px * var(--font-scale));
}
.d-priority[data-v-659dd163] { margin-left: auto; padding: 1px 7px; border-radius: 5px; color: var(--ink-3); background: var(--surface-muted); font-size: calc(8.5px * var(--font-scale)); font-style: normal; font-weight: 650;
}
.d-collapse-body[data-v-659dd163] { padding: 4px 12px 12px; border-top: 1px solid var(--line);
}
.d-inline[data-v-659dd163] { display: grid; grid-template-columns: 72px 1fr; gap: 8px; margin-top: 8px; color: var(--ink-2); font-size: calc(9.5px * var(--font-scale)); line-height: 1.7;
}
.d-inline > span[data-v-659dd163] { color: var(--ink-3); font-weight: 700;
}
.d-inline-row[data-v-659dd163] { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; color: var(--ink-2); font-size: calc(10px * var(--font-scale));
}
.d-inline-row > span[data-v-659dd163] { color: var(--ink-3); font-weight: 700; font-size: calc(8.5px * var(--font-scale));
}
.d-inline-row .dot-sep[data-v-659dd163] { width: 3px; height: 3px; border-radius: 99px; background: #c9d0dc;
}
.d-muted[data-v-659dd163] { color: var(--ink-3);
}
.d-ol[data-v-659dd163], .d-ul[data-v-659dd163] { margin: 0; padding-left: 18px; line-height: 1.8;
}
.d-ul.plain[data-v-659dd163] { color: var(--ink-2); font-size: calc(9.5px * var(--font-scale));
}
.d-inline-table[data-v-659dd163] { display: grid; grid-template-columns: 72px 1fr; gap: 8px; margin-top: 8px;
}
.d-inline-table > span[data-v-659dd163] { padding-top: 6px; color: var(--ink-3); font-weight: 700; font-size: calc(8.5px * var(--font-scale));
}
.d-table[data-v-659dd163], .d-inline-table table[data-v-659dd163] { width: 100%; border-collapse: collapse; font-size: calc(9px * var(--font-scale));
}
.d-table th[data-v-659dd163], .d-inline-table th[data-v-659dd163] { padding: 6px 8px; border: 1px solid var(--line); color: var(--ink-3); background: var(--surface-muted); text-align: left; font-weight: 700;
}
.d-table td[data-v-659dd163], .d-inline-table td[data-v-659dd163] { padding: 6px 8px; border: 1px solid var(--line); color: var(--ink-2); line-height: 1.55; vertical-align: top;
}
.d-table b[data-v-659dd163] { display: block; color: var(--ink);
}
.d-table small[data-v-659dd163] { display: block; color: var(--ink-3); font-family: var(--font-mono); font-size: calc(8px * var(--font-scale));
}
.d-table code[data-v-659dd163], .d-inline-row code[data-v-659dd163] { padding: 1px 5px; border-radius: 4px; background: var(--surface-muted); font-family: var(--font-mono); font-size: calc(8.5px * var(--font-scale));
}
.d-level[data-v-659dd163] { padding: 1px 6px; border-radius: 5px; font-family: var(--font-mono); font-size: calc(8.5px * var(--font-scale)); font-weight: 700;
}
.d-level.primary[data-v-659dd163] { color: var(--accent); background: var(--accent-soft);
}
.d-level.secondary[data-v-659dd163] { color: var(--ink-2); background: var(--surface-muted);
}
.d-level.danger[data-v-659dd163] { color: var(--danger); background: var(--danger-soft);
}
.d-level.text[data-v-659dd163] { color: var(--ink-3); background: var(--surface-muted);
}
.d-hint[data-v-659dd163] { margin: 0; padding: 9px 12px; border: 1px dashed var(--line-strong); border-radius: var(--radius-sm); color: var(--ink-3); font-size: calc(9px * var(--font-scale)); line-height: 1.6;
}

.nav-check[data-v-548ce7c4] { display: grid; gap: 14px;
}
.empty[data-v-548ce7c4] { padding: 24px 8px; text-align: center;
}
.empty strong[data-v-548ce7c4] { display: block; color: var(--ink); font-size: calc(11px * var(--font-scale));
}
.empty p[data-v-548ce7c4] { margin: 6px auto 0; max-width: 300px; color: var(--ink-3); font-size: calc(9px * var(--font-scale)); line-height: 1.6;
}
.preview[data-v-548ce7c4] { padding: 10px; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--surface-muted);
}
.preview-head[data-v-548ce7c4] { display: flex; align-items: center; justify-content: space-between; margin-bottom: 9px;
}
.preview-head span[data-v-548ce7c4] { color: var(--ink); font-size: calc(10px * var(--font-scale)); font-weight: 700;
}
.preview-head em[data-v-548ce7c4] { color: var(--ink-3); font-size: calc(8.5px * var(--font-scale)); font-style: normal;
}
.nav-bar[data-v-548ce7c4] { display: flex; justify-content: space-around; gap: 4px; padding: 8px 6px; border-radius: var(--radius-sm); background: var(--surface); border: 1px solid var(--line);
}
.nav-item[data-v-548ce7c4] { display: flex; flex-direction: column; align-items: center; gap: 3px; min-width: 52px; padding: 4px 8px; border-radius: var(--radius-xs); color: var(--ink-3);
}
.nav-item span[data-v-548ce7c4] { font-size: calc(9px * var(--font-scale));
}
.hint[data-v-548ce7c4] { margin: 8px 0 0; color: var(--ink-3); font-size: calc(9px * var(--font-scale)); line-height: 1.6;
}
.note[data-v-548ce7c4] { margin: 8px 0 0; color: var(--ink-2); font-size: calc(8.5px * var(--font-scale)); line-height: 1.6;
}
.check-list[data-v-548ce7c4] { display: grid; gap: 5px; max-height: 300px; overflow: auto;
}
.check-row[data-v-548ce7c4] { display: grid; grid-template-columns: auto 1fr auto auto; align-items: center; gap: 9px; padding: 8px 9px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--surface);
}
.check-row.s-consistent[data-v-548ce7c4] { border-color: color-mix(in srgb, var(--success) 30%, var(--line));
}
.check-row.s-different[data-v-548ce7c4], .check-row.s-missing[data-v-548ce7c4] { border-color: color-mix(in srgb, var(--warning) 40%, var(--line));
}
.fix-toggle[data-v-548ce7c4] { display: grid; place-items: center;
}
.fix-toggle input[data-v-548ce7c4] { width: 15px; height: 15px; accent-color: var(--accent);
}
.ok-dot[data-v-548ce7c4] { color: var(--success);
}
.row-main[data-v-548ce7c4] { min-width: 0; display: grid; gap: 2px;
}
.row-main strong[data-v-548ce7c4] { overflow: hidden; font-size: calc(9.5px * var(--font-scale)); text-overflow: ellipsis; white-space: nowrap;
}
.row-tabs[data-v-548ce7c4] { overflow: hidden; color: var(--ink-3); font-size: calc(8px * var(--font-scale)); text-overflow: ellipsis; white-space: nowrap;
}
.row-status[data-v-548ce7c4] { display: inline-flex; align-items: center; gap: 4px; white-space: nowrap; font-size: calc(8.5px * var(--font-scale));
}
.check-row.s-consistent .row-status[data-v-548ce7c4] { color: var(--success);
}
.check-row.s-different .row-status[data-v-548ce7c4], .check-row.s-missing .row-status[data-v-548ce7c4] { color: var(--warning);
}
.row-active[data-v-548ce7c4] { color: var(--ink-3); font-size: calc(8px * var(--font-scale)); white-space: nowrap;
}
.actions[data-v-548ce7c4] { display: flex; align-items: center; gap: 10px;
}
.fix-summary[data-v-548ce7c4] { color: var(--ink-2); font-size: calc(9px * var(--font-scale));
}
.app-button[data-v-548ce7c4] { display: inline-flex; align-items: center; justify-content: center; gap: 6px; min-height: 32px; padding: 0 12px; border-radius: var(--radius-sm); font-size: calc(9.5px * var(--font-scale)); font-weight: 650;
}
.app-button.primary[data-v-548ce7c4] { color: #fff; background: var(--accent);
}
.app-button.primary[data-v-548ce7c4]:hover { background: var(--accent-deep);
}
.app-button.ghost[data-v-548ce7c4] { color: var(--ink-2); background: transparent; border: 1px solid var(--line);
}
.app-button.ghost[data-v-548ce7c4]:hover { color: var(--ink); background: var(--surface-muted);
}

.canvas-page[data-v-8b7220ed] { width: 100%; height: 100%; display: flex; overflow: hidden;
}
.canvas-surface[data-v-8b7220ed] { position: relative; min-width: 0; flex: 1; overflow: hidden; background-color: var(--canvas); background-image: linear-gradient(color-mix(in srgb, var(--accent) 5%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--accent) 5%, transparent) 1px, transparent 1px); background-size: 28px 28px; cursor: grab; touch-action: none; overscroll-behavior: none; user-select: none;
}
.canvas-surface.no-grid[data-v-8b7220ed] { background-image: none;
}
.canvas-surface.panning[data-v-8b7220ed], .canvas-surface.space-mode[data-v-8b7220ed] { cursor: grabbing;
}
.canvas-surface.select-mode[data-v-8b7220ed] { cursor: crosshair;
}
.canvas-surface.select-mode.panning[data-v-8b7220ed], .canvas-surface.select-mode.space-mode[data-v-8b7220ed] { cursor: grabbing;
}
.canvas-surface.connecting[data-v-8b7220ed] { cursor: crosshair;
}
.canvas-camera[data-v-8b7220ed] { position: absolute; z-index: 2; left: 0; top: 0; width: 1px; height: 1px; overflow: visible; transform-origin: left top;
}
.canvas-stage[data-v-8b7220ed] { position: absolute; left: 0; top: 0; width: 1px; height: 1px; overflow: visible; transform-origin: left top;
}
.nodes-layer[data-v-8b7220ed] { position: absolute; z-index: 2; left: 0; top: 0; width: 1px; height: 1px; overflow: visible;
}
.canvas-create[data-v-8b7220ed] { position: absolute; z-index: 40; top: 15px; left: 15px;
}
.create-trigger[data-v-8b7220ed] { height: 34px; display: flex; align-items: center; gap: 7px; padding: 0 12px; border: 1px solid var(--line); border-radius: 999px; color: var(--ink-2); background: color-mix(in srgb, var(--surface) 94%, transparent); box-shadow: var(--shadow-sm); backdrop-filter: blur(12px); font-size: calc(10px * var(--font-scale)); font-weight: 700;
}
.create-trigger[data-v-8b7220ed]:hover, .create-trigger.active[data-v-8b7220ed] { border-color: var(--accent); color: var(--accent); background: var(--accent-soft);
}
.create-menu[data-v-8b7220ed] { position: absolute; z-index: var(--z-dropdown); top: 42px; left: 0; width: 248px; overflow: hidden; padding: 5px; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--surface-raised); box-shadow: var(--shadow-md);
}
.create-menu header[data-v-8b7220ed] { height: 36px; display: flex; align-items: center; justify-content: space-between; padding: 0 8px; border-bottom: 1px solid var(--line);
}
.create-menu header strong[data-v-8b7220ed] { font-size: calc(10px * var(--font-scale));
}
.create-menu header small[data-v-8b7220ed] { color: var(--ink-3); font-family: var(--font-mono); font-size: calc(8px * var(--font-scale));
}
.create-menu > button[data-v-8b7220ed] { width: 100%; min-height: 50px; display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 9px; padding: 7px 8px; border-radius: var(--radius-sm); text-align: left; background: transparent;
}
.create-menu > button[data-v-8b7220ed]:hover { background: var(--surface-muted);
}
.create-menu > button > span[data-v-8b7220ed] { width: 31px; height: 31px; display: grid; place-items: center; border-radius: var(--radius-sm); color: var(--accent); background: var(--accent-soft);
}
.create-menu > button strong[data-v-8b7220ed], .create-menu > button small[data-v-8b7220ed] { display: block;
}
.create-menu > button strong[data-v-8b7220ed] { font-size: calc(10px * var(--font-scale));
}
.create-menu > button small[data-v-8b7220ed] { margin-top: 3px; color: var(--ink-3); font-size: calc(8.5px * var(--font-scale));
}
.ui-spec-picker[data-v-8b7220ed] { position: absolute; z-index: 80; top: 64px; left: 15px; width: 370px; overflow: hidden; border-radius: var(--radius-md); background: var(--surface-raised); box-shadow: var(--shadow-md); cursor: default; user-select: none;
}
.ui-spec-picker > header[data-v-8b7220ed] { display: grid; grid-template-columns: 32px 1fr 26px; align-items: start; gap: 8px; padding: 14px; border-bottom: 1px solid var(--line);
}
.ui-spec-picker > header > span[data-v-8b7220ed] { width: 31px; height: 31px; display: grid; place-items: center; border-radius: var(--radius-sm); color: var(--accent); background: var(--accent-soft);
}
.ui-spec-picker > header strong[data-v-8b7220ed], .ui-spec-picker > header small[data-v-8b7220ed] { display: block;
}
.ui-spec-picker > header strong[data-v-8b7220ed] { font-size: calc(11px * var(--font-scale)); line-height: 1.35;
}
.ui-spec-picker > header small[data-v-8b7220ed] { max-width: 34ch; margin-top: 3px; color: var(--ink-3); font-size: calc(8.5px * var(--font-scale)); line-height: 1.45;
}
.ui-spec-picker > header button[data-v-8b7220ed] { width: 26px; height: 26px; display: grid; place-items: center; border-radius: var(--radius-xs); color: var(--ink-3); background: transparent;
}
.ui-spec-picker > header button[data-v-8b7220ed]:hover { color: var(--ink); background: var(--surface-muted);
}
.spec-picker-list[data-v-8b7220ed] { max-height: 300px; overflow: auto; padding: 7px;
}
.spec-picker-list > button[data-v-8b7220ed] { width: 100%; min-height: 64px; display: grid; grid-template-columns: 48px minmax(0, 1fr) auto; align-items: center; gap: 10px; padding: 8px 10px; border: 1px solid transparent; border-radius: var(--radius-sm); color: var(--ink); text-align: left; background: transparent; transition: border-color var(--duration-fast) ease, background var(--duration-fast) ease, transform var(--duration-fast) var(--ease-out-quart);
}
.spec-picker-list > button[data-v-8b7220ed]:hover { background: var(--surface-muted);
}
.spec-picker-list > button[data-v-8b7220ed]:active { transform: scale(0.99);
}
.spec-picker-list > button.selected[data-v-8b7220ed] { border-color: var(--accent-border); background: var(--accent-soft);
}
.spec-swatches[data-v-8b7220ed] { width: 44px; height: 32px; display: flex; align-items: stretch; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-xs); background: var(--surface);
}
.spec-swatches i[data-v-8b7220ed] { flex: 1;
}
.spec-picker-list strong[data-v-8b7220ed], .spec-picker-list small[data-v-8b7220ed] { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.spec-picker-list strong[data-v-8b7220ed] { font-size: calc(10px * var(--font-scale));
}
.spec-picker-list small[data-v-8b7220ed] { margin-top: 4px; color: var(--ink-3); font-size: calc(8px * var(--font-scale));
}
.spec-picker-list em[data-v-8b7220ed] { color: var(--ink-3); font-size: calc(7.5px * var(--font-scale)); font-style: normal;
}
.spec-picker-list > button.selected em[data-v-8b7220ed] { color: var(--accent-strong); font-weight: 700;
}
.ui-spec-picker > footer[data-v-8b7220ed] { display: flex; justify-content: space-between; gap: 8px; padding: 10px 12px; border-top: 1px solid var(--line);
}
.spec-picker-loading[data-v-8b7220ed] { display: grid; gap: 8px; padding: 16px;
}
.spec-picker-loading i[data-v-8b7220ed] { height: 52px; border-radius: var(--radius-sm); background: linear-gradient(90deg, var(--surface-muted), var(--surface), var(--surface-muted)); background-size: 200% 100%; animation: spec-loading-8b7220ed 1.2s linear infinite;
}
.spec-picker-empty[data-v-8b7220ed] { padding: 25px 22px 22px; text-align: center;
}
.spec-picker-empty > span[data-v-8b7220ed] { width: 42px; height: 42px; display: grid; place-items: center; margin: 0 auto 10px; border-radius: var(--radius-md); color: var(--accent); background: var(--accent-soft);
}
.spec-picker-empty strong[data-v-8b7220ed] { display: block; font-size: calc(11px * var(--font-scale));
}
.spec-picker-empty p[data-v-8b7220ed] { max-width: 32ch; margin: 7px auto 14px; color: var(--ink-3); font-size: calc(9px * var(--font-scale)); line-height: 1.55;
}
@keyframes spec-loading-8b7220ed {
to { background-position: -200% 0;
}
}
.connect-banner[data-v-8b7220ed] { position: absolute; z-index: 35; top: 16px; left: 50%; display: flex; align-items: center; gap: 8px; min-height: 34px; padding: 0 11px; border: 1px solid var(--accent-border); border-radius: 999px; color: var(--accent-strong); background: color-mix(in srgb, var(--accent-soft) 90%, transparent); box-shadow: var(--shadow-sm); transform: translateX(-50%); backdrop-filter: blur(12px); font-size: calc(9px * var(--font-scale)); font-weight: 650;
}
.connect-banner kbd[data-v-8b7220ed] { padding: 3px 6px; border: 1px solid var(--accent-border); border-radius: 5px; background: var(--surface); font-family: var(--font-mono); font-size: calc(7.5px * var(--font-scale));
}
.html-generation-panel[data-v-8b7220ed] { position: absolute; z-index: 80; width: 336px; padding: 7px; border: 1px solid var(--line-strong); border-radius: var(--radius-md); background: color-mix(in srgb, var(--surface-raised) 97%, transparent); box-shadow: 0 18px 44px rgb(30 39 55 / 0.16); backdrop-filter: blur(18px); cursor: default; user-select: none;
}
.html-generation-panel > header[data-v-8b7220ed] { display: grid; grid-template-columns: 32px 1fr 26px; align-items: start; gap: 8px; padding: 7px 7px 10px; border-bottom: 1px solid var(--line);
}
.html-generation-panel > header > span[data-v-8b7220ed] { width: 31px; height: 31px; display: grid; place-items: center; border-radius: 8px; color: var(--accent); background: var(--accent-soft);
}
.html-generation-panel > header strong[data-v-8b7220ed], .html-generation-panel > header small[data-v-8b7220ed] { display: block;
}
.html-generation-panel > header strong[data-v-8b7220ed] { font-size: calc(11px * var(--font-scale)); line-height: 1.35;
}
.html-generation-panel > header small[data-v-8b7220ed] { margin-top: 3px; color: var(--ink-3); font-size: calc(8.5px * var(--font-scale)); line-height: 1.45;
}
.html-generation-panel > header button[data-v-8b7220ed] { width: 26px; height: 26px; display: grid; place-items: center; border-radius: 6px; color: var(--ink-3); background: transparent;
}
.html-generation-panel > header button[data-v-8b7220ed]:hover { color: var(--ink); background: var(--surface-muted);
}
.device-options[data-v-8b7220ed] { display: grid; gap: 5px; padding: 7px 0;
}
.device-option[data-v-8b7220ed] { width: 100%; min-height: 57px; display: grid; grid-template-columns: 34px 1fr auto; align-items: center; gap: 9px; padding: 7px 9px; border: 1px solid transparent; border-radius: var(--radius-sm); text-align: left; color: var(--ink); background: transparent; transition: border-color var(--duration-fast) ease, background var(--duration-fast) ease, transform var(--duration-fast) var(--ease-out-quart);
}
.device-option[data-v-8b7220ed]:hover { background: var(--surface-muted);
}
.device-option[data-v-8b7220ed]:active { transform: scale(0.985);
}
.device-option.selected[data-v-8b7220ed] { border-color: var(--accent-border); background: var(--accent-soft);
}
.device-icon[data-v-8b7220ed] { width: 33px; height: 33px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 8px; color: var(--ink-2); background: var(--surface);
}
.device-option.selected .device-icon[data-v-8b7220ed] { border-color: var(--accent-border); color: var(--accent);
}
.device-copy strong[data-v-8b7220ed], .device-copy small[data-v-8b7220ed] { display: block;
}
.device-copy strong[data-v-8b7220ed] { font-size: calc(10px * var(--font-scale));
}
.device-copy small[data-v-8b7220ed] { margin-top: 3px; color: var(--ink-3); font-size: calc(8px * var(--font-scale)); line-height: 1.35;
}
.device-option em[data-v-8b7220ed] { color: var(--ink-3); font-family: var(--font-mono); font-size: calc(7.5px * var(--font-scale)); font-style: normal;
}
.generation-spec[data-v-8b7220ed] { display: grid; grid-template-columns: 29px 1fr; align-items: center; gap: 9px; margin: 1px 4px 7px; padding: 9px; border-radius: var(--radius-sm); color: var(--success); background: var(--success-soft);
}
.generation-spec.missing[data-v-8b7220ed] { color: var(--warning); background: var(--warning-soft);
}
.generation-spec-swatch[data-v-8b7220ed] { width: 28px; height: 28px; display: grid; place-items: center; border: 1px solid color-mix(in srgb, currentColor 24%, transparent); border-radius: var(--radius-xs); color: inherit; background: var(--surface);
}
.generation-spec strong[data-v-8b7220ed], .generation-spec small[data-v-8b7220ed] { display: block;
}
.generation-spec strong[data-v-8b7220ed] { display: flex; min-width: 0; align-items: center; gap: 6px; color: var(--ink); font-size: calc(9px * var(--font-scale));
}
.generation-spec strong em[data-v-8b7220ed] { flex: 0 0 auto; padding: 2px 5px; border-radius: 999px; color: var(--success); background: color-mix(in srgb, var(--success) 10%, var(--surface)); font-size: calc(7px * var(--font-scale)); font-style: normal; font-weight: 700;
}
.generation-spec small[data-v-8b7220ed] { margin-top: 2px; color: var(--ink-3); font-size: calc(7.5px * var(--font-scale)); line-height: 1.4;
}
.html-generation-panel > footer[data-v-8b7220ed] { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 8px 5px 4px 8px; border-top: 1px solid var(--line);
}
.html-generation-panel > footer > span[data-v-8b7220ed] { color: var(--ink-3); font-size: calc(7.5px * var(--font-scale));
}
.html-generation-panel > footer .app-button[data-v-8b7220ed] { min-width: 106px;
}
.canvas-empty[data-v-8b7220ed] { position: absolute; z-index: 12; left: 50%; top: 48%; width: min(420px, calc(100% - 48px)); padding: 28px; border: 1px solid var(--line); border-radius: var(--radius-lg); text-align: center; background: color-mix(in srgb, var(--surface) 92%, transparent); box-shadow: 0 18px 45px rgb(32 43 60 / 0.1); transform: translate(-50%, -50%); backdrop-filter: blur(16px);
}
.canvas-empty > span[data-v-8b7220ed] { width: 48px; height: 48px; display: grid; place-items: center; margin: 0 auto 13px; border-radius: 14px; color: var(--accent); background: var(--accent-soft);
}
.canvas-empty h2[data-v-8b7220ed] { margin: 0; font-size: calc(17px * var(--font-scale));
}
.canvas-empty p[data-v-8b7220ed] { max-width: 320px; margin: 8px auto 17px; color: var(--ink-3); font-size: calc(10px * var(--font-scale)); line-height: 1.6;
}
.marquee-box[data-v-8b7220ed] { position: absolute; z-index: 4; border: 1px solid color-mix(in srgb, var(--accent) 70%, transparent); background: color-mix(in srgb, var(--accent) 12%, transparent); pointer-events: none; border-radius: 3px;
}
.canvas-tools[data-v-8b7220ed] { position: absolute; z-index: 26; top: 15px; left: 50%; display: flex; align-items: center; gap: 12px; transform: translateX(-50%);
}
.tool-group[data-v-8b7220ed] { display: flex; align-items: center; gap: 2px; padding: 4px; border: 1px solid var(--line); border-radius: 999px; background: color-mix(in srgb, var(--surface) 94%, transparent); box-shadow: var(--shadow-sm); backdrop-filter: blur(12px);
}
.tool-group button[data-v-8b7220ed] { height: 28px; display: flex; align-items: center; gap: 5px; padding: 0 10px; border-radius: 999px; color: var(--ink-2); font-size: calc(9.5px * var(--font-scale)); font-weight: 650; background: transparent;
}
.tool-group button[data-v-8b7220ed]:hover { color: var(--accent); background: var(--accent-soft);
}
.tool-group button.on[data-v-8b7220ed] { color: #fff; background: var(--accent);
}
.tool-group button.danger[data-v-8b7220ed] { color: var(--danger);
}
.tool-group button.danger[data-v-8b7220ed]:hover { color: #fff; background: var(--danger);
}
.selection-actions .selection-count[data-v-8b7220ed] { padding: 0 6px 0 4px; color: var(--ink-3); font-size: calc(9px * var(--font-scale)); font-weight: 600; white-space: nowrap;
}
.zoom-controls[data-v-8b7220ed], .canvas-hint[data-v-8b7220ed] { position: absolute; z-index: 25; bottom: 16px; border: 1px solid var(--line); border-radius: 999px; background: color-mix(in srgb, var(--surface) 94%, transparent); box-shadow: var(--shadow-sm); backdrop-filter: blur(12px);
}
.zoom-controls[data-v-8b7220ed] { left: 15px; display: flex; align-items: center; gap: 2px; padding: 4px;
}
.zoom-controls button[data-v-8b7220ed] { width: 27px; height: 27px; display: grid; place-items: center; border-radius: 50%; color: var(--ink-2); background: transparent;
}
.zoom-controls button[data-v-8b7220ed]:hover { color: var(--accent); background: var(--accent-soft);
}
.zoom-controls .zoom-value[data-v-8b7220ed] { width: auto; min-width: 48px; padding: 0 5px; border-radius: 7px; font-family: var(--font-mono); font-size: calc(9px * var(--font-scale));
}
.canvas-hint[data-v-8b7220ed] { left: 50%; display: flex; align-items: center; gap: 6px; padding: 8px 11px; color: var(--ink-3); transform: translateX(-50%); font-size: calc(8.5px * var(--font-scale)); pointer-events: none;
}
[data-v-8b7220ed] .canvas-node-list-enter-active,[data-v-8b7220ed] .canvas-node-list-leave-active { transition: opacity var(--duration-panel) ease, transform var(--duration-panel) var(--ease-out-quint), filter var(--duration-panel) ease;
}
[data-v-8b7220ed] .canvas-node-list-enter-from { opacity: 0; filter: blur(5px); transform: translateY(18px) scale(0.88);
}
[data-v-8b7220ed] .canvas-node-list-leave-to { opacity: 0; filter: blur(4px); transform: translateY(-12px) scale(0.9);
}
[data-v-8b7220ed] .canvas-node-list-leave-active { position: absolute; pointer-events: none;
}
.empty-canvas-enter-active[data-v-8b7220ed], .empty-canvas-leave-active[data-v-8b7220ed], .connect-banner-enter-active[data-v-8b7220ed], .connect-banner-leave-active[data-v-8b7220ed] { transition: opacity var(--duration-state) ease, transform var(--duration-state) var(--ease-out-quart);
}
.empty-canvas-enter-from[data-v-8b7220ed], .empty-canvas-leave-to[data-v-8b7220ed] { opacity: 0; transform: translate(-50%, -46%) scale(0.96);
}
.connect-banner-enter-from[data-v-8b7220ed], .connect-banner-leave-to[data-v-8b7220ed] { opacity: 0; transform: translate(-50%, -8px);
}
.device-panel-enter-active[data-v-8b7220ed], .device-panel-leave-active[data-v-8b7220ed] { transition: opacity var(--duration-state) ease, transform var(--duration-state) var(--ease-out-quart); transform-origin: 18px 18px;
}
.device-panel-enter-from[data-v-8b7220ed], .device-panel-leave-to[data-v-8b7220ed] { opacity: 0; transform: translateY(7px) scale(0.96);
}
@media (max-width: 1180px) {
[data-v-8b7220ed] .node-inspector { display: none;
}
}
@media (max-width: 760px) {
[data-v-8b7220ed] .canvas-minimap { display: none;
}
.canvas-hint[data-v-8b7220ed] { display: none;
}
}
@media (prefers-reduced-motion: reduce) {
.device-panel-enter-active[data-v-8b7220ed], .device-panel-leave-active[data-v-8b7220ed], .device-option[data-v-8b7220ed], .spec-picker-list > button[data-v-8b7220ed] { transition: none;
}
.spec-picker-loading i[data-v-8b7220ed] { animation: none;
}
}
.requirement-draft[data-v-8b7220ed] { display: grid; gap: 9px;
}
.requirement-draft .field-label.second[data-v-8b7220ed] { margin-top: 2px;
}
.segmented[data-v-8b7220ed] { display: grid; grid-template-columns: repeat(3, 1fr); gap: 4px; padding: 4px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--surface-muted);
}
.segmented button[data-v-8b7220ed] { min-height: 32px; padding: 0 8px; border-radius: calc(var(--radius-sm) - 2px); color: var(--ink-2); font-size: calc(10px * var(--font-scale)); font-weight: 650; background: transparent;
}
.segmented button[data-v-8b7220ed]:hover { color: var(--ink); background: var(--surface);
}
.segmented button.active[data-v-8b7220ed] { color: var(--accent); background: var(--surface); box-shadow: var(--shadow-sm);
}
.field-hint[data-v-8b7220ed] { margin: 2px 0 0; color: var(--ink-3); font-size: calc(9px * var(--font-scale)); line-height: 1.6;
}

/* ---- 右键上下文菜单 ---- */
.canvas-context-menu[data-v-8b7220ed] {
  position: fixed; z-index: var(--z-dropdown, 60); min-width: 176px; padding: 5px;
  border: 1px solid var(--line); border-radius: var(--radius-md, 12px);
  background: var(--surface-raised, #fff); box-shadow: 0 10px 30px rgba(22,24,28,.14);
}
.canvas-context-menu .ctx-title[data-v-8b7220ed] { padding: 6px 9px 7px; color: var(--ink-3); font-size: calc(9px * var(--font-scale)); font-weight: 650;
}
.canvas-context-menu button[data-v-8b7220ed] {
  width: 100%; min-height: 30px; display: flex; align-items: center; gap: 8px; padding: 0 9px;
  border-radius: 6px; color: var(--ink-2); background: transparent; text-align: left;
  font-size: calc(10px * var(--font-scale)); transition: color var(--duration-fast) ease, background var(--duration-fast) ease, padding var(--duration-fast) var(--ease-out-quart);
}
.canvas-context-menu button[data-v-8b7220ed]:hover { padding-left: 12px; color: var(--accent); background: var(--accent-soft);
}
.canvas-context-menu button.danger[data-v-8b7220ed] { color: var(--danger);
}
.canvas-context-menu button.danger[data-v-8b7220ed]:hover { color: #fff; background: var(--danger);
}
.canvas-context-menu .menu-divider[data-v-8b7220ed] { display: block; height: 1px; margin: 4px 3px; background: var(--line);
}

/* ---- 资源库选择器 ---- */
.asset-picker[data-v-8b7220ed] { display: grid; gap: 10px;
}
.upload-drop[data-v-8b7220ed] { min-height: 76px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 7px; border: 1.5px dashed var(--line-strong); border-radius: 12px; color: var(--ink-3); font-size: calc(11px * var(--font-scale)); font-weight: 600; cursor: pointer; transition: border-color .15s ease, color .15s ease, background .15s ease;
}
.upload-drop[data-v-8b7220ed]:hover { border-color: var(--accent); color: var(--accent); background: var(--accent-soft);
}
.upload-drop.uploading[data-v-8b7220ed] { opacity: .6; pointer-events: none;
}
.upload-drop input[data-v-8b7220ed] { display: none;
}
.asset-grid[data-v-8b7220ed] { display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px;
}
.asset-item[data-v-8b7220ed] { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 9px 6px; border: 1px solid var(--line); border-radius: 10px; background: var(--surface);
}
.asset-item[data-v-8b7220ed]:hover { border-color: var(--accent); box-shadow: var(--shadow-sm);
}
.asset-thumb[data-v-8b7220ed] { width: 46px; height: 46px; display: grid; place-items: center; overflow: hidden; border-radius: 8px; background: var(--surface-muted); color: var(--ink-3);
}
.asset-thumb img[data-v-8b7220ed] { width: 100%; height: 100%; object-fit: cover;
}
.asset-name[data-v-8b7220ed] { max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; color: var(--ink-2); font-size: calc(9px * var(--font-scale));
}
.asset-empty[data-v-8b7220ed] { margin: 0; color: var(--ink-3); font-size: calc(9.5px * var(--font-scale)); text-align: center; padding: 6px 0;
}

.site-preview[data-v-f5b3ccdb] {
  container-type: inline-size;
  width: 100%;
  min-height: 100%;
  overflow: hidden;
  color: #17191d;
  background: #fff;
  font-family: "SF Pro Text", "PingFang SC", "Microsoft YaHei", sans-serif;
}
[data-edit-id][data-v-f5b3ccdb] {
  position: relative;
}
[data-edit-id].selected[data-v-f5b3ccdb]::after {
  content: '';
  position: absolute;
  z-index: 20;
  inset: -3px;
  border: 2px solid #2c5fe0;
  border-radius: 3px;
  pointer-events: none;
  box-shadow: 0 0 0 2px rgb(44 95 224 / 0.12);
}
nav[data-v-f5b3ccdb] {
  height: 64px;
  display: flex;
  align-items: center;
  gap: 44px;
  padding: 0 5.5%;
  border-bottom: 1px solid #eceff3;
  background: #fff;
}
.site-logo[data-v-f5b3ccdb] { display: flex; align-items: center; gap: 9px;
}
.site-logo span[data-v-f5b3ccdb] { width: 26px; height: 26px; border-radius: 7px; background: #17191d;
}
.site-logo strong[data-v-f5b3ccdb] { font-size: 13px;
}
.site-links[data-v-f5b3ccdb] { display: flex; flex: 1; gap: 30px; color: #67707c; font-size: 11px;
}
nav > button[data-v-f5b3ccdb] { height: 34px; padding: 0 15px; border-radius: 7px; color: #fff; background: #17191d; font-size: 10px; font-weight: 650;
}
.site-hero[data-v-f5b3ccdb] {
  min-height: 430px;
  display: grid;
  grid-template-columns: 1.05fr 0.95fr;
  gap: 46px;
  padding: 68px 6% 54px;
  background: #f6f7f9;
}
.hero-copy > small[data-v-f5b3ccdb] { display: inline-block; color: #2c5fe0; font-size: 11px; font-weight: 720;
}
h1[data-v-f5b3ccdb] { max-width: 600px; margin: 17px 0 19px; outline: 0; line-height: 1.12; letter-spacing: -0.045em; font-weight: 760;
}
.hero-copy > p[data-v-f5b3ccdb] { max-width: 520px; margin: 0 0 25px; color: #646c77; font-size: 13px; line-height: 1.72;
}
.site-actions[data-v-f5b3ccdb] { display: flex; gap: 9px;
}
.site-actions button[data-v-f5b3ccdb] { height: 38px; padding: 0 17px; border-radius: 7px; font-size: 10.5px; font-weight: 680;
}
.site-actions .primary[data-v-f5b3ccdb] { border: 1px solid #2c5fe0; color: #fff; background: #2c5fe0;
}
.site-actions .secondary[data-v-f5b3ccdb] { border: 1px solid #d7dce3; color: #363b43; background: #fff;
}
.hero-visual[data-v-f5b3ccdb] { position: relative; min-height: 310px; overflow: hidden; border-radius: 14px; background: #dce6fb;
}
.visual-orbit[data-v-f5b3ccdb] { position: absolute; width: 310px; height: 310px; left: 17%; top: 3%; border-radius: 50%; background: #2c5fe0; opacity: 0.94;
}
.visual-card[data-v-f5b3ccdb] { position: absolute; width: 235px; height: 154px; left: 13%; top: 26%; padding: 19px; border-radius: 13px; background: #fff; box-shadow: 0 14px 28px rgb(26 39 69 / 0.17); transform: rotate(-4deg);
}
.visual-card small[data-v-f5b3ccdb] { display: block; color: #727b87; font-size: 10px;
}
.visual-card strong[data-v-f5b3ccdb] { display: block; margin: 10px 0 19px; font-size: 25px;
}
.visual-card span[data-v-f5b3ccdb] { display: block; width: 100%; height: 6px; margin-top: 10px; border-radius: 6px; background: #e8ecf2;
}
.visual-card span[data-v-f5b3ccdb]:last-child { width: 64%;
}
.visual-note[data-v-f5b3ccdb] { position: absolute; right: 8%; bottom: 12%; width: 102px; padding: 12px; border: 1px solid rgb(255 255 255 / 0.7); border-radius: 11px; background: rgb(255 255 255 / 0.83); backdrop-filter: blur(10px); box-shadow: 0 8px 20px rgb(30 42 66 / 0.12);
}
.visual-note b[data-v-f5b3ccdb], .visual-note small[data-v-f5b3ccdb] { display: block;
}
.visual-note b[data-v-f5b3ccdb] { font-size: 20px;
}
.visual-note small[data-v-f5b3ccdb] { margin-top: 3px; color: #727b87; font-size: 8px;
}
.site-features[data-v-f5b3ccdb] { display: grid; grid-template-columns: 1.3fr 0.7fr; gap: 48px; padding: 40px 6%; border-bottom: 1px solid #eceff3;
}
.site-features h2[data-v-f5b3ccdb] { margin: 0 0 8px; font-size: 20px; letter-spacing: -0.025em;
}
.site-features p[data-v-f5b3ccdb] { margin: 0; color: #737b87; font-size: 11px; line-height: 1.6;
}
.site-features dl[data-v-f5b3ccdb] { display: grid; grid-template-columns: 1fr 1fr; margin: 0;
}
.site-features dl > div[data-v-f5b3ccdb] { padding-left: 22px; border-left: 1px solid #e1e4e9;
}
.site-features dt[data-v-f5b3ccdb] { margin-bottom: 7px; font-size: 22px; font-weight: 760;
}
.site-features dd[data-v-f5b3ccdb] { margin: 0; color: #737b87; font-size: 9.5px; line-height: 1.45;
}
.site-service-strip[data-v-f5b3ccdb] { min-height: 68px; display: grid; grid-template-columns: repeat(4, 1fr); align-items: center; padding: 0 6%; color: #606875; font-size: 10px; font-weight: 650;
}
.compact nav[data-v-f5b3ccdb] { height: 34px; gap: 12px; padding: 0 4%;
}
.compact .site-logo span[data-v-f5b3ccdb] { width: 14px; height: 14px; border-radius: 4px;
}
.compact .site-logo strong[data-v-f5b3ccdb] { font-size: 6px;
}
.compact .site-links[data-v-f5b3ccdb] { gap: 9px; font-size: 4.5px;
}
.compact nav > button[data-v-f5b3ccdb] { height: 17px; padding: 0 6px; border-radius: 3px; font-size: 4.5px;
}
.compact .site-hero[data-v-f5b3ccdb] { min-height: 190px; gap: 18px; padding: 27px 5% 23px;
}
.compact .hero-copy > small[data-v-f5b3ccdb] { font-size: 5px;
}
.compact h1[data-v-f5b3ccdb] { margin: 8px 0; font-size: 19px !important;
}
.compact .hero-copy > p[data-v-f5b3ccdb] { margin: 0 0 9px; font-size: 5.5px; line-height: 1.5;
}
.compact .site-actions[data-v-f5b3ccdb] { gap: 4px;
}
.compact .site-actions button[data-v-f5b3ccdb] { height: 18px; padding: 0 6px; border-radius: 3px; font-size: 4.5px;
}
.compact .hero-visual[data-v-f5b3ccdb] { min-height: 135px; border-radius: 6px;
}
.compact .visual-orbit[data-v-f5b3ccdb] { width: 135px; height: 135px;
}
.compact .visual-card[data-v-f5b3ccdb] { width: 100px; height: 67px; padding: 7px; border-radius: 5px;
}
.compact .visual-card small[data-v-f5b3ccdb] { font-size: 4px;
}
.compact .visual-card strong[data-v-f5b3ccdb] { margin: 4px 0 7px; font-size: 9px;
}
.compact .visual-card span[data-v-f5b3ccdb] { height: 3px; margin-top: 4px;
}
.compact .visual-note[data-v-f5b3ccdb] { display: none;
}
.compact .site-features[data-v-f5b3ccdb] { gap: 15px; padding: 17px 5%;
}
.compact .site-features h2[data-v-f5b3ccdb] { margin-bottom: 3px; font-size: 8px;
}
.compact .site-features p[data-v-f5b3ccdb] { font-size: 4.5px;
}
.compact .site-features dl > div[data-v-f5b3ccdb] { padding-left: 7px;
}
.compact .site-features dt[data-v-f5b3ccdb] { margin-bottom: 2px; font-size: 9px;
}
.compact .site-features dd[data-v-f5b3ccdb] { font-size: 4px;
}
.compact .site-service-strip[data-v-f5b3ccdb] { display: none;
}
@container (max-width: 620px) {
nav[data-v-f5b3ccdb] { gap: 12px; padding: 0 18px;
}
.site-links[data-v-f5b3ccdb] { display: none;
}
nav > button[data-v-f5b3ccdb] { margin-left: auto;
}
.site-hero[data-v-f5b3ccdb] { grid-template-columns: 1fr; gap: 25px; padding: 42px 24px;
}
.hero-visual[data-v-f5b3ccdb] { min-height: 270px;
}
.site-features[data-v-f5b3ccdb] { grid-template-columns: 1fr; gap: 24px; padding: 30px 24px;
}
.site-service-strip[data-v-f5b3ccdb] { grid-template-columns: 1fr 1fr; gap: 14px; padding: 18px 24px;
}
}

.manager-page[data-v-59649a49] { width: 100%; height: 100%; display: flex; flex-direction: column; background: var(--canvas);
}
.page-heading[data-v-59649a49] { min-height: 92px; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 20px 28px; border-bottom: 1px solid var(--line); background: var(--panel);
}
.page-heading h1[data-v-59649a49] { margin: 0; font-size: calc(19px * var(--font-scale)); letter-spacing: -0.02em;
}
.page-heading p[data-v-59649a49] { margin: 6px 0 0; color: var(--ink-3); font-size: calc(10.5px * var(--font-scale));
}
.heading-actions[data-v-59649a49] { display: flex; align-items: center; gap: 8px;
}
.manager-toolbar[data-v-59649a49] { min-height: 54px; display: flex; align-items: center; gap: 8px; padding: 0 28px; border-bottom: 1px solid var(--line); background: var(--panel);
}
.search-box[data-v-59649a49] { width: 300px; height: 34px; display: flex; align-items: center; gap: 8px; padding: 0 9px; border: 1px solid var(--line); border-radius: var(--radius-sm); color: var(--ink-3); background: var(--surface);
}
.search-box[data-v-59649a49]:focus-within { border-color: var(--accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 12%, transparent);
}
.search-box input[data-v-59649a49] { min-width: 0; flex: 1; border: 0; outline: 0; background: transparent; font-size: calc(10.5px * var(--font-scale));
}
.status-filter[data-v-59649a49] { height: 34px; display: flex; align-items: center; gap: 6px; padding: 0 8px; border: 1px solid var(--line); border-radius: var(--radius-sm); color: var(--ink-2); background: var(--surface);
}.status-filter select[data-v-59649a49] { border: 0; outline: 0; color: inherit; background: transparent;
}
.view-switch[data-v-59649a49] { display: flex; gap: 2px; padding: 3px; border-radius: var(--radius-sm); background: var(--surface-muted);
}
.view-switch button[data-v-59649a49] { width: 27px; height: 27px; display: grid; place-items: center; border-radius: var(--radius-xs); color: var(--ink-3); background: transparent;
}
.view-switch button.active[data-v-59649a49] { color: var(--ink); background: var(--surface); box-shadow: var(--shadow-sm);
}
.manager-toolbar > span[data-v-59649a49] { margin-left: auto; color: var(--ink-3); font-size: calc(9.5px * var(--font-scale));
}
.select-all[data-v-59649a49] { height: 30px; display: flex; align-items: center; gap: 6px; padding: 0 8px; border-radius: var(--radius-xs); color: var(--ink-2); background: transparent; font-size: calc(8.5px * var(--font-scale));
}.select-all[data-v-59649a49]:hover { color: var(--accent); background: var(--accent-soft);
}
.manager-scroll[data-v-59649a49] { min-height: 0; flex: 1; overflow: auto; padding: 22px 28px 50px;
}
.page-grid[data-v-59649a49] { display: grid; grid-template-columns: repeat(3, minmax(270px, 1fr)); gap: 16px;
}
.page-list[data-v-59649a49] { display: grid; gap: 10px;
}
.page-card[data-v-59649a49] { min-width: 0; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--surface); box-shadow: 0 2px 7px rgb(30 39 52 / 0.04); transition: border-color 150ms ease, transform 150ms ease;
}
.page-card[data-v-59649a49]:hover { border-color: var(--accent-border); transform: translateY(-1px);
}
.page-card.selected[data-v-59649a49] { border-color: var(--accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 12%, transparent);
}
.page-thumb[data-v-59649a49] { position: relative; height: 218px; overflow: hidden; padding: 10px; border-bottom: 1px solid var(--line); background: var(--surface-muted);
}
.page-selector[data-v-59649a49] { position: absolute; z-index: 5; top: 16px; left: 16px; width: 30px; height: 30px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 7px; color: var(--ink-3); background: color-mix(in srgb, var(--surface) 94%, transparent); box-shadow: var(--shadow-sm); backdrop-filter: blur(8px);
}.page-selector[data-v-59649a49]:hover, .page-card.selected .page-selector[data-v-59649a49] { border-color: var(--accent-border); color: var(--accent); background: var(--accent-soft);
}
.page-thumb[data-v-59649a49] > * { height: 100%; border: 1px solid var(--line); border-radius: 6px; box-shadow: var(--shadow-sm);
}
.page-info[data-v-59649a49] { padding: 13px;
}
.page-info > header[data-v-59649a49] { display: grid; grid-template-columns: auto 1fr auto auto; align-items: center; gap: 9px;
}
.page-info > header[data-v-59649a49] { position: relative;
}
.page-menu[data-v-59649a49] { position: absolute; z-index: var(--z-dropdown); top: 31px; right: 0; width: 138px; display: grid; gap: 2px; padding: 5px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--surface-raised); box-shadow: var(--shadow-sm);
}.page-menu button[data-v-59649a49] { min-height: 31px; display: flex; align-items: center; gap: 7px; padding: 0 8px; border-radius: var(--radius-xs); color: var(--ink-2); text-align: left; background: transparent;
}.page-menu button[data-v-59649a49]:hover { color: var(--ink); background: var(--surface-muted);
}.page-menu .danger[data-v-59649a49] { color: var(--danger);
}
.file-icon[data-v-59649a49] { width: 32px; height: 32px; display: grid; place-items: center; border-radius: var(--radius-sm); color: var(--warning); background: var(--warning-soft);
}
.page-info h2[data-v-59649a49] { margin: 0; font-size: calc(11.5px * var(--font-scale));
}
.page-info code[data-v-59649a49] { display: block; margin-top: 3px; color: var(--ink-3); font-family: var(--font-mono); font-size: calc(8px * var(--font-scale));
}
.status-badge.modified[data-v-59649a49] { color: var(--warning); background: var(--warning-soft);
}
.status-badge.draft[data-v-59649a49] { color: var(--ink-3); background: var(--surface-muted);
}
.page-info > header > button[data-v-59649a49] { width: 27px; height: 27px; display: grid; place-items: center; border-radius: var(--radius-xs); color: var(--ink-3); background: transparent;
}
.page-info > header > button[data-v-59649a49]:hover { background: var(--surface-muted);
}
.page-info > p[data-v-59649a49] { min-height: 31px; margin: 11px 0; color: var(--ink-3); font-size: calc(9.5px * var(--font-scale)); line-height: 1.5;
}
.page-info > footer[data-v-59649a49] { display: flex; align-items: center; gap: 10px; padding-top: 10px; border-top: 1px solid var(--line); color: var(--ink-3); font-size: calc(8.5px * var(--font-scale));
}
.page-info > footer time[data-v-59649a49] { margin-left: auto;
}
.page-info > footer button[data-v-59649a49] { display: flex; align-items: center; gap: 4px; padding: 0; color: var(--accent); background: transparent; font-size: calc(8.5px * var(--font-scale)); font-weight: 650;
}
.cloud-state[data-v-59649a49] { display: inline-flex; align-items: center; gap: 4px; color: var(--success);
}.cloud-state.syncing[data-v-59649a49] { color: var(--warning);
}
.page-list .page-card[data-v-59649a49] { display: grid; grid-template-columns: 260px 1fr;
}
.page-list .page-thumb[data-v-59649a49] { height: 168px; border-right: 1px solid var(--line); border-bottom: 0;
}
.empty-state[data-v-59649a49] { min-height: 420px; display: flex; flex-direction: column; align-items: center; justify-content: center; border: 1px dashed var(--line-strong); border-radius: var(--radius-md); color: var(--ink-3);
}
.empty-state h2[data-v-59649a49] { margin: 12px 0 0; color: var(--ink); font-size: calc(14px * var(--font-scale));
}
.empty-state p[data-v-59649a49] { margin: 6px 0 14px; font-size: calc(10px * var(--font-scale));
}
.create-page-form[data-v-59649a49] { display: grid; gap: 15px;
}
.template-option[data-v-59649a49] { min-height: 58px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 10px; padding: 10px; border: 1px solid var(--accent); border-radius: var(--radius-sm); color: var(--accent); background: var(--accent-soft);
}
.template-option strong[data-v-59649a49], .template-option small[data-v-59649a49] { display: block;
}
.template-option strong[data-v-59649a49] { color: var(--ink); font-size: calc(10px * var(--font-scale));
}
.template-option small[data-v-59649a49] { margin-top: 3px; color: var(--ink-3); font-size: calc(8.5px * var(--font-scale));
}
.template-option > span[data-v-59649a49] { font-size: calc(8.5px * var(--font-scale)); font-weight: 700;
}
@media (max-width: 1180px) {
.page-grid[data-v-59649a49] { grid-template-columns: repeat(2, minmax(260px, 1fr));
}
}
@media (max-width: 820px) {
.page-grid[data-v-59649a49] { grid-template-columns: 1fr;
}
.page-list .page-card[data-v-59649a49] { grid-template-columns: 1fr;
}
.page-list .page-thumb[data-v-59649a49] { border-right: 0; border-bottom: 1px solid var(--line);
}
}

.spec-page[data-v-4ec6235d] { width: 100%; height: 100%; display: flex; flex-direction: column; background: var(--canvas);
}
.spec-empty[data-v-4ec6235d] { width: min(440px, calc(100% - 48px)); margin: auto; padding: 30px; border: 1px solid var(--line); border-radius: var(--radius-lg); text-align: center; background: var(--surface); box-shadow: var(--shadow-sm);
}.spec-empty > span[data-v-4ec6235d] { width: 50px; height: 50px; display: grid; place-items: center; margin: 0 auto 13px; border-radius: 14px; color: var(--accent); background: var(--accent-soft);
}.spec-empty h2[data-v-4ec6235d] { margin: 0; font-size: calc(17px * var(--font-scale));
}.spec-empty p[data-v-4ec6235d] { margin: 8px 0 18px; color: var(--ink-3); font-size: calc(10px * var(--font-scale)); line-height: 1.6;
}
.spec-heading[data-v-4ec6235d] { min-height: 92px; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 20px 26px; border-bottom: 1px solid var(--line); background: var(--panel);
}
.spec-heading h1[data-v-4ec6235d] { margin: 0; font-size: calc(19px * var(--font-scale)); letter-spacing: -0.02em;
}
.spec-heading p[data-v-4ec6235d] { margin: 6px 0 0; color: var(--ink-3); font-size: calc(10.5px * var(--font-scale));
}
.spec-heading > div[data-v-4ec6235d]:last-child { display: flex; gap: 7px;
}
.spec-layout[data-v-4ec6235d] { min-height: 0; flex: 1; display: grid; grid-template-columns: 220px minmax(450px, 1fr) 300px;
}
.spec-list[data-v-4ec6235d] { min-height: 0; display: flex; flex-direction: column; padding: 11px 8px; border-right: 1px solid var(--line); background: var(--panel);
}
.spec-list > header[data-v-4ec6235d] { height: 36px; display: flex; align-items: center; justify-content: space-between; padding: 0 6px 0 8px; color: var(--ink-3); font-size: calc(9.5px * var(--font-scale)); font-weight: 700;
}
.spec-list > header button[data-v-4ec6235d] { width: 26px; height: 26px; display: grid; place-items: center; border-radius: var(--radius-xs); color: var(--ink-2); background: transparent;
}
.spec-list > button[data-v-4ec6235d] { width: 100%; min-height: 62px; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 9px; padding: 8px; border-radius: var(--radius-sm); color: var(--ink-2); text-align: left; background: transparent;
}
.spec-list > button[data-v-4ec6235d]:hover, .spec-list > button.active[data-v-4ec6235d] { background: var(--surface-muted);
}
.spec-list > button.active[data-v-4ec6235d] { color: var(--ink);
}
.spec-glyph[data-v-4ec6235d] { width: 33px; height: 33px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: var(--radius-sm); color: var(--accent); background: var(--surface);
}
.spec-list button strong[data-v-4ec6235d], .spec-list button small[data-v-4ec6235d] { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.spec-list button strong[data-v-4ec6235d] { font-size: calc(10px * var(--font-scale));
}
.spec-list button small[data-v-4ec6235d] { margin-top: 4px; color: var(--ink-3); font-size: calc(8px * var(--font-scale));
}
.spec-note[data-v-4ec6235d] { margin: auto 5px 4px; padding: 11px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--surface);
}
.spec-note strong[data-v-4ec6235d] { font-size: calc(9px * var(--font-scale));
}
.spec-note p[data-v-4ec6235d] { margin: 5px 0 0; color: var(--ink-3); font-size: calc(8px * var(--font-scale)); line-height: 1.5;
}
.spec-editor[data-v-4ec6235d] { min-width: 0; overflow: auto; padding: 23px;
}
.spec-title-block[data-v-4ec6235d] { display: flex; align-items: center; justify-content: space-between; gap: 20px; margin-bottom: 14px;
}
.spec-identity[data-v-4ec6235d] { min-width: 0; flex: 1;
}
.spec-identity label[data-v-4ec6235d] { display: block; margin-bottom: 5px; color: var(--ink-3); font-size: calc(8.5px * var(--font-scale)); font-weight: 650;
}
.spec-name-input[data-v-4ec6235d] { width: min(520px, 100%); height: 40px; padding: 0 10px; border: 1px solid transparent; border-radius: var(--radius-sm); outline: 0; color: var(--ink); background: transparent; font-size: calc(16px * var(--font-scale)); font-weight: 700; letter-spacing: -0.02em; transition: border-color var(--duration-fast) ease, background var(--duration-fast) ease, box-shadow var(--duration-fast) ease;
}
.spec-name-input[data-v-4ec6235d]:hover { border-color: var(--line); background: var(--surface);
}
.spec-name-input[data-v-4ec6235d]:focus { border-color: var(--accent); background: var(--surface); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 12%, transparent);
}
.usage-badge[data-v-4ec6235d] { padding: 6px 8px; border-radius: var(--radius-xs); color: var(--success) !important; background: var(--success-soft);
}
.token-section[data-v-4ec6235d] { margin-bottom: 12px; padding: 17px; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--surface);
}
.token-section > header[data-v-4ec6235d] { display: flex; align-items: center; gap: 10px; margin-bottom: 16px;
}
.section-icon[data-v-4ec6235d] { width: 34px; height: 34px; display: grid; place-items: center; border-radius: var(--radius-sm); color: var(--accent); background: var(--accent-soft);
}
.token-section h3[data-v-4ec6235d] { margin: 0; font-size: calc(11px * var(--font-scale));
}
.token-section header p[data-v-4ec6235d] { margin: 4px 0 0; color: var(--ink-3); font-size: calc(8.5px * var(--font-scale));
}
.direction-input[data-v-4ec6235d] { min-height: 74px; padding: 10px 11px; color: var(--ink); font-size: calc(10.5px * var(--font-scale)); line-height: 1.65;
}
.color-grid[data-v-4ec6235d] { display: grid; grid-template-columns: repeat(3, 1fr); gap: 9px;
}
.color-grid label > span[data-v-4ec6235d] { display: block; margin-bottom: 6px; color: var(--ink-2); font-size: calc(9px * var(--font-scale)); font-weight: 650;
}
.color-grid label > div[data-v-4ec6235d] { display: grid; grid-template-columns: 36px 1fr; gap: 5px;
}
.color-grid input[type='color'][data-v-4ec6235d] { width: 36px; height: 36px; padding: 3px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--surface);
}
.color-grid .text-input[data-v-4ec6235d] { font-size: calc(9px * var(--font-scale));
}
.form-grid[data-v-4ec6235d] { display: grid; grid-template-columns: 1fr 1fr; gap: 9px;
}
.type-preview[data-v-4ec6235d] { display: grid; grid-template-columns: 1.25fr 0.75fr; gap: 10px; margin-top: 12px;
}
.type-preview > div[data-v-4ec6235d] { min-height: 94px; padding: 12px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--panel);
}
.type-preview span[data-v-4ec6235d], .type-preview small[data-v-4ec6235d] { display: block; color: var(--ink-3); font-size: calc(7.5px * var(--font-scale));
}
.type-preview strong[data-v-4ec6235d] { display: block; margin: 10px 0; font-size: calc(17px * var(--font-scale));
}
.type-preview p[data-v-4ec6235d] { margin: 10px 0; color: var(--ink-2);
}
.range-field[data-v-4ec6235d] { min-height: 48px; display: grid; grid-template-columns: 150px 1fr 62px; align-items: center; gap: 14px;
}
.range-field strong[data-v-4ec6235d], .range-field small[data-v-4ec6235d] { display: block;
}.range-field strong[data-v-4ec6235d] { font-size: calc(9.5px * var(--font-scale));
}.range-field small[data-v-4ec6235d] { margin-top: 3px; color: var(--ink-3); font-size: calc(8px * var(--font-scale));
}
.range-field input[data-v-4ec6235d] { accent-color: var(--accent);
}.range-field output[data-v-4ec6235d] { text-align: right; color: var(--ink-2); font-family: var(--font-mono); font-size: calc(9px * var(--font-scale));
}
.component-selects[data-v-4ec6235d] { margin-top: 11px;
}
.breakpoint-row[data-v-4ec6235d] { min-height: 52px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 10px; margin-top: 11px; padding-top: 12px; border-top: 1px solid var(--line);
}
.breakpoint-row > svg[data-v-4ec6235d] { color: var(--accent);
}.breakpoint-row strong[data-v-4ec6235d], .breakpoint-row small[data-v-4ec6235d] { display: block;
}.breakpoint-row strong[data-v-4ec6235d] { font-size: calc(9.5px * var(--font-scale));
}.breakpoint-row small[data-v-4ec6235d] { margin-top: 3px; color: var(--ink-3); font-size: calc(8px * var(--font-scale));
}
.bp-inputs[data-v-4ec6235d] { display: flex; gap: 7px;
}
.bp-inputs label[data-v-4ec6235d] { display: grid; justify-items: start; gap: 3px; color: var(--ink-3); font-size: calc(8px * var(--font-scale)); font-weight: 650;
}
.bp-inputs input[data-v-4ec6235d] { width: 74px; height: 30px; padding: 0 8px; border: 1px solid var(--line); border-radius: var(--radius-sm); color: var(--ink); background: var(--surface); font-family: var(--font-mono); font-size: calc(9.5px * var(--font-scale));
}
.spec-preview-panel[data-v-4ec6235d] { min-height: 0; overflow: auto; padding: 14px; border-left: 1px solid var(--line); background: var(--panel);
}
.spec-preview-panel > header[data-v-4ec6235d] { height: 34px; display: flex; align-items: center; justify-content: space-between; color: var(--ink-2); font-size: calc(9.5px * var(--font-scale)); font-weight: 700;
}
.component-preview[data-v-4ec6235d] { overflow: hidden; border: var(--pv-border-width, 1px) solid var(--pv-border, var(--line)); border-radius: var(--pv-radius, 10px); color: var(--pv-ink); background: var(--pv-bg); box-shadow: var(--pv-shadow, none); font-family: inherit;
}
.component-preview section[data-v-4ec6235d] { min-height: 290px; padding: var(--pv-section-gap, 48px) 24px; background: var(--pv-surface, color-mix(in srgb, var(--pv-bg) 91%, #dfe6f3));
}
.component-preview section > small[data-v-4ec6235d] { color: var(--pv-primary); font-size: calc(8px * var(--font-scale)); font-weight: 700;
}
.component-preview h2[data-v-4ec6235d] { margin: 12px 0; font-family: var(--pv-heading-font, inherit); font-size: calc(26px * var(--font-scale)); font-weight: var(--pv-heading-weight, 700); line-height: 1.12; letter-spacing: var(--pv-letter-spacing, 0);
}
.component-preview p[data-v-4ec6235d] { margin: 0 0 18px; color: var(--pv-muted, color-mix(in srgb, var(--pv-ink) 65%, var(--pv-bg))); font-size: calc(9.5px * var(--font-scale)); line-height: var(--pv-line-height, 1.6);
}
.pv-actions[data-v-4ec6235d] { display: flex; gap: 6px;
}
.pv-actions button[data-v-4ec6235d] { height: 28px; padding: 0 10px; border-radius: var(--pv-button-radius, 8px); color: #fff; background: var(--pv-primary); font-size: calc(8px * var(--font-scale));
}
.pv-actions button[data-v-4ec6235d]:last-child { border: var(--pv-border-width, 1px) solid var(--pv-border, transparent); color: var(--pv-ink); background: var(--pv-bg);
}
.component-preview footer[data-v-4ec6235d] { display: flex; flex-wrap: wrap; gap: 5px; padding: 11px;
}
.pv-chip[data-v-4ec6235d] { padding: 5px 6px; border-radius: var(--pv-button-radius, 8px); color: color-mix(in srgb, var(--pv-ink) 65%, transparent); background: color-mix(in srgb, var(--pv-ink) 7%, var(--pv-bg)); font-size: calc(7.5px * var(--font-scale));
}
.pv-chip.pv-success[data-v-4ec6235d] { color: #fff; background: var(--pv-success);
}
.pv-chip.pv-warning[data-v-4ec6235d] { color: #fff; background: var(--pv-warning);
}
.pv-chip.pv-danger[data-v-4ec6235d] { color: #fff; background: var(--pv-danger);
}
.preview-note[data-v-4ec6235d] { margin: 9px 2px 0; color: var(--ink-3); font-size: calc(8px * var(--font-scale)); line-height: 1.6;
}
.spec-mapping[data-v-4ec6235d] { margin-top: 12px; padding: 12px; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--surface);
}
.spec-mapping h3[data-v-4ec6235d] { margin: 0 0 8px; font-size: calc(10px * var(--font-scale));
}.spec-mapping > div[data-v-4ec6235d] { display: flex; align-items: center; justify-content: space-between; min-height: 31px; color: var(--ink-2); font-size: calc(8.5px * var(--font-scale));
}.spec-mapping strong[data-v-4ec6235d] { color: var(--success); font-size: calc(8px * var(--font-scale));
}.spec-mapping em[data-v-4ec6235d] { color: var(--warning); font-size: calc(8px * var(--font-scale)); font-style: normal;
}
.spec-mapping .mapping-empty[data-v-4ec6235d] { display: grid; justify-content: stretch; gap: 4px; padding: 7px 0; line-height: 1.45;
}.spec-mapping .mapping-empty em[data-v-4ec6235d] { color: var(--ink-3);
}
@media (max-width: 1180px) {
.spec-layout[data-v-4ec6235d] { grid-template-columns: 210px 1fr;
}.spec-preview-panel[data-v-4ec6235d] { display: none;
}
}
@media (prefers-reduced-motion: reduce) {
.spec-name-input[data-v-4ec6235d] { transition: none;
}
}

.asset-page[data-v-c721a423] { position: relative; width: 100%; height: 100%; display: flex; flex-direction: column; background: var(--canvas);
}
.asset-heading[data-v-c721a423] { min-height: 92px; display: flex; align-items: center; justify-content: space-between; gap: 24px; padding: 20px 28px; border-bottom: 1px solid var(--line); background: var(--panel);
}
.asset-heading h1[data-v-c721a423] { margin: 0; font-size: calc(19px * var(--font-scale)); letter-spacing: -0.02em;
}.asset-heading p[data-v-c721a423] { margin: 6px 0 0; color: var(--ink-3); font-size: calc(10.5px * var(--font-scale));
}
.asset-toolbar[data-v-c721a423] { min-height: 54px; display: flex; align-items: center; gap: 9px; padding: 0 28px; border-bottom: 1px solid var(--line); background: var(--panel);
}
.asset-search[data-v-c721a423] { width: 290px; height: 34px; display: flex; align-items: center; gap: 8px; padding: 0 9px; border: 1px solid var(--line); border-radius: var(--radius-sm); color: var(--ink-3); background: var(--surface);
}
.asset-search input[data-v-c721a423] { min-width: 0; flex: 1; border: 0; outline: 0; background: transparent; font-size: calc(10px * var(--font-scale));
}.asset-search[data-v-c721a423]:focus-within { border-color: var(--accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 12%, transparent);
}
.filter-tabs[data-v-c721a423] { display: flex; gap: 2px; padding: 3px; border-radius: var(--radius-sm); background: var(--surface-muted);
}.filter-tabs button[data-v-c721a423] { height: 27px; padding: 0 9px; border-radius: var(--radius-xs); color: var(--ink-3); background: transparent; font-size: calc(9px * var(--font-scale));
}.filter-tabs button.active[data-v-c721a423] { color: var(--ink); background: var(--surface); box-shadow: var(--shadow-sm); font-weight: 650;
}
.asset-toolbar .app-button.active[data-v-c721a423] { border-color: var(--accent-border); color: var(--accent); background: var(--accent-soft);
}
.asset-toolbar > span[data-v-c721a423] { margin-left: auto; color: var(--ink-3); font-size: calc(9px * var(--font-scale));
}
.asset-scroll[data-v-c721a423] { min-height: 0; flex: 1; overflow: auto; padding: 22px 28px 80px;
}.asset-grid[data-v-c721a423] { display: grid; grid-template-columns: repeat(4, minmax(180px, 1fr)); gap: 14px;
}
.asset-card[data-v-c721a423] { overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--surface); cursor: pointer; transition: border-color var(--duration-state) ease, transform var(--duration-state) var(--ease-out-quart);
}.asset-card[data-v-c721a423]:hover { border-color: var(--accent-border); transform: translateY(-1px);
}
.asset-preview[data-v-c721a423] { position: relative; height: 150px; display: grid; place-items: center; overflow: hidden; color: color-mix(in srgb, var(--asset-color) 65%, var(--ink)); background: color-mix(in srgb, var(--asset-color) 30%, var(--surface-muted));
}
.asset-image[data-v-c721a423] { width: 100%; height: 100%; object-fit: cover;
}
.detail-preview .asset-image[data-v-c721a423] { object-fit: contain;
}
.asset-info[data-v-c721a423] { padding: 11px;
}.asset-type[data-v-c721a423] { color: var(--accent); font-size: calc(8px * var(--font-scale)); font-weight: 700;
}.asset-info h2[data-v-c721a423] { margin: 5px 0 7px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: calc(10.5px * var(--font-scale));
}.asset-info p[data-v-c721a423] { display: flex; justify-content: space-between; gap: 8px; margin: 0; color: var(--ink-3); font-size: calc(8px * var(--font-scale));
}.asset-info em[data-v-c721a423] { font-style: normal;
}
.asset-empty[data-v-c721a423] { min-height: 400px; display: flex; flex-direction: column; align-items: center; justify-content: center; border: 1px dashed var(--line-strong); border-radius: var(--radius-md); color: var(--ink-3);
}.asset-empty h2[data-v-c721a423] { margin: 11px 0 0; color: var(--ink); font-size: calc(14px * var(--font-scale));
}.asset-empty p[data-v-c721a423] { margin: 6px 0 14px; font-size: calc(10px * var(--font-scale));
}
.asset-tip[data-v-c721a423] { position: absolute; z-index: 5; right: 20px; bottom: 18px; width: 330px; display: grid; grid-template-columns: auto 1fr; gap: 9px; padding: 11px; border: 1px solid var(--accent-border); border-radius: var(--radius-md); background: color-mix(in srgb, var(--accent-soft) 94%, transparent); box-shadow: var(--shadow-sm); backdrop-filter: blur(10px);
}.asset-tip > span[data-v-c721a423] { width: 31px; height: 31px; display: grid; place-items: center; border-radius: var(--radius-sm); color: var(--accent); background: var(--surface);
}.asset-tip strong[data-v-c721a423] { color: var(--accent-strong); font-size: calc(9.5px * var(--font-scale));
}.asset-tip p[data-v-c721a423] { margin: 4px 0 0; color: var(--ink-2); font-size: calc(8.5px * var(--font-scale)); line-height: 1.45;
}
.asset-detail[data-v-c721a423] { display: grid; grid-template-columns: 200px 1fr; gap: 18px;
}.asset-detail .asset-preview[data-v-c721a423] { height: 160px; border-radius: var(--radius-sm);
}.asset-detail dl[data-v-c721a423] { margin: 0; display: grid; align-content: start;
}.asset-detail dl div[data-v-c721a423] { display: grid; grid-template-columns: 90px 1fr; gap: 12px; padding: 10px 0; border-bottom: 1px solid var(--line);
}.asset-detail dt[data-v-c721a423] { color: var(--ink-3);
}.asset-detail dd[data-v-c721a423] { margin: 0; color: var(--ink); font-weight: 650;
}
.asset-url[data-v-c721a423] { word-break: break-all; font-family: var(--font-mono); font-size: calc(8.5px * var(--font-scale)); font-weight: 500 !important; color: var(--ink-2) !important;
}
@media (max-width: 1180px) {
.asset-grid[data-v-c721a423] { grid-template-columns: repeat(3, minmax(180px, 1fr));
}
}.asset-heading[data-v-c721a423], .asset-toolbar[data-v-c721a423] { padding-left: 22px; padding-right: 22px;
}

.doc-builder[data-v-102c81c7] {
  position: relative;
  flex: none;
  margin: 0;
  background: #fff;
  box-shadow: 0 0 0 1px rgb(35 43 57 / 0.16), 0 4px 10px rgb(35 43 57 / 0.08);
  transition: width 180ms var(--ease-out-quart), height 180ms var(--ease-out-quart);
}
.artboard-label[data-v-102c81c7] {
  position: absolute;
  left: 0;
  bottom: calc(100% + 9px);
  display: flex;
  align-items: center;
  gap: 7px;
  color: var(--ink-3);
  font-size: calc(8px * var(--font-scale));
  white-space: nowrap;
  pointer-events: none;
}
.artboard-label span[data-v-102c81c7] { color: var(--ink-2); font-weight: 650;
}
.artboard-label strong[data-v-102c81c7] { font-family: var(--font-mono); font-size: inherit; font-weight: 500;
}
.designer-surface[data-v-102c81c7] {
  position: absolute;
  inset: 0;
  display: block;
  overflow: visible;
  outline: 0;
}
.designer-selection[data-v-102c81c7] {
  position: absolute;
  z-index: var(--z-floating-control);
  border: 1.5px solid var(--accent);
  pointer-events: none;
  will-change: left, top, width, height;
}
.resize-handle[data-v-102c81c7] {
  position: absolute;
  z-index: 2;
  width: 9px;
  height: 9px;
  padding: 0;
  border: 1px solid var(--accent);
  border-radius: 2px;
  background: #fff;
  box-shadow: 0 1px 3px rgb(23 25 29 / 0.18);
  pointer-events: auto;
}
.handle-nw[data-v-102c81c7] { left: -5px; top: -5px; cursor: nwse-resize;
}
.handle-n[data-v-102c81c7] { left: calc(50% - 4px); top: -5px; cursor: ns-resize;
}
.handle-ne[data-v-102c81c7] { right: -5px; top: -5px; cursor: nesw-resize;
}
.handle-e[data-v-102c81c7] { right: -5px; top: calc(50% - 4px); cursor: ew-resize;
}
.handle-se[data-v-102c81c7] { right: -5px; bottom: -5px; cursor: nwse-resize;
}
.handle-s[data-v-102c81c7] { left: calc(50% - 4px); bottom: -5px; cursor: ns-resize;
}
.handle-sw[data-v-102c81c7] { left: -5px; bottom: -5px; cursor: nesw-resize;
}
.handle-w[data-v-102c81c7] { left: -5px; top: calc(50% - 4px); cursor: ew-resize;
}
.selection-label[data-v-102c81c7] {
  position: absolute;
  left: -1px;
  bottom: calc(100% + 5px);
  max-width: 190px;
  height: 24px;
  overflow: hidden;
  padding: 0 8px;
  border: 0;
  border-radius: 5px;
  color: #fff;
  background: var(--accent);
  font-family: var(--font-mono);
  font-size: calc(7.5px * var(--font-scale));
  font-weight: 650;
  line-height: 24px;
  text-overflow: ellipsis;
  white-space: nowrap;
  cursor: grab;
  pointer-events: auto;
}
.selection-label[data-v-102c81c7]:active { cursor: grabbing;
}
.selection-metrics[data-v-102c81c7] {
  position: absolute;
  left: -1px;
  top: calc(100% + 6px);
  padding: 3px 6px;
  border-radius: 4px;
  color: #fff;
  background: var(--accent-strong);
  font-family: var(--font-mono);
  font-size: calc(7px * var(--font-scale));
  white-space: nowrap;
}
.selection-actions[data-v-102c81c7] {
  position: absolute;
  right: -1px;
  bottom: calc(100% + 5px);
  display: inline-flex;
  gap: 2px;
  height: 28px;
  padding: 3px;
  border-radius: 7px;
  background: var(--accent-strong);
  box-shadow: var(--shadow-sm);
  pointer-events: auto;
}
.selection-actions button[data-v-102c81c7] {
  min-width: 30px;
  padding: 0 6px;
  border-radius: 4px;
  color: #fff;
  background: transparent;
  font-size: calc(7.5px * var(--font-scale));
  white-space: nowrap;
}
.selection-actions button[data-v-102c81c7]:hover { background: rgb(255 255 255 / 0.16);
}
.designer-selection.flip .selection-label[data-v-102c81c7], .designer-selection.flip .selection-actions[data-v-102c81c7] { top: 5px; bottom: auto;
}
.designer-selection.root .resize-handle[data-v-102c81c7], .designer-selection.root .selection-actions[data-v-102c81c7] { display: none;
}
.doc-builder.interacting .designer-selection[data-v-102c81c7] { border-color: var(--accent-strong);
}
@media (prefers-reduced-motion: reduce) {
.doc-builder[data-v-102c81c7] { transition: none;
}
}

.cloud-document-frame[data-v-a9f367c2] { width: 100%; height: 100%; min-height: 680px; border: 0; background: #fff;
}
.page-loading[data-v-a9f367c2] { min-height: 680px; display: grid; place-items: center; color: var(--ink-3); background: var(--surface);
}
.visual-editor[data-v-a9f367c2] { width: 100%; height: 100%; overflow: hidden; background: var(--canvas);
}
.editor-topbar[data-v-a9f367c2] { position: relative; z-index: 40; height: 58px; display: grid; grid-template-columns: 290px 1fr auto; align-items: center; border-bottom: 1px solid var(--line); background: color-mix(in srgb, var(--panel) 96%, transparent); backdrop-filter: blur(14px); -webkit-app-region: drag;
}
.editor-topbar button[data-v-a9f367c2] { -webkit-app-region: no-drag;
}.editor-brand[data-v-a9f367c2] { display: flex; align-items: center; gap: 9px; padding: 0 13px;
}.editor-brand > button[data-v-a9f367c2] { width: 30px; height: 30px; display: grid; place-items: center; border-radius: var(--radius-sm); color: var(--ink-2); background: transparent;
}.editor-brand > button[data-v-a9f367c2]:hover { background: var(--surface-muted);
}.editor-brand div strong[data-v-a9f367c2], .editor-brand div small[data-v-a9f367c2] { display: block;
}.editor-brand div strong[data-v-a9f367c2] { font-size: calc(10.5px * var(--font-scale));
}.editor-brand div small[data-v-a9f367c2] { margin-top: 3px; color: var(--success); font-size: calc(8px * var(--font-scale));
}
.editor-tools[data-v-a9f367c2] { display: flex; align-items: center; justify-content: center; gap: 9px;
}.history-tools[data-v-a9f367c2], .mode-switch[data-v-a9f367c2], .device-switch[data-v-a9f367c2] { display: flex; gap: 2px; padding: 3px; border-radius: var(--radius-sm); background: var(--surface-muted);
}.history-tools button[data-v-a9f367c2], .device-switch button[data-v-a9f367c2] { width: 27px; height: 27px; display: grid; place-items: center; border-radius: var(--radius-xs); color: var(--ink-3); background: transparent;
}.mode-switch button[data-v-a9f367c2] { height: 27px; display: flex; align-items: center; gap: 5px; padding: 0 9px; border-radius: var(--radius-xs); color: var(--ink-3); background: transparent; font-size: calc(9px * var(--font-scale));
}.mode-switch button.active[data-v-a9f367c2], .device-switch button.active[data-v-a9f367c2] { color: var(--ink); background: var(--surface); box-shadow: var(--shadow-sm);
}.viewport-size[data-v-a9f367c2] { color: var(--ink-3); font-family: var(--font-mono); font-size: calc(8.5px * var(--font-scale));
}.editor-actions[data-v-a9f367c2] { display: flex; gap: 6px; padding-right: 12px;
}
.editor-layout[data-v-a9f367c2] { height: calc(100% - 58px); display: grid; grid-template-columns: 236px minmax(0, 1fr) 310px;
}.layer-panel[data-v-a9f367c2], .property-panel[data-v-a9f367c2] { min-height: 0; display: flex; flex-direction: column; background: var(--panel);
}.layer-panel[data-v-a9f367c2] { border-right: 1px solid var(--line);
}.layer-panel > header[data-v-a9f367c2] { height: 43px; display: flex; align-items: center; gap: 8px; padding: 0 11px; border-bottom: 1px solid var(--line);
}.layer-panel > header strong[data-v-a9f367c2] { font-size: calc(10.5px * var(--font-scale));
}.layer-panel > header span[data-v-a9f367c2] { margin-left: auto; color: var(--ink-3); font-family: var(--font-mono); font-size: calc(8px * var(--font-scale));
}.layer-search[data-v-a9f367c2] { margin: 9px;
}.layer-search input[data-v-a9f367c2] { width: 100%; height: 31px; padding: 0 9px; border: 1px solid var(--line); border-radius: var(--radius-xs); outline: 0; background: var(--surface); font-size: calc(9px * var(--font-scale));
}.layer-search input[data-v-a9f367c2]:focus { border-color: var(--accent);
}.layer-tree[data-v-a9f367c2] { min-height: 0; flex: 1; overflow: auto; padding: 0 7px;
}.layer-tree button[data-v-a9f367c2] { width: 100%; height: 33px; display: grid; grid-template-columns: auto auto minmax(0, 1fr) auto; align-items: center; gap: 6px; border-radius: var(--radius-xs); color: var(--ink-2); text-align: left; background: transparent; font-size: calc(9.5px * var(--font-scale));
}.layer-tree button[data-v-a9f367c2]:hover, .layer-tree button.active[data-v-a9f367c2] { color: var(--ink); background: var(--surface-muted);
}.layer-tree button.active[data-v-a9f367c2] { color: var(--accent-strong); background: var(--accent-soft); font-weight: 650;
}.layer-tag[data-v-a9f367c2] { min-width: 28px; color: var(--ink-3); font-family: var(--font-mono); font-size: calc(6.5px * var(--font-scale));
}.layer-lock[data-v-a9f367c2] { color: var(--ink-3);
}.layer-panel > footer[data-v-a9f367c2] { height: 38px; display: flex; align-items: center; justify-content: space-between; padding: 0 11px; border-top: 1px solid var(--line); color: var(--ink-3); font-size: calc(8.5px * var(--font-scale));
}.layer-panel > footer button[data-v-a9f367c2] { width: 25px; height: 25px; display: grid; place-items: center; border-radius: var(--radius-xs); color: var(--ink-3); background: transparent;
}
.editor-stage[data-v-a9f367c2] { position: relative; min-width: 0; min-height: 0; display: grid; grid-template-rows: 52px minmax(0, 1fr); overflow: hidden; background-color: var(--canvas); background-image: radial-gradient(circle, color-mix(in srgb, var(--ink-3) 23%, transparent) 0.8px, transparent 0.9px); background-size: 18px 18px;
}.stage-scroll-area[data-v-a9f367c2] { min-width: 0; min-height: 0; overflow: auto; padding: 42px 34px 70px;
}.stage-toolbar[data-v-a9f367c2] { position: relative; z-index: 6; align-self: center; width: max-content; max-width: calc(100% - 28px); height: 38px; margin: 0 14px; display: flex; align-items: center; gap: 8px; padding: 6px 8px; border: 1px solid var(--line); border-radius: var(--radius-xs); color: var(--ink-3); background: color-mix(in srgb, var(--surface) 96%, transparent); box-shadow: var(--shadow-sm); font-size: calc(8px * var(--font-scale));
}.stage-toolbar strong[data-v-a9f367c2] { color: var(--ink-2); font-family: var(--font-mono);
}.design-scene-shell[data-v-a9f367c2] { width: max-content; min-width: 1px; min-height: 1px; margin: 0 auto; overflow: visible;
}.preview-shell[data-v-a9f367c2] { max-width: 100%; min-height: 720px; margin: 0 auto; overflow: auto; border: 1px solid var(--line-strong); border-radius: var(--radius-sm); background: #fff; box-shadow: 0 16px 42px rgb(30 39 52 / 0.16); transition: width var(--duration-panel) var(--ease-out-quart);
}.device-mobile .preview-shell[data-v-a9f367c2] { min-height: 820px;
}.code-editor[data-v-a9f367c2] { width: min(980px, 100%); min-height: 680px; margin: 0 auto; overflow: hidden; border: 1px solid var(--line-strong); border-radius: var(--radius-sm); background: #15191f; box-shadow: var(--shadow-md);
}.code-editor header[data-v-a9f367c2] { height: 39px; display: flex; align-items: center; justify-content: space-between; padding: 0 12px; border-bottom: 1px solid #303640; color: #b8c0cc; background: #1d2229;
}.file-tab[data-v-a9f367c2] { display: flex; align-items: center; gap: 6px; font-size: calc(8.5px * var(--font-scale));
}.code-editor header button[data-v-a9f367c2] { display: flex; align-items: center; gap: 5px; padding: 5px 7px; border-radius: var(--radius-xs); color: #9EABC0; background: transparent;
}.code-editor header button[data-v-a9f367c2]:hover { color: #fff; background: #303640;
}.code-editor pre[data-v-a9f367c2] { margin: 0; overflow: auto; padding: 18px 20px; color: #c7d3e3; font-family: var(--font-mono); font-size: calc(10.5px * var(--font-scale)); line-height: 1.75; white-space: pre-wrap;
}.editor-swap-enter-active[data-v-a9f367c2], .editor-swap-leave-active[data-v-a9f367c2] { transition: opacity var(--duration-state) ease, transform var(--duration-state) var(--ease-out-quart);
}.editor-swap-enter-from[data-v-a9f367c2] { opacity: 0; transform: translateX(8px);
}.editor-swap-leave-to[data-v-a9f367c2] { opacity: 0; transform: translateX(-5px);
}
.property-panel[data-v-a9f367c2] { border-left: 1px solid var(--line);
}.property-tabs[data-v-a9f367c2] { height: 43px; display: grid; grid-template-columns: repeat(3, 1fr); padding: 6px 7px 0; border-bottom: 1px solid var(--line);
}.property-tabs button[data-v-a9f367c2] { position: relative; color: var(--ink-3); background: transparent; font-size: calc(9.5px * var(--font-scale));
}.property-tabs button.active[data-v-a9f367c2] { color: var(--ink); font-weight: 680;
}.property-tabs button.active[data-v-a9f367c2]::after { content: ''; position: absolute; left: 12px; right: 12px; bottom: -1px; height: 2px; border-radius: 2px 2px 0 0; background: var(--accent);
}.element-path[data-v-a9f367c2] { height: 43px; display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 0 11px; border-bottom: 1px solid var(--line);
}.element-path span[data-v-a9f367c2] { min-width: 0; overflow: hidden; color: var(--ink-3); text-overflow: ellipsis; white-space: nowrap; font-family: var(--font-mono); font-size: calc(7.5px * var(--font-scale));
}.element-path strong[data-v-a9f367c2] { padding: 4px 6px; border-radius: var(--radius-xs); color: var(--accent-strong); background: var(--accent-soft); font-family: var(--font-mono); font-size: calc(7.5px * var(--font-scale));
}.property-scroll[data-v-a9f367c2] { min-height: 0; flex: 1; overflow: auto;
}.property-scroll > section[data-v-a9f367c2] { padding: 13px 11px; border-bottom: 1px solid var(--line);
}.property-scroll h3[data-v-a9f367c2] { margin: 0 0 10px; display: flex; align-items: center; justify-content: space-between; font-size: calc(9.5px * var(--font-scale));
}.property-scroll h3 span[data-v-a9f367c2] { color: var(--ink-3); font-size: calc(8px * var(--font-scale)); font-weight: 500;
}.element-card[data-v-a9f367c2] { min-height: 48px; display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 9px; padding: 7px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--surface);
}.element-card > span[data-v-a9f367c2] { min-width: 39px; padding: 6px; border-radius: 6px; color: var(--accent); background: var(--accent-soft); text-align: center; font-family: var(--font-mono); font-size: calc(7.5px * var(--font-scale)); font-weight: 700;
}.element-card strong[data-v-a9f367c2], .element-card small[data-v-a9f367c2] { display: block;
}.element-card strong[data-v-a9f367c2] { font-size: calc(9.5px * var(--font-scale));
}.element-card small[data-v-a9f367c2] { margin-top: 3px; color: var(--ink-3); font-family: var(--font-mono); font-size: calc(7px * var(--font-scale));
}.metric-grid[data-v-a9f367c2] { display: grid; grid-template-columns: repeat(4, 1fr); gap: 5px;
}.metric-grid > div[data-v-a9f367c2] { height: 35px; display: flex; align-items: center; gap: 5px; padding: 0 6px; border: 1px solid var(--line); border-radius: var(--radius-xs); background: var(--surface);
}.metric-grid small[data-v-a9f367c2] { color: var(--ink-3); font-size: calc(7px * var(--font-scale));
}.metric-grid strong[data-v-a9f367c2] { font-family: var(--font-mono); font-size: calc(8px * var(--font-scale));
}.property-scroll .text-area[data-v-a9f367c2] { min-height: 66px; font-size: calc(9.5px * var(--font-scale));
}.two-fields[data-v-a9f367c2] { display: grid; grid-template-columns: 1fr 1fr; gap: 7px; margin-top: 10px;
}.number-input[data-v-a9f367c2] { height: 36px; display: grid; grid-template-columns: 1fr auto; align-items: center; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--surface);
}.number-input input[data-v-a9f367c2] { width: 100%; border: 0; outline: 0; padding: 0 9px; background: transparent; font-family: var(--font-mono); font-size: calc(9px * var(--font-scale));
}.number-input span[data-v-a9f367c2] { padding-right: 8px; color: var(--ink-3); font-size: calc(8px * var(--font-scale));
}.color-field[data-v-a9f367c2] { display: block; margin-top: 10px;
}.color-field > div[data-v-a9f367c2] { display: grid; grid-template-columns: 36px 1fr; gap: 5px;
}.color-field input[type='color'][data-v-a9f367c2] { width: 36px; height: 36px; padding: 3px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--surface);
}.color-field .text-input[data-v-a9f367c2] { font-size: calc(9px * var(--font-scale));
}.spacing-box[data-v-a9f367c2] { padding: 9px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--surface);
}.spacing-box > span[data-v-a9f367c2] { color: var(--ink-3); font-size: calc(8px * var(--font-scale));
}.spacing-box > div[data-v-a9f367c2] { display: grid; grid-template-columns: repeat(4, 1fr); gap: 5px; margin: 7px 0;
}.spacing-box input[data-v-a9f367c2] { width: 100%; height: 28px; border: 1px solid var(--line); border-radius: 5px; text-align: center; background: var(--panel); font-family: var(--font-mono); font-size: calc(8px * var(--font-scale));
}.spacing-box em[data-v-a9f367c2] { color: var(--ink-3); font-size: calc(7.5px * var(--font-scale)); font-style: normal;
}.breakpoint-card[data-v-a9f367c2] { min-height: 58px; display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 10px; padding: 9px; border: 1px solid var(--accent-border); border-radius: var(--radius-sm); color: var(--accent); background: var(--accent-soft);
}.breakpoint-card strong[data-v-a9f367c2], .breakpoint-card small[data-v-a9f367c2] { display: block;
}.breakpoint-card strong[data-v-a9f367c2] { color: var(--ink); font-size: calc(9.5px * var(--font-scale));
}.breakpoint-card small[data-v-a9f367c2] { margin-top: 3px; color: var(--ink-3); font-size: calc(8px * var(--font-scale));
}.responsive-field[data-v-a9f367c2] { display: block; margin-top: 10px;
}.toggle-row[data-v-a9f367c2] { min-height: 54px; display: flex; align-items: center; justify-content: space-between; gap: 12px; margin-top: 10px; padding-top: 10px; border-top: 1px solid var(--line);
}.toggle-row strong[data-v-a9f367c2], .toggle-row small[data-v-a9f367c2] { display: block;
}.toggle-row strong[data-v-a9f367c2] { font-size: calc(9px * var(--font-scale));
}.toggle-row small[data-v-a9f367c2] { margin-top: 3px; color: var(--ink-3); font-size: calc(7.5px * var(--font-scale));
}.toggle-row input[data-v-a9f367c2] { width: 32px; height: 18px; accent-color: var(--accent);
}.ai-property[data-v-a9f367c2] { padding: 13px 11px;
}.ai-head[data-v-a9f367c2] { display: grid; grid-template-columns: auto 1fr; gap: 9px; margin-bottom: 14px; padding: 11px; border: 1px solid var(--accent-border); border-radius: var(--radius-md); background: var(--accent-soft);
}.ai-head > span[data-v-a9f367c2] { width: 32px; height: 32px; display: grid; place-items: center; border-radius: var(--radius-sm); color: var(--accent); background: var(--surface);
}.ai-head strong[data-v-a9f367c2] { color: var(--accent-strong); font-size: calc(10px * var(--font-scale));
}.ai-head p[data-v-a9f367c2] { margin: 4px 0 0; color: var(--ink-2); font-size: calc(8px * var(--font-scale)); line-height: 1.45;
}.ai-property .text-area[data-v-a9f367c2] { min-height: 110px;
}.prompt-chips[data-v-a9f367c2] { display: flex; flex-wrap: wrap; gap: 5px; margin: 8px 0 13px;
}.prompt-chips button[data-v-a9f367c2] { padding: 5px 7px; border: 1px solid var(--line); border-radius: var(--radius-xs); color: var(--ink-2); background: var(--surface); font-size: calc(8px * var(--font-scale));
}.prompt-chips button[data-v-a9f367c2]:hover { border-color: var(--accent-border); color: var(--accent);
}.ai-scope[data-v-a9f367c2] { padding: 10px; border-radius: var(--radius-sm); background: var(--surface-muted);
}.ai-scope strong[data-v-a9f367c2] { font-size: calc(8.5px * var(--font-scale));
}.ai-scope p[data-v-a9f367c2] { margin: 5px 0; color: var(--ink-2); font-family: var(--font-mono); font-size: calc(7.5px * var(--font-scale));
}.ai-scope span[data-v-a9f367c2] { color: var(--ink-3); font-size: calc(7.5px * var(--font-scale));
}.ai-submit[data-v-a9f367c2] { width: 100%; margin-top: 12px;
}.history-list[data-v-a9f367c2] { display: grid; gap: 5px;
}.history-list button[data-v-a9f367c2] { min-height: 55px; display: grid; grid-template-columns: auto 1fr auto auto; align-items: center; gap: 9px; padding: 8px; border: 1px solid var(--line); border-radius: var(--radius-sm); text-align: left; background: var(--surface);
}.history-list button[data-v-a9f367c2]:hover { border-color: var(--accent-border); background: var(--accent-soft);
}.history-list button > span[data-v-a9f367c2] { width: 32px; height: 32px; display: grid; place-items: center; border-radius: var(--radius-sm); color: var(--accent); background: var(--accent-soft);
}.history-list strong[data-v-a9f367c2], .history-list small[data-v-a9f367c2] { display: block;
}.history-list strong[data-v-a9f367c2] { font-size: calc(9.5px * var(--font-scale));
}.history-list small[data-v-a9f367c2] { margin-top: 3px; color: var(--ink-3); font-size: calc(8px * var(--font-scale));
}.history-list em[data-v-a9f367c2] { color: var(--success); font-size: calc(8px * var(--font-scale)); font-style: normal;
}
.editor-brand small.dirty[data-v-a9f367c2] { color: var(--warning);
}
.stage-toolbar[data-v-a9f367c2] { z-index: var(--z-floating-control); padding: 4px; gap: 5px;
}
.stage-mode[data-v-a9f367c2] { max-width: 230px; overflow: hidden; padding: 0 6px; text-overflow: ellipsis; white-space: nowrap;
}
.insert-tools[data-v-a9f367c2], .zoom-tools[data-v-a9f367c2] { display: inline-flex; align-items: center; gap: 2px;
}
.insert-tools[data-v-a9f367c2] { padding-right: 5px; border-right: 1px solid var(--line);
}
.insert-tools button[data-v-a9f367c2], .zoom-tools button[data-v-a9f367c2] { height: 28px; display: inline-flex; align-items: center; justify-content: center; gap: 5px; padding: 0 8px; border-radius: var(--radius-xs); color: var(--ink-2); background: transparent; font-size: calc(8.5px * var(--font-scale));
}
.insert-tools button[data-v-a9f367c2]:hover, .zoom-tools button[data-v-a9f367c2]:hover { color: var(--ink); background: var(--surface-muted);
}
.insert-tools button span[data-v-a9f367c2] { width: 15px; color: var(--accent); font-family: var(--font-mono); font-weight: 750;
}
.zoom-tools[data-v-a9f367c2] { margin-left: auto; padding-left: 5px; border-left: 1px solid var(--line);
}
.zoom-tools button[data-v-a9f367c2]:first-child, .zoom-tools button[data-v-a9f367c2]:last-child { width: 28px; padding: 0; font-size: 15px;
}
.zoom-tools button[data-v-a9f367c2]:nth-child(2) { min-width: 52px; font-family: var(--font-mono);
}
.snap-toggle[data-v-a9f367c2] { display: inline-flex; align-items: center; gap: 5px; padding: 0 5px; color: var(--ink-3); font-size: calc(8px * var(--font-scale)); white-space: nowrap;
}
.snap-toggle input[data-v-a9f367c2] { width: 14px; height: 14px; accent-color: var(--accent);
}
.preview-shell[data-v-a9f367c2] { max-width: none; overflow: visible; transform-origin: top left;
}
.design-scene-shell[data-v-a9f367c2] { transform-origin: top left;
}
.compact-color input[type='color'][data-v-a9f367c2] { width: 100%; height: 36px; padding: 3px; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--surface);
}
.shadow-field[data-v-a9f367c2], .attribute-field[data-v-a9f367c2], .advanced-css[data-v-a9f367c2] { display: block; margin-top: 10px;
}
.advanced-css .text-area[data-v-a9f367c2] { min-height: 96px; line-height: 1.55;
}
.mono[data-v-a9f367c2] { font-family: var(--font-mono); font-size: calc(8.5px * var(--font-scale));
}
@media (max-width: 1180px) {
.editor-layout[data-v-a9f367c2] { grid-template-columns: 68px minmax(0, 1fr) 290px;
}.layer-panel > header strong[data-v-a9f367c2], .layer-panel > header span[data-v-a9f367c2], .layer-search[data-v-a9f367c2], .layer-tree button > span[data-v-a9f367c2]:not(.layer-tag), .layer-lock[data-v-a9f367c2], .layer-panel > footer span[data-v-a9f367c2] { display: none;
}.layer-panel > header[data-v-a9f367c2] { justify-content: center;
}.layer-tree button[data-v-a9f367c2] { grid-template-columns: 1fr; justify-items: center; padding: 0 !important;
}.layer-tree button > svg[data-v-a9f367c2] { display: none;
}.layer-tag[data-v-a9f367c2] { min-width: 34px; text-align: center;
}.editor-topbar[data-v-a9f367c2] { grid-template-columns: 230px 1fr auto;
}.editor-brand[data-v-a9f367c2] > :not(button):not(.brand-mark) { display: none;
}.editor-actions .app-button[data-v-a9f367c2]:first-child { display: none;
}
}
.floating-asset-toggle[data-v-a9f367c2] { position: fixed; z-index: 60; right: 322px; bottom: 22px; display: inline-flex; align-items: center; gap: 6px; height: 34px; padding: 0 13px; border: 1px solid var(--line); border-radius: 999px; color: var(--ink-2); background: color-mix(in srgb, var(--surface) 94%, transparent); box-shadow: var(--shadow-md); font-size: calc(9.5px * var(--font-scale));
}
.floating-asset-toggle[data-v-a9f367c2]:hover { color: var(--accent); border-color: var(--accent-border);
}
.floating-asset-toggle .fa-dot[data-v-a9f367c2] { width: 7px; height: 7px; border-radius: 50%; background: var(--accent);
}
.asset-panel[data-v-a9f367c2] { position: fixed; z-index: 60; right: 322px; bottom: 66px; width: 288px; max-height: 54vh; display: flex; flex-direction: column; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--panel); box-shadow: 0 18px 48px rgb(30 39 52 / 0.24); overflow: hidden;
}
.asset-panel > header[data-v-a9f367c2] { min-height: 40px; display: flex; align-items: center; justify-content: space-between; padding: 0 12px; border-bottom: 1px solid var(--line);
}
.asset-panel > header strong[data-v-a9f367c2] { font-size: calc(10px * var(--font-scale));
}
.asset-panel > header button[data-v-a9f367c2] { width: 24px; height: 24px; display: grid; place-items: center; border-radius: var(--radius-xs); color: var(--ink-3); background: transparent;
}
.asset-panel > header button[data-v-a9f367c2]:hover { background: var(--surface-muted);
}
.asset-panel-list[data-v-a9f367c2] { min-height: 0; flex: 1; display: grid; grid-template-columns: repeat(2, 1fr); gap: 8px; overflow: auto; padding: 10px;
}
.asset-panel-card[data-v-a9f367c2] { display: block; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-sm); background: var(--surface); cursor: grab;
}
.asset-panel-card[data-v-a9f367c2]:hover { border-color: var(--accent-border); box-shadow: var(--shadow-sm);
}
.asset-panel-card[data-v-a9f367c2]:active { cursor: grabbing;
}
.asset-panel-card img[data-v-a9f367c2] { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; background: var(--surface-muted);
}
.asset-panel-card span[data-v-a9f367c2] { display: block; overflow: hidden; padding: 5px 7px; color: var(--ink-2); font-size: calc(8px * var(--font-scale)); text-overflow: ellipsis; white-space: nowrap;
}
.asset-panel-empty[data-v-a9f367c2] { grid-column: 1 / -1; margin: 0; padding: 18px 8px; color: var(--ink-3); font-size: calc(8.5px * var(--font-scale)); text-align: center;
}
.asset-panel > footer[data-v-a9f367c2] { padding: 8px 12px; border-top: 1px solid var(--line); color: var(--ink-3); font-size: calc(8px * var(--font-scale));
}

.prd-slash-menu[data-v-8f34af2e] { position: fixed; z-index: 10000; width: 280px; max-height: min(430px, calc(100vh - 24px)); overflow: hidden; border: 1px solid var(--line); border-radius: 12px; background: color-mix(in srgb, var(--surface-raised) 97%, transparent); box-shadow: 0 18px 50px rgb(28 36 50 / .18); backdrop-filter: blur(18px);
}
.prd-slash-menu header[data-v-8f34af2e] { height: 43px; display: flex; align-items: center; justify-content: space-between; padding: 0 12px; border-bottom: 1px solid var(--line);
}
.prd-slash-menu header strong[data-v-8f34af2e] { font-size: calc(11px * var(--font-scale));
}.prd-slash-menu header span[data-v-8f34af2e] { max-width: 120px; overflow: hidden; color: var(--ink-3); font-family: var(--font-mono); font-size: calc(9px * var(--font-scale)); text-overflow: ellipsis; white-space: nowrap;
}
.command-list[data-v-8f34af2e] { max-height: 330px; overflow: auto; padding: 5px;
}
.command-list button[data-v-8f34af2e] { width: 100%; min-height: 48px; display: grid; grid-template-columns: 34px 1fr; align-items: center; gap: 9px; padding: 5px 8px; border-radius: 8px; color: var(--ink); text-align: left; background: transparent;
}
.command-list button.active[data-v-8f34af2e] { background: var(--accent-soft);
}
.command-list button > span[data-v-8f34af2e] { width: 31px; height: 31px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: 7px; color: var(--ink-2); background: var(--surface);
}
.command-list button.active > span[data-v-8f34af2e] { border-color: var(--accent-border); color: var(--accent);
}
.command-list strong[data-v-8f34af2e], .command-list small[data-v-8f34af2e] { display: block;
}.command-list strong[data-v-8f34af2e] { font-size: calc(10px * var(--font-scale));
}.command-list small[data-v-8f34af2e] { margin-top: 3px; color: var(--ink-3); font-size: calc(8.5px * var(--font-scale));
}
.prd-slash-menu > p[data-v-8f34af2e] { margin: 0; padding: 25px; color: var(--ink-3); text-align: center; font-size: calc(9.5px * var(--font-scale));
}
.prd-slash-menu footer[data-v-8f34af2e] { height: 35px; display: flex; align-items: center; gap: 5px; padding: 0 10px; border-top: 1px solid var(--line); color: var(--ink-3); background: var(--panel); font-size: calc(8px * var(--font-scale));
}
.prd-slash-menu kbd[data-v-8f34af2e] { padding: 2px 5px; border: 1px solid var(--line); border-radius: 4px; color: var(--ink-2); background: var(--surface); font-family: var(--font-mono); font-size: calc(7.5px * var(--font-scale));
}
.slash-menu-enter-active[data-v-8f34af2e], .slash-menu-leave-active[data-v-8f34af2e] { transition: opacity 150ms ease, transform 180ms var(--ease-out-quart);
}.slash-menu-enter-from[data-v-8f34af2e], .slash-menu-leave-to[data-v-8f34af2e] { opacity: 0; transform: translateY(-7px) scale(.98);
}
@media (prefers-reduced-motion: reduce) {
.slash-menu-enter-active[data-v-8f34af2e], .slash-menu-leave-active[data-v-8f34af2e] { transition: none;
}
}

.prd-editor-page[data-v-829d0e31] { width: 100%; height: 100%; overflow: hidden; background: var(--canvas);
}
.prd-editor-topbar[data-v-829d0e31] { position: relative; z-index: 200; height: 60px; display: grid; grid-template-columns: minmax(250px, 1fr) auto minmax(260px, 1fr); align-items: center; border-bottom: 1px solid var(--line); background: color-mix(in srgb, var(--surface) 97%, transparent); backdrop-filter: blur(18px); -webkit-app-region: drag;
}.prd-editor-topbar button[data-v-829d0e31], .prd-editor-topbar select[data-v-829d0e31] { -webkit-app-region: no-drag;
}
.prd-editor-brand[data-v-829d0e31] { min-width: 0; display: flex; align-items: center; gap: 9px; padding-left: 14px;
}.prd-editor-brand > div[data-v-829d0e31] { min-width: 0;
}.prd-editor-brand strong[data-v-829d0e31], .prd-editor-brand small[data-v-829d0e31] { display: block;
}.prd-editor-brand strong[data-v-829d0e31] { font-size: calc(10.5px * var(--font-scale));
}.prd-editor-brand small[data-v-829d0e31] { display: flex; align-items: center; gap: 5px; margin-top: 3px; color: var(--ink-3); font-size: calc(8px * var(--font-scale));
}.prd-editor-brand small i[data-v-829d0e31] { width: 6px; height: 6px; border-radius: 50%; background: var(--success);
}.prd-editor-brand small i.saving[data-v-829d0e31] { background: var(--warning); animation: save-pulse-829d0e31 1s ease infinite;
}
.prd-mark[data-v-829d0e31] { width: 31px; height: 31px; display: grid; place-items: center; border-radius: 8px; color: var(--accent); background: var(--accent-soft);
}.top-icon[data-v-829d0e31] { width: 31px; height: 31px; display: grid; place-items: center; border-radius: 7px; color: var(--ink-2); background: transparent;
}.top-icon[data-v-829d0e31]:hover, .top-icon.active[data-v-829d0e31] { color: var(--accent); background: var(--accent-soft);
}
.format-toolbar[data-v-829d0e31] { display: flex; align-items: center; gap: 5px; padding: 4px; border: 1px solid var(--line); border-radius: 9px; background: var(--surface); box-shadow: 0 2px 6px rgb(34 44 58 / .05);
}.toolbar-group[data-v-829d0e31] { display: flex; gap: 2px; padding-right: 5px; border-right: 1px solid var(--line);
}.toolbar-group[data-v-829d0e31]:last-child { padding-right: 0; border: 0;
}.toolbar-group button[data-v-829d0e31] { width: 27px; height: 27px; display: grid; place-items: center; border-radius: 5px; color: var(--ink-2); background: transparent;
}.toolbar-group button[data-v-829d0e31]:hover { color: var(--accent); background: var(--accent-soft);
}.toolbar-group button[data-v-829d0e31]:disabled { opacity: .3;
}
.text-type[data-v-829d0e31] { min-width: 122px; height: 27px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 6px; padding: 0 6px; color: var(--ink-3);
}.text-type select[data-v-829d0e31] { width: 100%; height: 100%; appearance: none; border: 0; outline: 0; background: transparent; font-size: calc(8.5px * var(--font-scale)); font-weight: 650;
}
.prd-editor-actions[data-v-829d0e31] { display: flex; justify-content: flex-end; align-items: center; gap: 5px; padding-right: 14px;
}.share-wrap[data-v-829d0e31] { position: relative;
}.share-button[data-v-829d0e31], .save-button[data-v-829d0e31] { height: 32px; display: flex; align-items: center; gap: 6px; padding: 0 11px; border-radius: 7px; font-size: calc(9px * var(--font-scale)); font-weight: 700;
}.share-button[data-v-829d0e31] { border: 1px solid var(--line); color: var(--ink-2); background: var(--surface);
}.save-button[data-v-829d0e31] { color: #fff; background: var(--accent);
}
.share-popover[data-v-829d0e31] { position: absolute; z-index: 1000; top: 40px; right: 0; width: 360px; padding: 15px; border: 1px solid var(--line); border-radius: 12px; background: var(--surface-raised); box-shadow: 0 18px 50px rgb(28 36 50 / .17);
}.share-popover header[data-v-829d0e31] { display: grid; grid-template-columns: 34px 1fr; gap: 9px; align-items: center;
}.share-popover header > span[data-v-829d0e31] { width: 34px; height: 34px; display: grid; place-items: center; border-radius: 8px; color: var(--accent); background: var(--accent-soft);
}.share-popover header strong[data-v-829d0e31], .share-popover header small[data-v-829d0e31] { display: block;
}.share-popover header small[data-v-829d0e31] { margin-top: 3px; color: var(--success);
}.share-popover > p[data-v-829d0e31] { color: var(--ink-3); font-size: calc(8.5px * var(--font-scale)); line-height: 1.55;
}.share-link[data-v-829d0e31] { height: 36px; display: grid; grid-template-columns: 1fr auto; border: 1px solid var(--line); border-radius: 7px; overflow: hidden;
}.share-link input[data-v-829d0e31] { min-width: 0; padding: 0 9px; border: 0; background: var(--surface-muted); font-size: calc(7.5px * var(--font-scale));
}.share-link button[data-v-829d0e31] { display: flex; align-items: center; gap: 5px; padding: 0 10px; color: #fff; background: var(--accent);
}.share-popover footer[data-v-829d0e31] { display: flex; justify-content: space-between; margin-top: 12px;
}.share-popover footer span[data-v-829d0e31], .share-popover footer button[data-v-829d0e31] { display: flex; align-items: center; gap: 5px; color: var(--ink-3); background: transparent; font-size: calc(8px * var(--font-scale));
}.share-popover footer span i[data-v-829d0e31] { width: 6px; height: 6px; border-radius: 50%; background: var(--success);
}.share-popover footer button[data-v-829d0e31] { color: var(--accent);
}
.prd-editor-layout[data-v-829d0e31] { height: calc(100% - 60px); display: grid; grid-template-columns: 218px minmax(500px, 1fr) 282px; transition: grid-template-columns 240ms var(--ease-out-quart);
}.prd-editor-layout.outline-collapsed[data-v-829d0e31] { grid-template-columns: 0 minmax(500px, 1fr) 282px;
}.prd-editor-layout.inspector-collapsed[data-v-829d0e31] { grid-template-columns: 218px minmax(500px, 1fr) 0;
}.prd-editor-layout.outline-collapsed.inspector-collapsed[data-v-829d0e31] { grid-template-columns: 0 minmax(500px, 1fr) 0;
}
.prd-outline[data-v-829d0e31], .prd-inspector[data-v-829d0e31] { min-width: 0; overflow: hidden; background: var(--panel);
}.prd-outline[data-v-829d0e31] { display: flex; flex-direction: column; border-right: 1px solid var(--line);
}.prd-inspector[data-v-829d0e31] { border-left: 1px solid var(--line);
}.outline-collapsed .prd-outline[data-v-829d0e31], .inspector-collapsed .prd-inspector[data-v-829d0e31] { opacity: 0; pointer-events: none;
}.prd-outline > header[data-v-829d0e31], .prd-inspector > header[data-v-829d0e31] { height: 46px; display: flex; align-items: center; justify-content: space-between; padding: 0 13px; border-bottom: 1px solid var(--line);
}.prd-outline > header strong[data-v-829d0e31], .prd-inspector > header strong[data-v-829d0e31] { font-size: calc(9.5px * var(--font-scale));
}.prd-outline > header span[data-v-829d0e31], .prd-inspector > header span[data-v-829d0e31] { color: var(--ink-3); font-size: calc(8px * var(--font-scale));
}
.prd-outline nav[data-v-829d0e31] { flex: 1; overflow: auto; padding: 10px 7px;
}.prd-outline nav button[data-v-829d0e31] { width: 100%; min-height: 34px; display: grid; grid-template-columns: 12px 1fr; align-items: center; padding: 5px 8px; border-radius: 6px; overflow: hidden; color: var(--ink-2); text-align: left; text-overflow: ellipsis; white-space: nowrap; background: transparent; font-size: calc(8.5px * var(--font-scale));
}.prd-outline nav button[data-v-829d0e31]:hover { color: var(--accent); background: var(--accent-soft);
}.prd-outline nav button span[data-v-829d0e31] { width: 5px; height: 5px; border-radius: 50%; background: var(--line-strong);
}.prd-outline nav button.level-2[data-v-829d0e31] { padding-left: 20px;
}.prd-outline nav button.level-3[data-v-829d0e31] { padding-left: 31px;
}.outline-empty[data-v-829d0e31] { display: grid; place-items: center; gap: 8px; padding: 44px 20px; color: var(--ink-3); text-align: center;
}.outline-empty p[data-v-829d0e31] { margin: 0; font-size: calc(8.5px * var(--font-scale));
}.prd-outline > footer[data-v-829d0e31] { padding: 12px 13px; border-top: 1px solid var(--line); color: var(--ink-3); font-size: calc(8px * var(--font-scale)); line-height: 1.7;
}.prd-outline kbd[data-v-829d0e31] { padding: 2px 5px; border: 1px solid var(--line); border-radius: 4px; color: var(--accent); background: var(--surface);
}
.prd-document-scroll[data-v-829d0e31] { min-width: 0; overflow: auto; padding: 42px 36px 120px; background: #f1f3f6;
}.prd-paper[data-v-829d0e31] { --ink: #17191d; --ink-2: #505762; --ink-3: #7c8490; --line: #dfe3e9; --surface-muted: #f5f7fa; --accent: #2c5fe0; --accent-soft: #edf3ff; width: min(800px, 100%); min-height: calc(100vh - 145px); margin: 0 auto; padding: 60px 74px 120px; border: 1px solid #e3e6eb; color: var(--ink); background: #fff; box-shadow: 0 8px 24px rgb(39 48 63 / .07);
}.document-label[data-v-829d0e31] { display: flex; align-items: center; justify-content: space-between;
}.document-label span[data-v-829d0e31] { color: var(--accent); font-family: var(--font-mono); font-size: calc(8.5px * var(--font-scale)); font-weight: 750; letter-spacing: .12em;
}.document-label em[data-v-829d0e31] { padding: 4px 7px; border-radius: 999px; color: var(--success); background: var(--success-soft); font-size: calc(7.5px * var(--font-scale)); font-style: normal;
}
.document-title[data-v-829d0e31] { width: 100%; margin-top: 18px; padding: 0; border: 0; outline: 0; color: var(--ink); background: transparent; font-size: calc(32px * var(--font-scale)); line-height: 1.18; font-weight: 760; letter-spacing: -.04em;
}.document-description[data-v-829d0e31] { width: 100%; min-height: 30px; margin-top: 12px; padding: 0; overflow: hidden; border: 0; outline: 0; resize: none; color: var(--ink-3); background: transparent; font-size: calc(13px * var(--font-scale)); line-height: 1.7;
}.document-meta[data-v-829d0e31] { display: flex; gap: 14px; margin-top: 17px; padding-bottom: 24px; border-bottom: 1px solid var(--line); color: var(--ink-3); font-size: calc(7.8px * var(--font-scale));
}
.word-document-editor[data-v-829d0e31] { min-height: 520px; padding-top: 20px; outline: none; cursor: text; font-size: calc(15px * var(--font-scale)); line-height: 1.78;
}.word-document-editor[data-v-829d0e31]:empty::before { color: #a0a7b1; content: attr(data-placeholder);
}.word-document-editor[data-v-829d0e31] p { min-height: 1.78em; margin: 0 0 4px;
}.word-document-editor[data-v-829d0e31] h1 { margin: 30px 0 10px; font-size: calc(25px * var(--font-scale)); line-height: 1.35; letter-spacing: -.025em;
}.word-document-editor[data-v-829d0e31] h2 { margin: 24px 0 8px; font-size: calc(21px * var(--font-scale)); line-height: 1.4;
}.word-document-editor[data-v-829d0e31] h3 { margin: 18px 0 7px; font-size: calc(17px * var(--font-scale));
}.word-document-editor[data-v-829d0e31] ul, .word-document-editor[data-v-829d0e31] ol { margin: 7px 0; padding-left: 26px;
}.word-document-editor[data-v-829d0e31] li { margin: 3px 0;
}.word-document-editor[data-v-829d0e31] blockquote { margin: 14px 0; padding-left: 17px; border-left: 3px solid var(--ink-2); color: var(--ink-2); font-style: italic;
}
.word-document-editor[data-v-829d0e31] .word-component { position: relative; max-width: 100%; margin: 17px 0; overflow: hidden; border: 1px solid var(--line); border-radius: 9px; background: #fff; cursor: default;
}.word-document-editor[data-v-829d0e31] .word-component:hover, .word-document-editor[data-v-829d0e31] .word-component:focus-within { outline: 2px solid color-mix(in srgb, var(--accent) 18%, transparent); outline-offset: 2px;
}
.word-document-editor[data-v-829d0e31] .doc-component-toolbar { min-height: 32px; display: flex; align-items: center; justify-content: space-between; gap: 8px; padding: 3px 5px 3px 10px; overflow: hidden; border-bottom: 1px solid var(--line); color: var(--ink-3); background: var(--surface-muted); user-select: none;
}.word-document-editor[data-v-829d0e31] .doc-component-label { flex: 0 0 auto; font-size: calc(8px * var(--font-scale)); font-weight: 750; letter-spacing: .04em;
}.word-document-editor[data-v-829d0e31] .doc-component-actions { min-width: 0; display: flex; align-items: center; justify-content: flex-end; gap: 3px; overflow-x: auto; scrollbar-width: none;
}.word-document-editor[data-v-829d0e31] .doc-component-actions::-webkit-scrollbar { display: none;
}.word-document-editor[data-v-829d0e31] .doc-component-actions button { height: 24px; flex: 0 0 auto; padding: 0 7px; border-radius: 5px; color: var(--ink-2); background: transparent; font-size: calc(8px * var(--font-scale)); font-weight: 650;
}.word-document-editor[data-v-829d0e31] .doc-component-actions button:hover { color: var(--accent); background: var(--accent-soft);
}.word-document-editor[data-v-829d0e31] .doc-component-actions button.danger { color: #b13a3a;
}.word-document-editor[data-v-829d0e31] .doc-component-actions button.danger:hover { background: #fff0f0;
}.word-document-editor[data-v-829d0e31] .doc-component-actions button:disabled { opacity: .35; pointer-events: none;
}.word-document-editor[data-v-829d0e31] .doc-component-dimension { flex: 0 0 auto; padding-right: 4px; font-family: var(--font-mono); font-size: calc(7.8px * var(--font-scale));
}
.word-document-editor[data-v-829d0e31] .doc-callout { display: grid; grid-template-columns: 22px 1fr; gap: 8px; padding: 13px 15px; color: var(--accent); background: var(--accent-soft);
}.word-document-editor[data-v-829d0e31] .doc-callout [contenteditable] { outline: none; color: var(--ink-2); cursor: text;
}.word-document-editor[data-v-829d0e31] .doc-todo { display: grid; grid-template-columns: 22px 1fr; align-items: start; gap: 7px; padding: 11px 14px;
}.word-document-editor[data-v-829d0e31] .doc-todo input { margin-top: 6px; accent-color: var(--accent); cursor: pointer;
}.word-document-editor[data-v-829d0e31] .doc-todo span { min-width: 0; outline: none; cursor: text;
}.word-document-editor[data-v-829d0e31] .doc-code { margin: 0; padding: 16px; overflow: auto; border-radius: 0; color: #dce4f2; background: #171b22;
}.word-document-editor[data-v-829d0e31] .doc-code code { display: block; min-height: 20px; outline: none; font-family: var(--font-mono); font-size: calc(12px * var(--font-scale)); cursor: text; white-space: pre-wrap;
}.word-document-editor[data-v-829d0e31] .doc-divider { height: 1px; margin: 24px 15px; background: var(--line);
}
.word-document-editor[data-v-829d0e31] .doc-table-block { width: 100%;
}.word-document-editor[data-v-829d0e31] .doc-table-scroll { width: 100%; max-width: 100%; overflow-x: auto; outline: none; overscroll-behavior-inline: contain; scrollbar-color: var(--line-strong) transparent;
}.word-document-editor[data-v-829d0e31] .doc-table-scroll:focus-visible { box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--accent) 28%, transparent);
}.word-document-editor[data-v-829d0e31] .doc-table { width: max-content; min-width: 100%; border-collapse: separate; border-spacing: 0; table-layout: fixed;
}.word-document-editor[data-v-829d0e31] .doc-table td { width: 132px; min-width: 132px; max-width: 240px; height: 40px; padding: 8px 10px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); outline: none; overflow-wrap: anywhere; vertical-align: top; cursor: text;
}.word-document-editor[data-v-829d0e31] .doc-table tr:last-child td { border-bottom: 0;
}.word-document-editor[data-v-829d0e31] .doc-table td:last-child { border-right: 0;
}.word-document-editor[data-v-829d0e31] .doc-table tr:first-child td { background: var(--surface-muted); font-weight: 700;
}.word-document-editor[data-v-829d0e31] .doc-table td:focus { background: color-mix(in srgb, var(--accent-soft) 55%, #fff); box-shadow: inset 0 0 0 2px color-mix(in srgb, var(--accent) 45%, transparent);
}
.insert-section[data-v-829d0e31] { padding: 15px 13px; border-bottom: 1px solid var(--line);
}.insert-section > label[data-v-829d0e31] { color: var(--ink-2); font-size: calc(8.5px * var(--font-scale)); font-weight: 700;
}.insert-section > p[data-v-829d0e31] { margin: 6px 0 12px; color: var(--ink-3); font-size: calc(7.8px * var(--font-scale)); line-height: 1.55;
}.insert-section > div[data-v-829d0e31] { display: grid; grid-template-columns: 1fr 1fr; gap: 6px;
}.insert-section button[data-v-829d0e31] { min-height: 54px; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; border: 1px solid var(--line); border-radius: 7px; color: var(--ink-2); background: var(--surface); font-size: calc(8px * var(--font-scale));
}.insert-section button[data-v-829d0e31]:hover { border-color: var(--accent-border); color: var(--accent); background: var(--accent-soft);
}
.document-insight[data-v-829d0e31] { margin: 13px; padding: 12px; border: 1px solid var(--line); border-radius: 9px; background: var(--surface);
}.document-insight header[data-v-829d0e31] { display: flex; align-items: center; gap: 6px; margin-bottom: 8px;
}.document-insight > div[data-v-829d0e31] { min-height: 28px; display: flex; align-items: center; justify-content: space-between; color: var(--ink-3); font-size: calc(8px * var(--font-scale));
}.document-insight > div strong[data-v-829d0e31] { color: var(--ink-2);
}.word-tip[data-v-829d0e31] { display: grid; grid-template-columns: auto 1fr; gap: 8px; margin: 13px; padding: 11px; border-radius: 8px; color: var(--accent); background: var(--accent-soft);
}.word-tip strong[data-v-829d0e31] { color: var(--ink); font-size: calc(8.5px * var(--font-scale));
}.word-tip p[data-v-829d0e31] { margin: 4px 0 0; color: var(--ink-2); font-size: calc(7.7px * var(--font-scale)); line-height: 1.5;
}
.prd-loading[data-v-829d0e31], .prd-not-found[data-v-829d0e31] { position: absolute; left: 50%; top: 50%; width: min(440px, calc(100% - 40px)); text-align: center; transform: translate(-50%, -50%);
}.prd-loading > span[data-v-829d0e31], .prd-not-found > span[data-v-829d0e31] { width: 50px; height: 50px; display: grid; place-items: center; margin: 0 auto 13px; border-radius: 14px; color: var(--accent); background: var(--accent-soft);
}.prd-loading > span svg[data-v-829d0e31] { animation: editor-loading-829d0e31 1s linear infinite;
}.prd-loading h1[data-v-829d0e31], .prd-not-found h1[data-v-829d0e31] { margin: 0;
}.prd-loading p[data-v-829d0e31], .prd-not-found p[data-v-829d0e31] { color: var(--ink-3); line-height: 1.65;
}.prd-not-found > div[data-v-829d0e31] { display: flex; justify-content: center; gap: 8px; margin-top: 18px;
}
@keyframes editor-loading-829d0e31 {
to { transform: rotate(360deg);
}
}
@keyframes save-pulse-829d0e31 {
50% { opacity: .35;
}
}
@media (max-width: 1180px) {
.prd-editor-layout[data-v-829d0e31] { grid-template-columns: 190px minmax(480px, 1fr) 0;
}.prd-inspector[data-v-829d0e31] { display: none;
}
}
@media (max-width: 900px) {
.prd-editor-layout[data-v-829d0e31] { grid-template-columns: 0 minmax(0, 1fr) 0;
}.prd-outline[data-v-829d0e31], .prd-inspector[data-v-829d0e31] { display: none;
}.prd-editor-topbar[data-v-829d0e31] { grid-template-columns: minmax(190px, 1fr) auto;
}.format-toolbar[data-v-829d0e31] { display: none;
}.prd-document-scroll[data-v-829d0e31] { padding: 24px 16px 80px;
}.prd-paper[data-v-829d0e31] { padding: 44px 42px 80px;
}
}
@media (prefers-reduced-motion: reduce) {
.prd-editor-layout[data-v-829d0e31] { transition: none;
}.prd-editor-brand small i.saving[data-v-829d0e31], .prd-loading > span svg[data-v-829d0e31] { animation: none;
}
}

.readonly-document[data-v-fe669f6e] { width: min(860px, calc(100% - 48px)); margin: 0 auto; padding: 64px 72px 120px; background: var(--surface);
}
.document-cover[data-v-fe669f6e] { padding-bottom: 38px; border-bottom: 1px solid var(--line);
}
.document-cover > span[data-v-fe669f6e] { color: var(--accent); font-family: var(--font-mono); font-size: calc(9px * var(--font-scale)); font-weight: 700; letter-spacing: .12em;
}
.document-cover h1[data-v-fe669f6e] { max-width: 700px; margin: 16px 0 12px; font-size: calc(34px * var(--font-scale)); line-height: 1.16; letter-spacing: -.04em;
}
.document-cover > p[data-v-fe669f6e] { max-width: 660px; margin: 0; color: var(--ink-3); font-size: calc(14px * var(--font-scale)); line-height: 1.7;
}
.document-cover > div[data-v-fe669f6e] { display: flex; gap: 16px; margin-top: 22px; color: var(--ink-3); font-size: calc(9px * var(--font-scale));
}
.readonly-blocks[data-v-fe669f6e] { padding-top: 23px;
}
.readonly-blocks h1[data-v-fe669f6e] { margin: 40px 0 11px; font-size: calc(25px * var(--font-scale)); line-height: 1.3; letter-spacing: -.025em;
}
.readonly-blocks h2[data-v-fe669f6e] { margin: 30px 0 9px; font-size: calc(21px * var(--font-scale)); line-height: 1.38; letter-spacing: -.018em;
}
.readonly-blocks h3[data-v-fe669f6e] { margin: 22px 0 8px; font-size: calc(17px * var(--font-scale)); line-height: 1.45;
}
.paragraph[data-v-fe669f6e], .readonly-list p[data-v-fe669f6e], blockquote[data-v-fe669f6e], aside p[data-v-fe669f6e] { margin: 7px 0; color: var(--ink); font-size: calc(15px * var(--font-scale)); line-height: 1.78;
}
.readonly-list[data-v-fe669f6e] { display: grid; grid-template-columns: 26px 1fr; align-items: start;
}.readonly-list > span[data-v-fe669f6e] { padding-top: 10px; color: var(--ink-2); text-align: center; font-weight: 650;
}.readonly-list.numbered[data-v-fe669f6e] { grid-template-columns: 34px 1fr;
}.readonly-list.completed p[data-v-fe669f6e] { color: var(--ink-3); text-decoration: line-through;
}.readonly-list.todo > span[data-v-fe669f6e] { color: var(--accent);
}
blockquote[data-v-fe669f6e] { margin: 16px 0; padding: 2px 0 2px 18px; border-left: 3px solid var(--ink-2); color: var(--ink-2); font-style: italic;
}
aside[data-v-fe669f6e] { display: grid; grid-template-columns: 24px 1fr; gap: 7px; margin: 16px 0; padding: 13px 16px; border-radius: 9px; color: var(--accent); background: var(--accent-soft);
}
aside p[data-v-fe669f6e] { margin: 0; color: var(--ink-2);
}
pre[data-v-fe669f6e] { overflow: auto; margin: 16px 0; padding: 17px; border-radius: 9px; color: #dce4f2; background: #171b22; font-size: calc(13px * var(--font-scale)); line-height: 1.65;
}
hr[data-v-fe669f6e] { height: 1px; margin: 29px 0; border: 0; background: var(--line);
}
.readonly-table-scroll[data-v-fe669f6e] { width: 100%; max-width: 100%; margin: 18px 0; overflow-x: auto; border: 1px solid var(--line-strong); border-radius: 8px; outline: none; overscroll-behavior-inline: contain; scrollbar-color: var(--line-strong) transparent;
}.readonly-table-scroll[data-v-fe669f6e]:focus-visible { box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent) 28%, transparent);
}.readonly-table[data-v-fe669f6e] { width: max-content; min-width: 100%; border-collapse: separate; border-spacing: 0; table-layout: fixed;
}.readonly-table td[data-v-fe669f6e] { width: 132px; min-width: 132px; max-width: 240px; min-height: 40px; padding: 10px 11px; border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); overflow-wrap: anywhere; vertical-align: top; font-size: calc(13px * var(--font-scale)); line-height: 1.45;
}.readonly-table tr:last-child td[data-v-fe669f6e] { border-bottom: 0;
}.readonly-table td[data-v-fe669f6e]:last-child { border-right: 0;
}.readonly-table tr:first-child td[data-v-fe669f6e] { background: var(--surface-muted); font-weight: 700;
}
@media (max-width: 720px) {
.readonly-document[data-v-fe669f6e] { width: 100%; padding: 40px 24px 80px;
}.document-cover h1[data-v-fe669f6e] { font-size: calc(28px * var(--font-scale));
}
}

.prd-share-page[data-v-fd9da7a5] { width: 100%; height: 100%; overflow: hidden; background: #f1f3f6;
}
.share-topbar[data-v-fd9da7a5] { position: relative; z-index: 20; height: 60px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; padding: 0 15px; border-bottom: 1px solid var(--line); background: color-mix(in srgb, var(--surface) 97%, transparent); backdrop-filter: blur(16px); -webkit-app-region: drag;
}.share-topbar button[data-v-fd9da7a5] { -webkit-app-region: no-drag;
}
.share-brand[data-v-fd9da7a5] { min-width: 0; display: flex; align-items: center; gap: 9px;
}.share-brand > button[data-v-fd9da7a5] { width: 31px; height: 31px; display: grid; place-items: center; border-radius: 7px; color: var(--ink-2); background: transparent;
}.share-brand > button[data-v-fd9da7a5]:hover { color: var(--accent); background: var(--accent-soft);
}.share-brand > span[data-v-fd9da7a5] { width: 31px; height: 31px; display: grid; place-items: center; border-radius: 8px; color: var(--accent); background: var(--accent-soft);
}.share-brand > div[data-v-fd9da7a5] { min-width: 0;
}.share-brand strong[data-v-fd9da7a5], .share-brand small[data-v-fd9da7a5] { display: block; overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}.share-brand strong[data-v-fd9da7a5] { font-size: calc(10px * var(--font-scale));
}.share-brand small[data-v-fd9da7a5] { margin-top: 3px; color: var(--ink-3); font-size: calc(7.8px * var(--font-scale));
}
.view-only[data-v-fd9da7a5] { display: flex; align-items: center; gap: 6px; padding: 6px 9px; border-radius: 999px; color: var(--ink-2); background: var(--surface-muted); font-size: calc(8.5px * var(--font-scale)); font-weight: 650;
}
.copy-share[data-v-fd9da7a5] { justify-self: end; height: 32px; display: flex; align-items: center; gap: 6px; padding: 0 11px; border-radius: 7px; color: #fff; background: var(--accent); font-size: calc(8.5px * var(--font-scale)); font-weight: 700;
}.copy-share[data-v-fd9da7a5]:hover { background: var(--accent-strong);
}
.share-scroll[data-v-fd9da7a5] { height: calc(100% - 60px); overflow: auto; padding: 28px 0 60px;
}.readonly-notice[data-v-fd9da7a5] { width: min(860px, calc(100% - 48px)); min-height: 38px; display: flex; align-items: center; gap: 7px; margin: 0 auto 12px; padding: 0 12px; border: 1px solid var(--accent-border); border-radius: 8px; color: var(--accent); background: var(--accent-soft); font-size: calc(8.5px * var(--font-scale));
}.readonly-notice strong[data-v-fd9da7a5] { display: flex; align-items: center; gap: 4px; margin-left: auto; color: var(--ink-3); font-size: calc(7.8px * var(--font-scale));
}
.share-scroll[data-v-fd9da7a5] .readonly-document { border: 1px solid #e3e6eb; box-shadow: 0 8px 24px rgb(39 48 63 / .07);
}.share-footer[data-v-fd9da7a5] { width: min(860px, calc(100% - 48px)); display: flex; align-items: center; justify-content: center; gap: 6px; margin: 20px auto 0; color: var(--ink-3); font-size: calc(8px * var(--font-scale));
}
.share-unavailable[data-v-fd9da7a5] { position: absolute; left: 50%; top: 50%; width: min(400px, calc(100% - 40px)); padding: 35px; text-align: center; transform: translate(-50%, -50%);
}.unavailable-brand[data-v-fd9da7a5] { display: flex; align-items: center; justify-content: center; gap: 7px; margin-bottom: 24px; color: var(--ink);
}.unavailable-brand strong[data-v-fd9da7a5] { font-size: calc(10px * var(--font-scale));
}.share-unavailable > span[data-v-fd9da7a5] { width: 52px; height: 52px; display: grid; place-items: center; margin: 0 auto 14px; border-radius: 15px; color: var(--ink-3); background: var(--surface-muted);
}.share-unavailable h1[data-v-fd9da7a5] { margin: 0; font-size: calc(19px * var(--font-scale));
}.share-unavailable p[data-v-fd9da7a5] { margin: 9px 0 19px; color: var(--ink-3); line-height: 1.6;
}
@media (max-width: 720px) {
.share-topbar[data-v-fd9da7a5] { grid-template-columns: 1fr auto;
}.view-only[data-v-fd9da7a5] { display: none;
}.copy-share[data-v-fd9da7a5] { width: 33px; padding: 0; justify-content: center;
}.copy-share[data-v-fd9da7a5] span { display: none;
}.share-scroll[data-v-fd9da7a5] { padding-top: 16px;
}.readonly-notice[data-v-fd9da7a5] { width: calc(100% - 24px);
}.share-brand > div[data-v-fd9da7a5] { max-width: 190px;
}
}

.cloud-preview-page[data-v-c7ed724f] { width: 100%; height: 100%; overflow: hidden; background: var(--canvas);
}.cloud-preview-page > header[data-v-c7ed724f] { height: 58px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; gap: 14px; padding: 0 16px; border-bottom: 1px solid var(--line); background: var(--surface);
}.cloud-preview-page > header > button[data-v-c7ed724f] { justify-self: start; height: 32px; display: flex; align-items: center; gap: 6px; padding: 0 9px; border-radius: 7px; color: var(--ink-2); background: transparent;
}.cloud-preview-page > header > button[data-v-c7ed724f]:hover { background: var(--surface-muted);
}.cloud-preview-page > header > div[data-v-c7ed724f] { display: flex; align-items: center; gap: 8px;
}.cloud-preview-page > header > div > span[data-v-c7ed724f] { width: 31px; height: 31px; display: grid; place-items: center; border-radius: 8px; color: var(--success); background: var(--success-soft);
}.cloud-preview-page strong[data-v-c7ed724f], .cloud-preview-page small[data-v-c7ed724f] { display: block; white-space: nowrap;
}.cloud-preview-page strong[data-v-c7ed724f] { font-size: calc(10px * var(--font-scale));
}.cloud-preview-page small[data-v-c7ed724f] { margin-top: 2px; color: var(--ink-3); font-size: calc(8px * var(--font-scale));
}.cloud-preview-page nav[data-v-c7ed724f] { justify-self: end; display: flex; gap: 6px;
}.cloud-preview-page nav button[data-v-c7ed724f] { height: 32px; display: flex; align-items: center; gap: 6px; padding: 0 10px; border: 1px solid var(--line); border-radius: 7px; color: var(--ink-2); background: var(--surface); font-size: calc(8.5px * var(--font-scale));
}.cloud-preview-page nav button.primary[data-v-c7ed724f] { border-color: var(--accent); color: #fff; background: var(--accent);
}.cloud-preview-page iframe[data-v-c7ed724f] { width: 100%; height: calc(100% - 58px); border: 0; background: #fff;
}.cloud-preview-page main[data-v-c7ed724f] { display: grid; place-items: center; align-content: center; height: calc(100% - 58px);
}.cloud-preview-page main h1[data-v-c7ed724f] { margin: 0;
}.cloud-preview-page main p[data-v-c7ed724f] { color: var(--ink-3);
}

.settings-page[data-v-11a0d2dd] { width: 100%; height: 100%; overflow: hidden; background: var(--canvas);
}.settings-topbar[data-v-11a0d2dd] { height: 58px; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; padding: 0 16px; border-bottom: 1px solid var(--line); background: var(--surface);
}.back-button[data-v-11a0d2dd] { justify-self: start; height: 33px; display: flex; align-items: center; gap: 7px; padding: 0 9px; border-radius: var(--radius-sm); color: var(--ink-2); background: transparent;
}.back-button[data-v-11a0d2dd]:hover { background: var(--surface-muted);
}.settings-brand[data-v-11a0d2dd] { display: flex; align-items: center; gap: 8px;
}.settings-brand strong[data-v-11a0d2dd] { font-size: calc(11.5px * var(--font-scale));
}.settings-brand span[data-v-11a0d2dd] { padding-left: 8px; border-left: 1px solid var(--line); color: var(--ink-3);
}.settings-topbar .app-button[data-v-11a0d2dd] { justify-self: end;
}
.settings-layout[data-v-11a0d2dd] { height: calc(100% - 58px); display: grid; grid-template-columns: 238px 1fr;
}.settings-sidebar[data-v-11a0d2dd] { display: flex; flex-direction: column; padding: 18px 10px 13px; border-right: 1px solid var(--line); background: var(--panel);
}.nav-label[data-v-11a0d2dd] { display: block; padding: 0 10px 8px; color: var(--ink-3); font-size: calc(10px * var(--font-scale)); font-weight: 700;
}.settings-sidebar > div button[data-v-11a0d2dd] { width: 100%; height: 38px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 9px; padding: 0 10px; border-radius: var(--radius-sm); color: var(--ink-2); text-align: left; background: transparent;
}.settings-sidebar > div button[data-v-11a0d2dd]:hover, .settings-sidebar > div button.active[data-v-11a0d2dd] { color: var(--accent-strong); background: var(--accent-soft);
}.settings-sidebar footer[data-v-11a0d2dd] { display: grid; grid-template-columns: auto 1fr; gap: 8px; margin-top: auto; padding: 12px; border: 1px solid var(--line); border-radius: var(--radius-sm); color: var(--success); background: var(--surface);
}.settings-sidebar footer strong[data-v-11a0d2dd] { color: var(--ink);
}.settings-sidebar footer p[data-v-11a0d2dd] { margin: 4px 0 0; color: var(--ink-3); font-size: calc(9.5px * var(--font-scale)); line-height: 1.5;
}
.settings-main[data-v-11a0d2dd] { width: 100%; max-width: 880px; overflow: auto; padding: 36px 44px 70px;
}.settings-title[data-v-11a0d2dd] { margin-bottom: 21px;
}.settings-title h1[data-v-11a0d2dd] { margin: 0; font-size: calc(22px * var(--font-scale));
}.settings-title p[data-v-11a0d2dd] { margin: 7px 0 0; color: var(--ink-3);
}.settings-card[data-v-11a0d2dd] { margin-bottom: 13px; overflow: hidden; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--surface);
}.settings-card > header[data-v-11a0d2dd] { padding: 15px 17px; border-bottom: 1px solid var(--line);
}.settings-card > header h2[data-v-11a0d2dd] { margin: 0; font-size: calc(12px * var(--font-scale));
}.settings-card > header p[data-v-11a0d2dd] { margin: 5px 0 0; color: var(--ink-3); font-size: calc(10px * var(--font-scale));
}
.setting-row[data-v-11a0d2dd], .select-row[data-v-11a0d2dd] { min-height: 66px; display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 11px 17px; border-bottom: 1px solid var(--line);
}.setting-row[data-v-11a0d2dd]:last-child, .select-row[data-v-11a0d2dd]:last-child { border-bottom: 0;
}.setting-row strong[data-v-11a0d2dd], .setting-row small[data-v-11a0d2dd], .select-row strong[data-v-11a0d2dd], .select-row small[data-v-11a0d2dd] { display: block;
}.setting-row strong[data-v-11a0d2dd], .select-row strong[data-v-11a0d2dd] { font-size: calc(11px * var(--font-scale));
}.setting-row small[data-v-11a0d2dd], .select-row small[data-v-11a0d2dd] { margin-top: 4px; color: var(--ink-3); font-size: calc(9.5px * var(--font-scale));
}.setting-row input[data-v-11a0d2dd] { width: 34px; height: 19px; accent-color: var(--accent);
}.select-input[data-v-11a0d2dd] { width: 170px;
}
.notice-card[data-v-11a0d2dd] { display: grid; grid-template-columns: auto 1fr; gap: 10px; padding: 13px; border: 1px solid var(--accent-border); border-radius: var(--radius-md); color: var(--accent); background: var(--accent-soft);
}.notice-card.safe[data-v-11a0d2dd] { color: var(--success); border-color: color-mix(in srgb, var(--success) 30%, var(--line)); background: var(--success-soft);
}.notice-card strong[data-v-11a0d2dd] { color: var(--ink);
}.notice-card p[data-v-11a0d2dd] { margin: 4px 0 0; color: var(--ink-2); font-size: calc(9.5px * var(--font-scale)); line-height: 1.55;
}
.cloud-row[data-v-11a0d2dd] { min-height: 72px; display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 11px; padding: 12px 17px; border-bottom: 1px solid var(--line);
}.cloud-row[data-v-11a0d2dd]:last-child { border-bottom: 0;
}.cloud-icon[data-v-11a0d2dd] { width: 38px; height: 38px; display: grid; place-items: center; border-radius: 10px; color: var(--success); background: var(--success-soft);
}.cloud-row strong[data-v-11a0d2dd], .cloud-row small[data-v-11a0d2dd] { display: block;
}.cloud-row small[data-v-11a0d2dd] { margin-top: 4px; color: var(--ink-3);
}.cloud-row em[data-v-11a0d2dd] { padding: 5px 7px; border-radius: 6px; color: var(--success); background: var(--success-soft); font-style: normal; font-weight: 700;
}.download-rule[data-v-11a0d2dd] { min-height: 62px; display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 11px; padding: 11px 17px; border-bottom: 1px solid var(--line); color: var(--accent);
}.download-rule[data-v-11a0d2dd]:last-child { border-bottom: 0;
}.download-rule strong[data-v-11a0d2dd], .download-rule small[data-v-11a0d2dd] { display: block;
}.download-rule strong[data-v-11a0d2dd] { color: var(--ink);
}.download-rule small[data-v-11a0d2dd] { margin-top: 4px; color: var(--ink-3);
}
.theme-grid[data-v-11a0d2dd] { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; padding: 16px;
}.theme-grid > button[data-v-11a0d2dd] { padding: 8px; border: 1px solid var(--line); border-radius: var(--radius-md); text-align: left; background: var(--surface);
}.theme-grid > button.active[data-v-11a0d2dd] { border-color: var(--accent); box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 11%, transparent);
}.theme-preview[data-v-11a0d2dd] { height: 125px; display: grid; grid-template-columns: 30% 1fr; grid-template-rows: 28px 1fr; gap: 5px; padding: 8px; border-radius: var(--radius-sm);
}.theme-preview.light[data-v-11a0d2dd] { background: #eef1f5;
}.theme-preview.dark[data-v-11a0d2dd] { background: #15181d;
}.theme-preview i[data-v-11a0d2dd] { border-radius: 4px; background: #fff;
}.theme-preview.dark i[data-v-11a0d2dd] { background: #262c34;
}.theme-preview i[data-v-11a0d2dd]:first-child { grid-column: 1 / -1;
}.theme-grid strong[data-v-11a0d2dd] { display: flex; align-items: center; gap: 6px; margin: 9px 2px 2px;
}
.density-options[data-v-11a0d2dd] { display: grid; grid-template-columns: repeat(3, 1fr); gap: 7px; padding: 15px 17px; border-bottom: 1px solid var(--line);
}.density-options button[data-v-11a0d2dd], .font-presets button[data-v-11a0d2dd] { min-height: 34px; border: 1px solid var(--line); border-radius: var(--radius-sm); color: var(--ink-2); background: var(--surface);
}.density-options button.active[data-v-11a0d2dd] { border-color: var(--accent); color: var(--accent); background: var(--accent-soft);
}.font-scale-row[data-v-11a0d2dd] { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 12px; padding: 16px 17px 12px;
}.font-scale-row label[data-v-11a0d2dd] { display: grid; grid-template-columns: auto 1fr; align-items: center; gap: 18px;
}.font-scale-row label span strong[data-v-11a0d2dd], .font-scale-row label span small[data-v-11a0d2dd] { display: block; white-space: nowrap;
}.font-scale-row label span small[data-v-11a0d2dd] { color: var(--ink-3);
}.font-scale-row input[data-v-11a0d2dd] { width: 100%; accent-color: var(--accent);
}.font-presets[data-v-11a0d2dd] { display: flex; gap: 7px; padding: 0 17px 16px;
}.font-presets button[data-v-11a0d2dd] { padding: 0 10px;
}
.settings-section-enter-active[data-v-11a0d2dd], .settings-section-leave-active[data-v-11a0d2dd] { transition: opacity var(--duration-state) ease, transform var(--duration-state) var(--ease-out-quart);
}.settings-section-enter-from[data-v-11a0d2dd] { opacity: 0; transform: translateX(7px);
}.settings-section-leave-to[data-v-11a0d2dd] { opacity: 0; transform: translateX(-4px);
}
.model-card > header[data-v-11a0d2dd] { display: flex; align-items: center; justify-content: space-between; gap: 18px;
}
.refresh-models[data-v-11a0d2dd] { min-height: 32px; display: inline-flex; align-items: center; gap: 6px; padding: 0 10px; border: 1px solid var(--line); border-radius: var(--radius-sm); color: var(--ink-2); background: var(--surface);
}
.refresh-models[data-v-11a0d2dd]:hover:not(:disabled) { color: var(--accent); border-color: var(--accent-border); background: var(--accent-soft);
}
.spinning[data-v-11a0d2dd] { animation: spin-11a0d2dd 800ms linear infinite;
}
.model-select-row[data-v-11a0d2dd] { min-height: 82px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(250px, 330px); align-items: center; gap: 24px; padding: 16px 18px; border-bottom: 1px solid var(--line);
}
.model-select-row[data-v-11a0d2dd]:last-child { border-bottom: 0;
}
.model-select-row strong[data-v-11a0d2dd], .model-select-row small[data-v-11a0d2dd] { display: block;
}
.model-select-row strong[data-v-11a0d2dd] { font-size: calc(11px * var(--font-scale));
}
.model-select-row small[data-v-11a0d2dd] { margin-top: 5px; color: var(--ink-3); font-size: calc(9.5px * var(--font-scale)); line-height: 1.5;
}
.model-select-row .select-input[data-v-11a0d2dd] { width: 100%; min-height: 38px; padding: 0 34px 0 11px; text-overflow: ellipsis;
}
.model-state[data-v-11a0d2dd] { display: grid; grid-template-columns: 1fr auto; gap: 4px 16px; padding: 18px;
}
.model-state strong[data-v-11a0d2dd], .model-state span[data-v-11a0d2dd] { grid-column: 1;
}
.model-state span[data-v-11a0d2dd] { color: var(--ink-3);
}
.model-state button[data-v-11a0d2dd] { grid-column: 2; grid-row: 1 / span 2; align-self: center; min-height: 32px; padding: 0 11px; border: 1px solid var(--danger); border-radius: var(--radius-sm); color: var(--danger); background: transparent;
}
.model-note[data-v-11a0d2dd] { display: grid; grid-template-columns: auto 1fr; gap: 10px; padding: 14px; border: 1px solid var(--line); border-radius: var(--radius-md); color: var(--accent); background: var(--surface);
}
.model-note strong[data-v-11a0d2dd] { color: var(--ink);
}
.model-note p[data-v-11a0d2dd] { margin: 5px 0 0; color: var(--ink-3); font-size: calc(9.5px * var(--font-scale)); line-height: 1.55;
}
@keyframes spin-11a0d2dd {
to { transform: rotate(360deg);
}
}
@media (max-width: 760px) {
.settings-layout[data-v-11a0d2dd] { grid-template-columns: 68px 1fr;
}.settings-sidebar > div button[data-v-11a0d2dd] { grid-template-columns: 1fr; justify-items: center;
}.settings-sidebar > div button span[data-v-11a0d2dd], .settings-sidebar > div button > svg[data-v-11a0d2dd]:last-child, .nav-label[data-v-11a0d2dd], .settings-sidebar footer[data-v-11a0d2dd] { display: none;
}.settings-main[data-v-11a0d2dd] { padding: 26px 22px 60px;
}.settings-brand[data-v-11a0d2dd] { display: none;
}.theme-grid[data-v-11a0d2dd] { grid-template-columns: 1fr;
}
}

.not-found[data-v-cd181b38] { width: 100%; min-height: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; color: var(--ink-3); background: var(--canvas);
}.not-found-brand[data-v-cd181b38] { display: flex; align-items: center; gap: 9px; margin-bottom: 28px; color: var(--ink);
}.not-found-brand strong[data-v-cd181b38] { font-size: calc(13px * var(--font-scale));
}.not-found-icon[data-v-cd181b38] { width: 58px; height: 58px; display: grid; place-items: center; border: 1px solid var(--line); border-radius: var(--radius-md); background: var(--surface);
}.not-found h1[data-v-cd181b38] { margin: 14px 0 0; color: var(--ink); font-size: calc(20px * var(--font-scale));
}.not-found p[data-v-cd181b38] { margin: 7px 0 16px; font-size: calc(10.5px * var(--font-scale));
}
:root {
  color-scheme: light;
  --font-scale: 1.15;
  --accent: #2c5fe0;
  --accent-strong: #2049b2;
  --accent-soft: #edf3ff;
  --accent-border: #bfd0f8;
  --canvas: #eef1f5;
  --panel: #fbfcfe;
  --surface: #ffffff;
  --surface-muted: #f5f7fa;
  --surface-raised: #ffffff;
  --ink: #17191d;
  --ink-2: #505762;
  --ink-3: #7c8490;
  --line: #dfe3e9;
  --line-strong: #cbd1da;
  --success: #16835c;
  --success-soft: #e9f7f1;
  --warning: #ad651d;
  --warning-soft: #fff2df;
  --danger: #bf3d4a;
  --danger-soft: #fff0f1;
  --radius-xs: 6px;
  --radius-sm: 8px;
  --radius-md: 12px;
  --radius-lg: 16px;
  --shadow-sm: 0 2px 8px rgb(34 44 58 / 0.08);
  --shadow-md: 0 12px 30px rgb(34 44 58 / 0.12);
  --duration-fast: 140ms;
  --duration-state: 220ms;
  --duration-panel: 300ms;
  --z-canvas-node: 2;
  --z-canvas-selected: 4;
  --z-floating-control: 12;
  --z-canvas-menu: 90;
  --z-dropdown: 100;
  --z-modal: 200;
  --z-toast: 300;
  --ease-out-quart: cubic-bezier(0.25, 1, 0.5, 1);
  --ease-out-quint: cubic-bezier(0.22, 1, 0.36, 1);
  --font-sans: "SF Pro Text", "PingFang SC", "Microsoft YaHei", "Helvetica Neue", Arial, sans-serif;
  --font-mono: "SFMono-Regular", "Cascadia Code", Consolas, monospace;
  --topbar-height: 56px;
  --sidebar-width: 232px;
  --inspector-width: 304px;
}

:root[data-theme='dark'] {
  color-scheme: dark;
  --accent: #7399ff;
  --accent-strong: #9db8ff;
  --accent-soft: #1d2a48;
  --accent-border: #3e568e;
  --canvas: #15181d;
  --panel: #1b1f25;
  --surface: #21262d;
  --surface-muted: #272c34;
  --surface-raised: #272d35;
  --ink: #f1f3f6;
  --ink-2: #c0c6cf;
  --ink-3: #8f98a6;
  --line: #343a43;
  --line-strong: #454c58;
  --success: #5bc49a;
  --success-soft: #1d332b;
  --warning: #e1a45e;
  --warning-soft: #392b1d;
  --danger: #ef7781;
  --danger-soft: #3c2228;
  --shadow-sm: 0 2px 8px rgb(0 0 0 / 0.2);
  --shadow-md: 0 14px 34px rgb(0 0 0 / 0.32);
}
* {
  box-sizing: border-box;
}

html,
body,
#app {
  width: 100%;
  min-width: 0;
  height: 100%;
  margin: 0;
}

body {
  overflow: hidden;
  color: var(--ink);
  background: var(--canvas);
  font-family: var(--font-sans);
  font-size: calc(13px * var(--font-scale));
  -webkit-font-smoothing: antialiased;
  text-rendering: geometricPrecision;
  font-kerning: normal;
}

/* macOS 原生窗口按钮会覆盖隐藏标题栏，桌面端在左侧保留稳定的安全区。 */
html.platform-macos .home-topbar,
html.platform-macos .settings-topbar,
html.platform-macos .login-window-bar {
  padding-left: 92px;
}

html.platform-macos .workspace-topbar .brand-zone {
  padding-left: 92px;
}

html.platform-macos .editor-topbar {
  grid-template-columns: 350px minmax(420px, 1fr) auto;
}

html.platform-macos .editor-brand {
  padding-left: 92px;
}

html.platform-macos .prd-editor-brand,
html.platform-macos .share-brand {
  padding-left: 78px;
}

h1,
h2,
h3 {
  text-wrap: balance;
}

p {
  text-wrap: pretty;
}

button,
input,
textarea,
select {
  color: inherit;
  font: inherit;
}

button,
a {
  -webkit-tap-highlight-color: transparent;
}

button {
  border: 0;
}

button:not(:disabled),
a {
  cursor: pointer;
}

button:disabled {
  cursor: not-allowed;
  opacity: 0.55;
}

a {
  color: inherit;
  text-decoration: none;
}

input::placeholder,
textarea::placeholder {
  color: var(--ink-3);
}

:focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

::selection {
  color: var(--accent-strong);
  background: var(--accent-soft);
}

::-webkit-scrollbar {
  width: 9px;
  height: 9px;
}

::-webkit-scrollbar-thumb {
  border: 3px solid transparent;
  border-radius: 10px;
  background: color-mix(in srgb, var(--ink-3) 45%, transparent);
  background-clip: padding-box;
}

::-webkit-scrollbar-track {
  background: transparent;
}

.icon-button,
.app-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  color: var(--ink-2);
  background: var(--surface);
  transition: border-color var(--duration-fast) ease, background var(--duration-fast) ease, color var(--duration-fast) ease, transform var(--duration-fast) var(--ease-out-quint);
}

.icon-button {
  width: 32px;
  height: 32px;
  padding: 0;
}

.app-button {
  min-height: 34px;
  gap: 7px;
  padding: 0 12px;
  white-space: nowrap;
  font-size: calc(12px * var(--font-scale));
  font-weight: 650;
}

.icon-button:hover,
.app-button:hover {
  border-color: var(--line-strong);
  color: var(--ink);
  background: var(--surface-muted);
}

.icon-button:active,
.app-button:active {
  transform: translateY(1px);
}

.app-button.primary {
  border-color: var(--accent);
  color: #f8fbff;
  background: var(--accent);
}

.app-button.primary:hover {
  border-color: var(--accent-strong);
  background: var(--accent-strong);
}

.app-button.ghost {
  border-color: transparent;
  background: transparent;
}

.app-button.danger {
  color: var(--danger);
}

.field-label {
  display: block;
  margin-bottom: 7px;
  color: var(--ink-2);
  font-size: calc(11px * var(--font-scale));
  font-weight: 650;
}

.text-input,
.text-area,
.select-input {
  width: 100%;
  border: 1px solid var(--line);
  border-radius: var(--radius-sm);
  color: var(--ink);
  background: var(--surface);
  transition: border-color 140ms ease, box-shadow 140ms ease;
}

.text-input,
.select-input {
  height: 36px;
  padding: 0 10px;
}

.text-area {
  min-height: 88px;
  padding: 10px;
  resize: vertical;
  line-height: 1.6;
}

.text-input:focus,
.text-area:focus,
.select-input:focus {
  border-color: var(--accent);
  outline: 0;
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 13%, transparent);
}

.status-badge {
  display: inline-flex;
  align-items: center;
  min-height: 22px;
  padding: 0 7px;
  border-radius: var(--radius-xs);
  color: var(--success);
  background: var(--success-soft);
  font-size: calc(10px * var(--font-scale));
  font-weight: 700;
}

.muted {
  color: var(--ink-3);
}

.route-enter-active,
.route-leave-active {
  transition: opacity var(--duration-state) ease, transform var(--duration-state) var(--ease-out-quart), filter var(--duration-state) ease;
}

.route-enter-from {
  opacity: 0;
  filter: blur(2px);
  transform: translateY(6px);
}

.route-leave-to {
  opacity: 0;
  transform: translateY(-3px);
}

.popover-enter-active,
.popover-leave-active {
  transform-origin: top right;
  transition: opacity var(--duration-state) ease, transform var(--duration-state) var(--ease-out-quart);
}

.popover-enter-from,
.popover-leave-to {
  opacity: 0;
  transform: translateY(-5px) scale(0.98);
}

.list-enter-active,
.list-leave-active,
.list-move {
  transition: opacity var(--duration-state) ease, transform var(--duration-state) var(--ease-out-quart);
}

.list-enter-from,
.list-leave-to {
  opacity: 0;
  transform: translateY(8px);
}

.list-leave-active {
  position: absolute;
}

:root[data-density='comfortable'] {
  --topbar-height: 60px;
  --sidebar-width: 248px;
  --inspector-width: 320px;
}

:root[data-density='dense'] {
  --topbar-height: 52px;
  --sidebar-width: 216px;
  --inspector-width: 288px;
}

.mono {
  font-family: var(--font-mono);
}

@media (prefers-reduced-motion: reduce) {
  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: 0.01ms !important;
  }
}
