:root{--buncss-light: ;--buncss-dark:initial;color-scheme:dark;--bg:#0b0f10;--surface:#161a1b;--surface-2:#212628;--surface-3:#2a3032;--border:#2c3335;--border-strong:#41494c;--ink:#edf1f2;--text-2nd:#b6c0c3;--muted:#889599;--primary:#3ad7d4;--primary-deep:#2bbbb8;--primary-ink:#0d1314;--green:#10b981;--amber:#f59e0b;--red:#ef4444;--blue:#3b82f6;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--font-sans:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;--font-mono:ui-monospace,"SF Mono","JetBrains Mono",Consolas,monospace;--shadow-overlay:0 16px 48px #00000080;--glow-live:0 0 0 1px #3ad7d466,0 0 24px -4px #3ad7d459;--ring-focus:0 0 0 2px #3ad7d480}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--ink);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;height:100%;margin:0;padding:0;font-size:14px;line-height:1.55}#root{height:100%}::selection{background:#3ad7d440}.app{display:grid;grid-template-rows:52px 1fr;height:100vh}.header{display:flex;background:var(--surface);border-bottom:1px solid var(--border);justify-content:space-between;align-items: center;padding:0 20px}.header h1{letter-spacing:-.01em;display:flex;align-items: center;gap:10px;margin:0;font-size:14px;font-weight:600}.header h1 .logo{display:inline-flex;background:var(--primary);border-radius:var(--radius-md);color:var(--primary-ink);justify-content:center;align-items: center;width:26px;height:26px;font-size:13px;font-weight:700}.header .right{display:flex;align-items: center;gap:12px}.subtitle{color:var(--muted);letter-spacing:normal;margin-left:8px;font-size:12px;font-weight:400}a.nav-link{color:var(--primary);text-decoration:none;border-radius:var(--radius-sm);font-size:13px}a.nav-link:hover{text-decoration:underline;text-underline-offset:3px}a.nav-link:focus-visible{outline:none;box-shadow:var(--ring-focus)}.body{display:grid;grid-template-columns:280px 1fr 320px;overflow:hidden}.sidebar{background:var(--surface);border-right:1px solid var(--border);overflow-y:auto;padding:16px}.right-rail{background:var(--surface);border-left:1px solid var(--border);overflow-y:auto;display:flex;flex-direction:column;gap:16px;padding:16px}.canvas{background:var(--bg);overflow-y:auto;position:relative;padding:24px 28px}.section-title{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:16px 0 8px;font-size:11px;font-weight:600}.section-title:first-child{margin-top:0}button.btn{background:var(--surface-2);color:var(--ink);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;padding:7px 14px;transition:background .15s ease-out,border-color .15s ease-out,color .15s ease-out;font-family:inherit;font-size:13px;font-weight:500}button.btn:hover{background:var(--surface-3);border-color:var(--border-strong)}button.btn:disabled{opacity:.5;cursor:not-allowed}button.btn:focus-visible{outline:none;box-shadow:var(--ring-focus)}button.btn.primary{background:var(--primary);color:var(--primary-ink);border-color:#0000;font-weight:600}button.btn.primary:hover{background:var(--primary-deep)}button.btn.ghost{color:var(--text-2nd);background:0 0;border-color:#0000}button.btn.ghost:hover{background:var(--surface-2);color:var(--ink)}.seg{display:flex;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);gap:2px;padding:2px}.seg-btn{color:var(--muted);border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;flex:1;padding:6px 10px;transition:background .15s ease-out,color .15s ease-out;font-family:inherit;font-size:12.5px;font-weight:500}.seg-btn:hover{color:var(--ink)}.seg-btn.active{background:var(--surface-2);color:var(--ink);font-weight:600}.seg-btn:disabled{opacity:.6;cursor:not-allowed}.seg-btn:focus-visible{outline:none;box-shadow:var(--ring-focus)}input.field,select.field,textarea.field{background:var(--surface-2);color:var(--ink);border:1px solid var(--border);border-radius:var(--radius-md);width:100%;padding:8px 10px;font-family:inherit;font-size:13px}input.field::placeholder,textarea.field::placeholder{color:var(--muted)}input.field:focus,select.field:focus,textarea.field:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 1px #3ad7d44d}input.field[type=range]{accent-color:var(--text-2nd);background:0 0;border:none;padding:0}input.field[type=range]:focus{box-shadow:none;accent-color:var(--primary)}.field-label{letter-spacing:.06em;text-transform:uppercase;color:var(--muted);display:block;margin-bottom:4px;font-size:11px;font-weight:600}.hint-dim{color:var(--muted);font-size:11px}.hint-dim code{font-family:var(--font-mono);color:var(--text-2nd);font-size:10.5px}.pill{display:inline-flex;background:var(--surface-2);border:1px solid var(--border);color:var(--muted);border-radius:999px;align-items: center;gap:5px;padding:2px 8px;font-size:11px;font-weight:600}.pill.live{color:var(--green);background:#10b9811f;border-color:#10b98159}.pill.live:before{content:"●";animation:blink 1s infinite;font-size:8px}@keyframes blink{50%{opacity:.3}}button.prompt-item{display:block;text-align:left;background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-md);color:inherit;cursor:pointer;width:100%;margin-bottom:6px;padding:10px 12px;transition:border-color .15s ease-out,transform .15s ease-out;font-family:inherit}button.prompt-item:hover:not(:disabled){border-color:var(--primary);transform:translate(2px)}button.prompt-item:focus-visible{outline:none;box-shadow:var(--ring-focus)}button.prompt-item:disabled{opacity:.5;cursor:not-allowed}.prompt-item .ttl{color:var(--ink);margin-bottom:2px;font-size:12px;font-weight:600}.prompt-item .desc{color:var(--text-2nd);font-size:11px}.stat-grid{display:grid;grid-template-columns:1fr 1fr;gap:6px}.mini-stat{background:var(--surface-2);border:1px solid var(--border);border-radius:var(--radius-md);padding:8px 10px}.mini-stat .label{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:10px;font-weight:600}.mini-stat .val{color:var(--ink);font-size:18px;font-weight:700}.log{font-family:var(--font-mono);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);overflow-y:auto;max-height:220px;padding:8px;font-size:11px;line-height:1.5}.log .ln{word-break:break-all;padding:1px 0}.log .ln.applied{color:var(--green)}.log .ln.rejected{color:var(--red)}.log .ln.pending{color:var(--amber)}.log .ln.replay{color:var(--blue)}.log .ln.sandbox-reject{color:var(--red)}.log .ln.raw{color:var(--text-2nd)}.log-empty{color:var(--muted)}.modal-backdrop{position:fixed;display:flex;z-index:100;background:#0000008c;justify-content:center;align-items: center;inset:0}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-overlay);width:440px;padding:24px}.modal h2{letter-spacing:-.01em;margin:0 0 6px;font-size:17px;font-weight:600}.modal .desc{color:var(--text-2nd);margin-bottom:14px;font-size:12px}.modal .desc code{font-family:var(--font-mono);color:var(--ink);font-size:11px}.modal .row{margin-bottom:12px}.modal .actions{display:flex;justify-content:flex-end;gap:8px;margin-top:16px}.empty{display:flex;color:var(--text-2nd);text-align:center;flex-direction:column;justify-content:center;align-items: center;height:100%}.empty .caret-mark{background:var(--primary);animation:caret .9s infinite;border-radius:2px;width:8px;height:20px;margin-bottom:16px}.empty .title{color:var(--ink);margin-bottom:6px;font-size:15px;font-weight:600}.empty .hint{max-width:400px;font-size:12px}.empty .hint code{font-family:var(--font-mono);color:var(--ink);font-size:11px}.canvas-toolbar{display:flex;border-bottom:1px solid var(--border);align-items: center;gap:10px;margin-bottom:16px;padding-bottom:12px}.solidify-modal{display:flex;flex-direction:column;width:min(920px,92vw);max-height:86vh}.solidify-split{display:grid;grid-template-columns:1fr 1fr;overflow:hidden;flex:1;gap:14px;min-height:0}.solidify-pane{display:flex;flex-direction:column;min-height:0}.solidify-preview{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);overflow:auto;flex:1;padding:16px}.solidify-json{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);font-family:var(--font-mono);color:var(--text-2nd);overflow:auto;white-space:pre;flex:1;margin:0;padding:12px;font-size:11px;line-height:1.5}.wv-stack{display:flex;flex-direction:column;gap:14px}.wv-row{display:flex;flex-flow:wrap;align-items:stretch;gap:14px}.wv-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);display:flex;flex-direction:column;flex:240px;gap:8px;padding:18px}.wv-card.elevated{background:var(--surface-2);border-color:var(--border-strong)}.wv-card .title{color:var(--ink);letter-spacing:-.01em;font-size:14px;font-weight:600}.wv-card .body{color:var(--text-2nd);font-size:13px}.wv-heading{color:var(--ink);margin:0;font-weight:700}.wv-heading.h1{letter-spacing:-.02em;font-size:28px;line-height:1.15}.wv-heading.h2{letter-spacing:-.015em;font-size:22px;line-height:1.2}.wv-heading.h3{letter-spacing:-.01em;font-size:17px;font-weight:600;line-height:1.3}.wv-heading.h4{letter-spacing:-.01em;font-size:14px;font-weight:600}.wv-text{color:var(--text-2nd);font-size:14px;line-height:1.55}.wv-text.dim{color:var(--muted)}.wv-text.caption{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:600}.wv-text.strong{color:var(--ink);font-weight:600}.wv-text.code{font-family:var(--font-mono);background:var(--surface-2);color:var(--ink);border-radius:4px;padding:1px 5px;font-size:12px}p.wv-text{max-width:72ch}.wv-stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);display:flex;flex-direction:column;flex:160px;gap:4px;padding:16px}.wv-stat .label{color:var(--muted);text-transform:uppercase;letter-spacing:.06em;font-size:11px;font-weight:600}.wv-stat .value{color:var(--ink);font-size:26px;font-weight:700}.wv-stat .change{font-size:12px;font-weight:500}.wv-stat .change.up{color:var(--green)}.wv-stat .change.down{color:var(--red)}.wv-stat .change.flat{color:var(--muted)}.wv-badge{display:inline-flex;background:var(--surface-2);border:1px solid var(--border);color:var(--text-2nd);border-radius:999px;padding:2px 10px;font-size:11px;font-weight:600}.wv-badge.green{color:var(--green);background:#10b9811f;border-color:#10b98159}.wv-badge.amber{color:var(--amber);background:#f59e0b1f;border-color:#f59e0b59}.wv-badge.red{color:var(--red);background:#ef44441f;border-color:#ef444459}.wv-badge.blue{color:var(--blue);background:#3b82f61f;border-color:#3b82f659}.wv-badge.violet{background:var(--surface-2);color:var(--text-2nd);border-color:var(--border)}.wv-progress{display:flex;flex-direction:column;gap:6px}.wv-progress .lbl{display:flex;color:var(--muted);justify-content:space-between;font-size:12px}.wv-progress .bar{background:var(--surface-2);overflow:hidden;border-radius:4px;height:8px}.wv-progress .fill{background:var(--blue);height:100%;transition:width .3s ease-out}.wv-alert{display:flex;border-radius:var(--radius-md);border:1px solid var(--border);background:var(--surface-2);gap:12px;padding:12px 14px}.wv-alert.info{background:#3b82f614;border-color:#3b82f666}.wv-alert.success{background:#10b98114;border-color:#10b98166}.wv-alert.warning{background:#f59e0b14;border-color:#f59e0b66}.wv-alert.danger{background:#ef444414;border-color:#ef444466}.wv-alert .icon{font-size:16px;line-height:1.3}.wv-alert.info .icon{color:var(--blue)}.wv-alert.success .icon{color:var(--green)}.wv-alert.warning .icon{color:var(--amber)}.wv-alert.danger .icon{color:var(--red)}.wv-alert .ttl{color:var(--ink);margin-bottom:2px;font-size:13px;font-weight:600}.wv-alert .body{color:var(--text-2nd);font-size:12px}.wv-list{list-style:none;display:flex;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;flex-direction:column;margin:0;padding:0}.wv-list li{border-top:1px solid var(--border);display:flex;color:var(--text-2nd);align-items: center;gap:10px;padding:10px 14px;font-size:13px}.wv-list li:first-child{border-top:none}.wv-list li .marker{color:var(--muted);min-width:16px;font-weight:600}.wv-table{border-collapse:collapse;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;width:100%;font-size:13px}.wv-table th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--muted);border-bottom:1px solid var(--border);padding:10px 12px;font-size:11px;font-weight:600}.wv-table td{border-bottom:1px solid var(--border);color:var(--text-2nd);padding:10px 12px}.wv-table tr:last-child td{border-bottom:none}.wv-divider{background:var(--border);border:none;height:1px;margin:4px 0}.wv-code{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-md);font-family:var(--font-mono);overflow-x:auto;white-space:pre;color:var(--text-2nd);padding:12px 14px;font-size:12px;line-height:1.5}.wv-code .lang{text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin-bottom:6px;font-size:10px;font-weight:600}.wv-quote{border:1px solid var(--border);background:var(--surface);border-radius:var(--radius-md);padding:12px 16px}.wv-quote .qtext{color:var(--ink);font-size:14px;font-style:italic}.wv-quote .qauthor{color:var(--muted);margin-top:6px;font-size:12px}.wv-icon-box{display:flex;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;flex:180px;align-items: flex-start;gap:8px;padding:14px}.wv-icon-box .icon{font-size:22px}.wv-icon-box .lbl{color:var(--ink);font-size:13px;font-weight:600}.wv-icon-box .desc{color:var(--text-2nd);font-size:12px}.wv-form{display:flex;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;gap:12px;padding:18px}.wv-form label{display:flex;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);flex-direction:column;gap:4px;font-size:11px;font-weight:600}.wv-form input,.wv-form select,.wv-form textarea{background:var(--surface-2);border:1px solid var(--border);color:var(--ink);border-radius:var(--radius-sm);font-size:13px;font-family:var(--font-sans);letter-spacing:normal;text-transform:none;padding:8px 10px;font-weight:400}.wv-form input::placeholder,.wv-form textarea::placeholder{color:var(--muted)}.wv-form input:focus,.wv-form select:focus,.wv-form textarea:focus{outline:none;border-color:var(--primary);box-shadow:0 0 0 1px #3ad7d44d}.wv-button{background:var(--ink);color:var(--primary-ink);border-radius:var(--radius-sm);cursor:pointer;border:none;align-self: flex-start;padding:8px 14px;transition:background .15s ease-out;font-family:inherit;font-size:13px;font-weight:600}.wv-button:hover{background:var(--text-2nd)}.wv-button:focus-visible{outline:none;box-shadow:var(--ring-focus)}.wv-button.secondary{background:var(--surface-2);border:1px solid var(--border);color:var(--ink)}.wv-button.secondary:hover{background:var(--surface-3);border-color:var(--border-strong)}.wv-avatar{display:inline-flex;background:var(--surface-2);border:1px solid var(--border-strong);color:var(--ink);border-radius:50%;flex-shrink:0;justify-content:center;align-items: center;width:36px;height:36px;font-size:13px;font-weight:700}.wv-skeleton{position:relative;box-shadow:var(--glow-live);border-radius:var(--radius-sm)}.wv-skeleton:after{content:"";position:absolute;background:var(--primary);animation:caret .9s infinite;border-radius:2px;width:6px;height:12px;top:50%;right:-10px;transform:translateY(-50%)}@keyframes caret{50%{opacity:0}}.wv-error{color:var(--red);border-radius:var(--radius-sm);font-size:12px;font-family:var(--font-mono);background:#ef444414;border:1px dashed #ef444480;padding:8px 12px}@media (prefers-reduced-motion:reduce){*{transition:none!important}.empty .caret-mark,.wv-skeleton:after,.pill.live:before{animation:none}.wv-skeleton{box-shadow:0 0 0 1px var(--primary)}button.prompt-item:hover:not(:disabled){transform:none}}
