@hanmariyang/drafting 1.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (52) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +217 -0
  3. package/api/dist/db/index.js +107 -0
  4. package/api/dist/db/repos.js +670 -0
  5. package/api/dist/index.js +89 -0
  6. package/api/dist/lib/ai.js +314 -0
  7. package/api/dist/lib/config.js +57 -0
  8. package/api/dist/lib/crypto.js +71 -0
  9. package/api/dist/lib/design-system-gen.js +332 -0
  10. package/api/dist/lib/fixtures.js +150 -0
  11. package/api/dist/lib/gateway.js +55 -0
  12. package/api/dist/lib/handoff.js +283 -0
  13. package/api/dist/lib/items-gen.js +211 -0
  14. package/api/dist/lib/lint-service.js +118 -0
  15. package/api/dist/lib/lint.js +141 -0
  16. package/api/dist/lib/mockup-gen.js +136 -0
  17. package/api/dist/lib/numbering.js +75 -0
  18. package/api/dist/lib/provider-errors.js +31 -0
  19. package/api/dist/lib/render.js +154 -0
  20. package/api/dist/lib/style-guide.js +47 -0
  21. package/api/dist/lib/templates.js +85 -0
  22. package/api/dist/lib/types.js +1 -0
  23. package/api/dist/lib/wireframes.js +137 -0
  24. package/api/dist/providers/byok/anthropic.js +75 -0
  25. package/api/dist/providers/byok/openai-compat.js +95 -0
  26. package/api/dist/providers/cli.js +391 -0
  27. package/api/dist/providers/index.js +68 -0
  28. package/api/dist/providers/managed.js +22 -0
  29. package/api/dist/providers/sse.js +37 -0
  30. package/api/dist/providers/stub.js +55 -0
  31. package/api/dist/providers/types.js +1 -0
  32. package/api/dist/routes/backup.js +24 -0
  33. package/api/dist/routes/deliverables.js +588 -0
  34. package/api/dist/routes/documents.js +205 -0
  35. package/api/dist/routes/helpers.js +43 -0
  36. package/api/dist/routes/interview.js +141 -0
  37. package/api/dist/routes/keys.js +70 -0
  38. package/api/dist/routes/projects.js +103 -0
  39. package/api/dist/routes/settings.js +134 -0
  40. package/api/dist/routes/share.js +39 -0
  41. package/api/dist/routes/suggestions.js +144 -0
  42. package/api/templates/design-system.json +17 -0
  43. package/api/templates/feature-spec.json +73 -0
  44. package/api/templates/ia.json +52 -0
  45. package/api/templates/prd.json +60 -0
  46. package/api/templates/user-flow.json +61 -0
  47. package/bin/drafting.mjs +79 -0
  48. package/db/schema.sql +154 -0
  49. package/package.json +62 -0
  50. package/web/dist/assets/index-CS06cWP3.js +125 -0
  51. package/web/dist/assets/index-DWoYeaZU.css +1 -0
  52. package/web/dist/index.html +14 -0
@@ -0,0 +1 @@
1
+ :root{--paper: #ffffff;--bg: #f7f7f5;--ink: #1b1c1e;--sub: #6f7076;--hair: #e7e6e2;--sug: #0e7b62;--sug-bg: #e9f5f1;--sug-line: #bfe3d8;--sug-text: #0b5c4a;--sug-ink: #0b5c4a;--warn: #8a6a1f;--warn-bg: #fbf4e2;--warn-line: #ebdfbb;--del: #aa3333;--del-line: #e5cfcf;--ok: #1b7f4b;--hover: #efefeb;--active: #eaeae5;--sans: Pretendard, -apple-system, BlinkMacSystemFont, "Segoe UI", system-ui, sans-serif;--mono: ui-monospace, "SF Mono", Menlo, monospace;--space: 4px;--r-win: 14px;--r-card: 10px;--r-btn: 7px;--r-pill: 99px;--shadow-sug: 0 2px 10px rgba(14, 123, 98, .1);color-scheme:light}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{font-family:var(--sans);background:var(--bg);color:var(--ink);font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,textarea,select{font-family:inherit;font-size:inherit;color:inherit}::selection{background:var(--sug-bg)}.app{display:grid;grid-template-rows:42px 1fr 28px;height:100vh;overflow:hidden}.tbar{display:flex;align-items:center;gap:12px;height:42px;padding:0 14px;background:var(--paper);border-bottom:1px solid var(--hair);z-index:30}.tbar .lights{display:flex;gap:7px}.tbar .lights i{width:11px;height:11px;border-radius:var(--r-pill);background:var(--hair);display:block}.tbar .crumb{font-size:12px;color:var(--sub);display:flex;align-items:center;gap:5px;min-width:0}.tbar .crumb a{color:var(--sub)}.tbar .crumb a:hover{color:var(--ink)}.tbar .crumb b{color:var(--ink);font-weight:600}.tbar .crumb .sep{color:var(--hair)}.tbar .crumb .name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:320px}.tbar .right{margin-left:auto;display:flex;gap:8px;align-items:center}.sug-count{display:inline-flex;align-items:center;gap:6px;background:var(--sug-bg);border:1px solid var(--sug-line);color:var(--sug);border-radius:var(--r-pill);padding:3px 11px;font-size:11.5px;font-weight:700;cursor:pointer}.sug-count i{width:7px;height:7px;border-radius:var(--r-pill);background:var(--sug);display:block}.sug-count.zero{background:var(--paper);border-color:var(--hair);color:var(--sub);cursor:default}.sug-count.zero i{background:var(--hair)}.cmdk{font-family:var(--mono);font-size:10px;color:var(--sub);border:1px solid var(--hair);border-radius:6px;padding:3px 8px}.app-name{font-weight:800;letter-spacing:-.02em}.app-name .mark{display:inline-flex;align-items:center;justify-content:center;width:18px;height:18px;border-radius:5px;background:var(--ink);color:var(--paper);font-size:9.5px;font-weight:800;margin-right:6px;vertical-align:-3px}.btn{display:inline-flex;align-items:center;gap:5px;border:1px solid var(--hair);background:var(--paper);color:var(--ink);border-radius:var(--r-btn);padding:5px 11px;font-size:11.5px;font-weight:600;cursor:pointer;transition:background .12s,border-color .12s;white-space:nowrap}.btn:hover{background:var(--hover)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.pri{background:var(--ink);border-color:var(--ink);color:var(--paper)}.btn.pri:hover{background:var(--ink);filter:brightness(1.25)}.btn.ok{background:var(--sug);border-color:var(--sug);color:var(--paper)}.btn.ok:hover{background:var(--sug);filter:brightness(1.08)}.btn.ghost{border-color:transparent;background:transparent}.btn.ghost:hover{background:var(--hover)}.btn.lg{padding:8px 16px;font-size:13px}.btn.sm{padding:3px 8px;font-size:10.5px}.btn.danger{color:var(--del)}.field{width:100%;padding:7px 10px;border:1px solid var(--hair);border-radius:var(--r-btn);background:var(--paper);outline:none;font-size:13px;transition:border-color .12s}.field:focus{border-color:var(--sug-line)}textarea.field{resize:vertical;min-height:78px;line-height:1.6}.lbl{display:block;font-size:12px;color:var(--sub);margin:12px 0 5px;font-weight:600}.shell{display:grid;grid-template-columns:236px 1fr 292px;min-height:0;overflow:hidden}.shell.no-panel{grid-template-columns:236px 1fr}.shell.no-nav{grid-template-columns:1fr 292px}.shell.no-panel.no-nav{grid-template-columns:1fr}.nav{background:var(--bg);border-right:1px solid var(--hair);padding:14px 10px;overflow-y:auto}.nav .proj{font-size:12.5px;font-weight:700;padding:4px 10px 10px;display:flex;align-items:center;gap:7px}.nav .proj .app-name{font-size:12.5px}.nav .grp{font-size:10px;letter-spacing:.1em;color:var(--sub);font-weight:700;padding:12px 10px 5px;text-transform:uppercase}.nd{display:flex;align-items:center;gap:8px;padding:6px 10px;border-radius:var(--r-btn);font-size:12.5px;color:var(--ink);cursor:pointer;position:relative;width:100%;border:none;background:transparent;text-align:left}.nd:hover{background:var(--hover)}.nd.on{background:var(--active);font-weight:700}.nd .t{font-family:var(--mono);font-size:8.5px;color:var(--sub);border:1px solid var(--hair);border-radius:4px;padding:1px 4px;background:var(--paper);flex-shrink:0}.nd .name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nd .sug-dot{margin-left:auto;min-width:16px;height:16px;border-radius:var(--r-pill);background:var(--sug);color:var(--paper);font-size:9px;font-weight:800;display:flex;align-items:center;justify-content:center;padding:0 4px;flex-shrink:0}.nd .stale-dot{margin-left:auto;min-width:16px;height:16px;border-radius:var(--r-pill);background:var(--sug-bg);color:var(--sug);border:1px solid var(--sug-line);font-size:9px;font-weight:800;display:flex;align-items:center;justify-content:center;padding:0 4px;flex-shrink:0}.nd.child{padding-left:26px}.nd.gchild{padding-left:42px}.nav .chain-line{border-left:1px solid var(--hair);margin-left:19px}.nav .new-doc{margin-top:8px}.editor{background:var(--paper);overflow-y:auto;position:relative}.editor-inner{padding:34px 46px 90px}.doc-head{margin-bottom:26px}.doc-head .eyebrow{font-family:var(--mono);font-size:10px;letter-spacing:.16em;color:var(--sub);margin-bottom:8px;text-transform:uppercase}.doc-head h2{font-size:26px;font-weight:800;letter-spacing:-.4px;margin:0;border:none;background:transparent;width:100%;color:var(--ink)}.doc-head h2:focus{outline:none}.doc-head .meta{font-size:12px;color:var(--sub);margin-top:6px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}.doc-head .autosave{font-size:12px;color:var(--sub)}.doc-head .autosave.saved{color:var(--ok)}.sec{position:relative;margin-bottom:4px;padding:4px 0}.sec .sec-head{display:flex;align-items:center;gap:8px;margin:22px 0 8px}.sec .sec-head h3{font-size:15px;font-weight:800;margin:0;color:var(--ink);border:none;background:transparent;flex:1;min-width:0}.sec .sec-head h3:focus{outline:none}.sec .sec-tools{display:flex;gap:6px;opacity:0;transition:opacity .12s}.sec:hover .sec-tools{opacity:1}.sec-tools .btn{padding:3px 8px;font-size:10.5px}.sec-tools .btn.icon{padding:3px 7px;font-size:12px;line-height:1;font-weight:700}.sec-tools .btn.icon:disabled{opacity:.35;cursor:default}.sec-body{font-size:14.5px;line-height:1.95;color:var(--ink);max-width:640px}.sec-body p{margin:0 0 10px}.sec-body h1,.sec-body h2,.sec-body h3,.sec-body h4{font-size:15px;font-weight:800;margin:18px 0 8px}.sec-body ul,.sec-body ol{margin:6px 0 10px;padding-left:1.3rem}.sec-body li{margin:3px 0}.sec-body blockquote{border-left:3px solid var(--sug-line);margin:8px 0;padding:2px 14px;color:var(--sub)}.sec-body code{font-family:var(--mono);font-size:.85em;background:var(--bg);padding:.1em .35em;border-radius:4px}.sec-body pre{background:var(--bg);padding:10px 12px;border-radius:var(--r-card);overflow-x:auto}.sec-body .muted{color:var(--sub)}.sec-body.thinking{color:var(--sub);font-style:italic;animation:think-pulse 1.4s ease-in-out infinite}@keyframes think-pulse{0%,to{opacity:.5}50%{opacity:.85}}@media(prefers-reduced-motion:reduce){.sec-body.thinking{animation:none}}.sec.proposed .sec-body{background:var(--sug-bg);color:var(--sug-text);border-bottom:1.5px solid var(--sug);padding:6px 8px;border-radius:2px;cursor:pointer;transition:background .2s,color .2s,border-color .2s}.sec.proposed.focus .sec-body{box-shadow:var(--shadow-sug)}.sec.proposed .sec-head h3{color:var(--sug-text)}.sec.del .sec-body{color:var(--del);text-decoration:line-through;text-decoration-thickness:1.5px;opacity:.7}.sug-anchor{display:inline-flex;align-items:center;justify-content:center;width:16px;height:16px;border-radius:var(--r-pill);background:var(--sug);color:var(--paper);font-size:9px;font-weight:800;vertical-align:2px;margin-left:4px;cursor:pointer;border:none}.sec.drying .sec-body{background:var(--paper);color:var(--ink);border-bottom-color:transparent}.cursor:after{content:"▌";color:var(--sug);animation:blink 1s steps(1) infinite}@keyframes blink{50%{opacity:0}}.editor .empty{border:1px dashed var(--hair);border-radius:var(--r-card);padding:28px 20px;text-align:center;color:var(--sub);max-width:640px;font-size:13px}.editor .empty b{color:var(--ink)}.sec-edit textarea{width:100%;border:1px solid var(--hair);border-radius:var(--r-card);background:var(--bg);padding:10px 12px;min-height:120px;resize:vertical;outline:none;font-family:var(--mono);font-size:12.5px;line-height:1.7;max-width:640px}.sec-edit textarea:focus{border-color:var(--sug-line)}.panel{background:var(--bg);border-left:1px solid var(--hair);padding:14px;overflow-y:auto}.panel .ph{display:flex;align-items:center;gap:8px;font-size:12px;font-weight:700;margin-bottom:12px}.panel .ph .cnt{color:var(--sug)}.panel .ph .all{margin-left:auto;font-size:11px;color:var(--sug);font-weight:700;cursor:pointer;border:none;background:transparent}.panel .ph .all:disabled{color:var(--sub);cursor:default}.sug-card{background:var(--paper);border:1px solid var(--hair);border-radius:var(--r-card);padding:12px 13px;margin-bottom:10px;font-size:12px;line-height:1.6;overflow:hidden;transition:box-shadow .12s,border-color .12s}.sug-card.focus{border-color:var(--sug);box-shadow:var(--shadow-sug)}.sug-card.collapsing{max-height:0;padding-top:0;padding-bottom:0;margin-bottom:0;opacity:0;transform:translateY(-4px);transition:max-height .18s ease-out,opacity .18s ease-out,transform .18s ease-out,padding .18s ease-out,margin .18s ease-out}.sug-card .who{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin-bottom:6px}.sug-card .who>:first-child{flex-shrink:0}.sug-card .who .av{width:18px;height:18px;border-radius:var(--r-pill);background:var(--sug);color:var(--paper);display:flex;align-items:center;justify-content:center;font-size:9px;font-weight:800;flex-shrink:0}.sug-card .who b{font-size:11.5px;flex:1 1 auto;min-width:0;word-break:keep-all;overflow-wrap:anywhere}.sug-card .who .why{font-size:10px;color:var(--sub);font-family:var(--mono);flex:0 0 100%;margin-left:0;word-break:keep-all;overflow-wrap:anywhere}.sug-card .quote{color:var(--sub);border-top:1px dashed var(--hair);margin-top:7px;padding-top:7px;font-size:11.5px}.sug-card .quote .arrow{color:var(--sug);font-weight:700}.ceremony{position:fixed;left:50%;bottom:26px;transform:translate(-50%);display:flex;align-items:center;gap:10px;z-index:40;background:var(--paper);border:1px solid var(--hair);border-radius:var(--r-card);padding:10px 16px 10px 12px;box-shadow:var(--shadow-sug);font-size:13px;color:var(--ink);animation:ceremony-in .28s ease-out}@keyframes ceremony-in{0%{opacity:0;transform:translate(-50%,8px)}to{opacity:1;transform:translate(-50%)}}@media(prefers-reduced-motion:reduce){.ceremony{animation:none}}.gen-block-banner{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:12px 16px 0;padding:11px 14px;font-size:12.5px;line-height:1.55;background:var(--paper);border:1px solid var(--hair);border-radius:var(--r-card)}.gen-block-banner .acts{display:flex;gap:8px;flex-shrink:0}.gen-block-banner .btn{text-decoration:none}.sug-acts{display:flex;gap:6px;margin-top:9px}.sug-acts .btn{padding:4px 10px;font-size:11px;font-weight:700}.sug-acts.rewrite{margin-top:6px}.sug-acts input{flex:1;border:1px solid var(--hair);border-radius:6px;font:inherit;font-size:11px;padding:4px 8px;min-width:0;outline:none;background:var(--paper)}.sug-acts input:focus{border-color:var(--sug-line)}.panel .done-line{font-size:11px;color:var(--sub);padding:8px 4px;border-top:1px solid var(--hair);margin-top:4px}.panel .done-line b{color:var(--ink)}.panel .panel-empty{font-size:12px;color:var(--sub);padding:24px 8px;text-align:center;line-height:1.7}.panel .panel-empty b{color:var(--ink)}.statusbar{display:flex;gap:14px;align-items:center;padding:0 16px;font-family:var(--mono);font-size:10px;color:var(--sub);border-top:1px solid var(--hair);background:var(--paper)}.statusbar .save{color:var(--ok)}.statusbar .sg{color:var(--sug)}.statusbar .r{margin-left:auto;display:flex;gap:12px}.spec-row{display:flex;align-items:center;gap:9px;padding:8px 12px;border-bottom:1px solid var(--hair);font-size:13px;background:var(--paper)}.spec-row .id{font-family:var(--mono);font-size:10px;color:var(--sub);min-width:62px;flex-shrink:0}.spec-row .txt{flex:1;min-width:0}.spec-row .tag{font-size:9.5px;font-weight:700;border-radius:4px;padding:1px 6px;background:var(--bg);color:var(--sub)}.spec-row.lv1{font-weight:700}.spec-row.lv2{padding-left:36px}.spec-row.lv3{padding-left:62px;color:var(--ink);font-size:12.5px}.spec-row .cnt{font-size:10.5px;color:var(--sub);flex-shrink:0}.spec-row.proposed{background:var(--sug-bg)}.spec-row.proposed .id{color:var(--sug)}.spec-row.proposed .pill-proposed{font-size:9.5px;font-weight:800;color:var(--sug);border:1px solid var(--sug-line);background:var(--paper);border-radius:var(--r-pill);padding:1px 8px}.pri-edit{font-family:var(--mono);font-size:10px;font-weight:700;color:var(--sub);border:1px solid var(--hair);background:var(--paper);border-radius:5px;padding:1px 7px;cursor:pointer}.pri-edit:hover{border-color:var(--sug-line);color:var(--ink)}.viol-bar{display:flex;align-items:center;gap:8px;margin-top:8px;padding:7px 10px;background:var(--warn-bg);border:1px solid var(--warn-line);border-radius:6px;font-size:11.5px}.viol-bar .vcode{font-family:var(--mono);font-size:10px;font-weight:800;color:var(--warn);flex-shrink:0}.viol-bar .vmsg{flex:1;min-width:0;color:var(--sub)}.viol-bar .btn.sm{flex-shrink:0}.flow-linker{display:flex;align-items:center;flex-wrap:wrap;gap:6px;margin-top:8px}.flowchip{display:inline-flex;align-items:center;gap:4px;font-family:var(--mono);font-size:10.5px;font-weight:700;border:1px solid var(--hair);background:var(--paper);color:var(--ink);border-radius:var(--r-pill);padding:1px 4px 1px 8px}.flowchip button{border:none;background:transparent;color:var(--sub);cursor:pointer;font-size:12px;line-height:1;padding:0 2px}.flowchip button:hover{color:var(--ink)}.rejected-bar{margin:16px 12px 0;border-top:1px solid var(--hair);padding-top:10px}.rejected-head{display:flex;align-items:center;gap:8px;width:100%;padding:6px 4px;background:transparent;border:none;cursor:pointer;font-size:12px;color:var(--ink)}.rejected-head .muted{margin-left:auto;font-size:11px}.rejected-list{margin-top:4px}.rejected-row{display:flex;align-items:center;gap:9px;padding:6px 8px;border-bottom:1px solid var(--hair);font-size:12.5px}.rejected-row .rid{font-family:var(--mono);font-size:10px;color:var(--sub);min-width:62px;flex-shrink:0}.rejected-row .rtitle{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--sub)}.rejected-row .btn.sm{flex-shrink:0}.spec-row .row-acts{display:flex;gap:4px;flex-shrink:0}.spec-row .row-acts button{border:1px solid var(--sug-line);background:var(--paper);color:var(--sug);border-radius:5px;width:22px;height:22px;font-size:11px;font-weight:800;cursor:pointer;display:inline-flex;align-items:center;justify-content:center}.spec-row .row-acts button.no{color:var(--del);border-color:var(--del-line)}.home{overflow-y:auto;padding:40px 46px 90px}.home-inner{max-width:900px;margin:0 auto}.home .eyebrow{font-family:var(--mono);font-size:10px;letter-spacing:.16em;color:var(--sub);margin-bottom:8px;text-transform:uppercase}.home h1{font-size:26px;font-weight:800;letter-spacing:-.4px;margin:0 0 6px}.home .lede{font-size:13px;color:var(--sub);max-width:560px;line-height:1.7;margin-bottom:24px}.home .new-row{display:flex;gap:8px;margin-bottom:24px;max-width:520px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:12px}.pcard{border:1px solid var(--hair);border-radius:var(--r-card);padding:16px;background:var(--paper);cursor:pointer;transition:border-color .12s,box-shadow .12s;text-align:left;position:relative}.pcard:hover{border-color:var(--sug-line)}.pcard h3{margin:0 0 6px;font-size:15px;font-weight:700;display:flex;align-items:center;gap:8px}.pcard .sug-dot{min-width:18px;height:18px;border-radius:var(--r-pill);background:var(--sug);color:var(--paper);font-size:9.5px;font-weight:800;display:inline-flex;align-items:center;justify-content:center;padding:0 5px}.pcard .desc{font-size:12.5px;color:var(--sub);line-height:1.6}.pcard .foot{font-size:11px;color:var(--sub);margin-top:10px;font-family:var(--mono)}.center-empty{text-align:center;padding:40px 16px;color:var(--sub);font-size:13px}.interview-screen{overflow-y:auto;padding:40px 46px 90px}.interview-inner{max-width:640px;margin:0 auto}.q-progress{height:4px;background:var(--hair);border-radius:2px;margin-bottom:16px;overflow:hidden}.q-progress>i{display:block;height:100%;background:var(--sug);border-radius:2px;transition:width .2s}.q-meta{font-size:12px;color:var(--sub);margin-bottom:16px}.q-card{background:var(--paper);border:1px solid var(--hair);border-radius:var(--r-card);padding:18px;margin-bottom:16px}.q-card .q{font-weight:700;margin-bottom:10px;font-size:15px}.q-hint{font-size:12px;color:var(--sub);margin-top:8px;line-height:1.6}.q-hint b{color:var(--ink);font-weight:600}.q-nav{display:flex;justify-content:space-between;margin-top:12px;align-items:center}.q-list{margin:8px 0}.q-list-item{display:flex;gap:8px;align-items:center;font-size:12px;padding:5px 8px;border-radius:6px;cursor:pointer;color:var(--sub);border:none;background:transparent;width:100%;text-align:left}.q-list-item:hover{background:var(--hover)}.q-list-item.active{color:var(--ink);font-weight:700}.q-list-item .dot{width:7px;height:7px;border-radius:var(--r-pill);background:var(--hair);flex-shrink:0}.q-list-item.answered .dot{background:var(--ok)}.interview-cta{margin-top:16px}.settings{overflow-y:auto;padding:40px 46px 90px}.settings-inner{max-width:760px;margin:0 auto}.tpl-wrap{display:grid;grid-template-columns:230px 1fr;gap:20px;max-width:900px;margin:0 auto}.tpl-list{display:flex;flex-direction:column;gap:4px}.tpl-list-head{display:flex;align-items:center;justify-content:space-between;padding:2px 2px 8px}.tpl-row{display:flex;flex-direction:column;gap:2px;text-align:left;padding:8px 10px;border:1px solid var(--hair);border-radius:var(--r-card);background:var(--paper);cursor:pointer}.tpl-row.active{border-color:var(--ink)}.tpl-row .tpl-name{font-size:13px;font-weight:700}.tpl-row .tpl-meta{font-family:var(--mono);font-size:9.5px;color:var(--sub)}.tpl-row .tpl-src{align-self:flex-start;font-size:9px;font-weight:700;color:var(--sug);border:1px solid var(--sug-line);border-radius:var(--r-pill);padding:0 6px}.tpl-edit{min-width:0}.tpl-form-head{display:flex;align-items:center;justify-content:space-between}.tpl-2col{display:grid;grid-template-columns:1fr 160px;gap:10px}.tpl-inline{display:flex;gap:6px;margin-bottom:5px}.tpl-inline .field{flex:1;min-width:0}.tpl-q{border:1px solid var(--hair);border-radius:var(--r-card);padding:8px;margin-bottom:8px}.tpl-save{display:flex;align-items:center;gap:10px;margin-top:18px}.settings h1{font-size:26px;font-weight:800;letter-spacing:-.4px;margin:0 0 6px}.settings h3{font-size:15px;font-weight:800;margin:28px 0 6px}.settings .subtle{font-size:12.5px;color:var(--sub);line-height:1.6;margin-bottom:12px}.rows{display:flex;flex-direction:column;gap:8px}.row{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--hair);border-radius:var(--r-card);background:var(--paper)}.row .grow{flex:1;min-width:0}.divider{height:1px;background:var(--hair);margin:24px 0}.mono{font-family:var(--mono);font-size:12px}.muted{color:var(--sub)}.err{color:var(--del);font-size:12px}.ok{color:var(--ok);font-size:12px}.pill{font-size:10.5px;padding:2px 8px;border-radius:var(--r-pill);border:1px solid var(--hair);color:var(--sub);background:var(--paper)}.overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#1b1c1e6b;display:grid;place-items:center;z-index:60;padding:16px}.dialog{background:var(--paper);border-radius:var(--r-win);border:1px solid var(--hair);max-width:560px;width:100%;padding:24px;max-height:88vh;overflow-y:auto}.dialog h2{margin:0 0 6px;font-size:18px;font-weight:800;letter-spacing:-.3px}.dialog .subtle{font-size:12.5px;color:var(--sub);line-height:1.6}.dialog .foot-actions{text-align:right;margin-top:20px}.wizard-step{display:flex;gap:6px;margin:0 0 14px}.wizard-dot{width:8px;height:8px;border-radius:var(--r-pill);background:var(--hair)}.wizard-dot.active{background:var(--sug)}.h-row{display:flex;align-items:center;gap:10px}.mini-card{border:1px solid var(--hair);border-radius:var(--r-card);padding:12px 14px;background:var(--bg);margin-top:8px}.panel-scrim{display:none}@media(max-width:1100px){.shell,.shell.no-panel{grid-template-columns:1fr}.nav{position:fixed;top:42px;bottom:28px;left:0;width:236px;z-index:40;transform:translate(-100%);transition:transform .18s ease-out}.nav.open{transform:translate(0)}.panel{position:fixed;top:42px;bottom:28px;right:0;width:292px;z-index:45;transform:translate(100%);transition:transform .18s ease-out}.panel.open{transform:translate(0);box-shadow:-8px 0 24px #00000014}.panel-scrim{display:block;position:fixed;top:42px;right:0;bottom:28px;left:0;background:#0003;z-index:38}.editor-inner,.home,.settings,.interview-screen{padding-left:20px;padding-right:20px}}.nav-toggle,.panel-toggle{display:none}@media(max-width:1100px){.nav-toggle,.panel-toggle{display:inline-flex}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.001ms!important;animation-duration:.001ms!important}.cursor:after{animation:none}}.start{overflow-y:auto;display:grid;place-items:start center;padding:56px 40px 90px}.start-in{width:640px;max-width:100%;text-align:center;padding-top:4vh}.start-mark{width:46px;height:46px;border-radius:13px;background:var(--ink);color:var(--paper);font-weight:800;font-size:21px;display:grid;place-items:center;margin:0 auto 20px}.start-in h1{font-size:23px;font-weight:800;letter-spacing:-.3px;margin:0 0 8px}.start-phil{font-size:13px;color:var(--sub);line-height:1.8;margin:0 0 28px}.start-phil b{color:var(--ink)}.idea-box{background:var(--paper);border:1px solid var(--hair);border-radius:12px;padding:8px;display:flex;gap:8px;box-shadow:0 4px 18px #0000000d;text-align:left;margin-bottom:14px}.idea-input{flex:1;border:0;outline:0;background:transparent;padding:11px 14px;font-size:14.5px;font-family:inherit;color:var(--ink)}.idea-input::placeholder{color:var(--sub)}.idea-go{padding:11px 18px;font-size:13px;border-radius:8px}.form-error{color:var(--del);font-size:12px;margin:4px 0 10px}.start-card{width:100%;background:var(--paper);border:1px solid var(--hair);border-radius:var(--r-card);padding:14px 18px;display:flex;align-items:center;gap:14px;text-align:left;cursor:pointer;font:inherit;color:inherit;margin-top:12px}.start-card:hover{background:var(--hover)}.start-card .sdot{width:8px;height:8px;border-radius:99px;background:var(--sug);flex:none}.start-card .k{font-size:9.5px;font-weight:700;letter-spacing:.12em;color:var(--sub);text-transform:uppercase;flex:none}.start-card .t{flex:1;min-width:0}.start-card .t b{display:block;font-size:12.5px;margin-bottom:2px}.start-card .t span{display:block;font-size:11px;color:var(--sub);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.start-card .open{font-size:10px;font-weight:700;white-space:nowrap;border-radius:99px;padding:4px 12px;color:var(--sug);background:var(--sug-bg);border:1px solid var(--sug-line)}.start-card.resume .open{color:var(--ink);background:var(--paper);border-color:var(--hair)}.start-projects{margin-top:30px;text-align:left}.grp-line{font-size:9.5px;letter-spacing:.14em;color:var(--sub);text-transform:uppercase;padding:0 2px 8px}.start-row{width:100%;display:flex;align-items:center;gap:10px;background:var(--paper);border:1px solid var(--hair);border-radius:var(--r-btn);padding:10px 14px;margin-bottom:6px;cursor:pointer;font:inherit;color:inherit;text-align:left}.start-row:hover{background:var(--hover)}.start-row .nm{font-size:12.5px;font-weight:700;white-space:nowrap}.start-row .ds{font-size:11px;color:var(--sub);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.start-row .sp{flex:1}.start-row .gd{display:inline-flex;align-items:center;gap:4px;font-size:9.5px;font-weight:700;color:var(--sug)}.start-row .gd i{width:5px;height:5px;border-radius:99px;background:var(--sug)}.start-row .dc{font-size:9.5px;color:var(--sub);white-space:nowrap}.sheet-veil{position:fixed;top:0;right:0;bottom:0;left:0;background:#1b1c1e47;-webkit-backdrop-filter:blur(1.5px);backdrop-filter:blur(1.5px);display:grid;place-items:center;z-index:60}.plan-sheet{width:560px;max-width:calc(100vw - 48px);background:var(--paper);border:1px solid var(--hair);border-radius:14px;padding:26px 28px;box-shadow:0 24px 60px #00000038}.plan-sheet .eyebrow{font-family:var(--mono);font-size:10px;letter-spacing:.16em;color:var(--sub);text-transform:uppercase;margin-bottom:8px}.plan-sheet h2{font-size:18px;font-weight:800;letter-spacing:-.2px;margin:0 0 14px}.plan-sheet .field{width:100%;margin-bottom:14px}.plan-sheet-row{display:flex;gap:8px;align-items:center}.plan-sheet-row .hint{font-size:9.5px;color:var(--sub);margin-left:auto}.switcher{position:relative;margin-bottom:4px}.sw-bar{display:flex;align-items:stretch;background:var(--paper);border:1px solid var(--hair);border-radius:8px;overflow:hidden}.sw-cur{flex:1;min-width:0;display:flex;align-items:center;gap:8px;padding:8px 10px;background:transparent;border:0;cursor:pointer;font:inherit;color:inherit;text-align:left}.sw-cur:hover{background:var(--hover)}.sw-cur b{font-size:12px;flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sw-cur .car{font-size:8px;color:var(--sub)}.sw-plus{border:0;border-left:1px solid var(--hair);background:transparent;padding:0 10px;font-size:14px;color:var(--sub);cursor:pointer}.sw-plus:hover{background:var(--hover);color:var(--ink)}.sw-menu{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:50;background:var(--paper);border:1px solid var(--hair);border-radius:8px;box-shadow:0 10px 30px #0000001f;overflow:hidden;padding:4px}.sw-item{width:100%;display:flex;align-items:center;gap:8px;padding:7px 9px;border:0;background:transparent;border-radius:6px;cursor:pointer;font:inherit;color:inherit;text-align:left}.sw-item:hover{background:var(--hover)}.sw-item.on{font-weight:700}.sw-item .nm{flex:1;font-size:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sw-item .gd{display:inline-flex;align-items:center;gap:4px;font-family:var(--mono);font-size:9px;font-weight:700;color:var(--sug)}.sw-item .gd i{width:5px;height:5px;border-radius:99px;background:var(--sug)}.sw-item.alt{border-top:1px solid var(--hair);border-radius:0;margin-top:4px;padding-top:9px;color:var(--sub)}.sw-empty{padding:10px;font-size:11px;color:var(--sub)}.opt{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;margin-right:18px;cursor:pointer}.pal-veil{align-items:start;padding-top:12vh;display:flex;justify-content:center}.palette{width:560px;max-width:calc(100vw - 48px);background:var(--paper);border:1px solid var(--hair);border-radius:12px;box-shadow:0 24px 60px #00000038;overflow:hidden;display:flex;flex-direction:column;max-height:60vh}.pal-input{border:0;outline:0;padding:14px 16px;font-size:14px;font-family:inherit;border-bottom:1px solid var(--hair);background:var(--paper);color:var(--ink)}.pal-list{overflow-y:auto;padding:6px}.pal-item{width:100%;display:flex;align-items:center;gap:9px;padding:8px 10px;border:0;background:transparent;border-radius:7px;cursor:pointer;font:inherit;color:inherit;text-align:left}.pal-item.on{background:var(--hover)}.pal-item .t{font-size:8.5px;font-weight:700;color:var(--sub);border:1px solid var(--hair);border-radius:4px;padding:1.5px 5px;background:var(--bg);flex:none;width:38px;text-align:center}.pal-item .nm{font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pal-item .dt{font-size:11px;color:var(--sub);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pal-item .gd{margin-left:auto;display:inline-flex;align-items:center;gap:4px;font-size:9px;font-weight:700;color:var(--sug)}.pal-item .gd i{width:5px;height:5px;border-radius:99px;background:var(--sug)}.pal-empty{padding:18px;font-size:12px;color:var(--sub);text-align:center}.pal-foot{border-top:1px solid var(--hair);padding:7px 12px;font-size:9.5px;color:var(--faint, var(--sub))}.dnav{display:flex;flex-direction:column;gap:2px;height:100%}.dnav .grp{font-family:var(--mono);font-size:9px;letter-spacing:.14em;color:var(--sub);text-transform:uppercase;padding:10px 8px 5px}.dnav .node{display:flex;align-items:center;gap:8px;padding:6.5px 8px;border-radius:var(--r-btn);font-size:12px;color:var(--ink);background:transparent;border:none;width:100%;text-align:left;cursor:pointer}.dnav .node:hover{background:var(--hover)}.dnav .node.on{background:var(--hover);font-weight:700}.dnav .node.dim{color:var(--sub)}.dnav .tb{font-family:var(--mono);font-size:8.5px;font-weight:700;color:var(--sub);border:1px solid var(--hair);border-radius:4px;padding:1.5px 5px;background:var(--paper);flex:none;width:36px;text-align:center}.dnav .tb.der{border-style:dashed}.dnav .nm{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.dnav .ok{font-size:9px;color:var(--sug)}.dnav .gd{display:inline-flex;align-items:center;gap:4px;font-family:var(--mono);font-size:9px;font-weight:700;color:var(--sug)}.dnav .gd i{width:5px;height:5px;border-radius:var(--r-pill);background:var(--sug)}.dnav .auto{font-family:var(--mono);font-size:8.5px;color:var(--sub)}.dnav .lock{font-family:var(--mono);font-size:8.5px;color:var(--warn)}.dnav .navsp{flex:1}.dnav .hubln{font-size:11.5px;color:var(--sub);padding:8px;border-top:1px solid var(--hair);background:transparent;border-left:0;border-right:0;border-bottom:0;width:100%;text-align:left;cursor:pointer}.dnav .hubln.on{color:var(--ink);font-weight:700}.eyebrow{font-family:var(--mono);font-size:10px;letter-spacing:.16em;color:var(--sub);text-transform:uppercase;margin-bottom:7px}.ed{background:var(--paper);overflow-y:auto}.struct-h1{font-size:21px;font-weight:800;letter-spacing:-.3px;margin:0 0 3px}.dmeta{font-family:var(--mono);font-size:10px;color:var(--sub);margin-bottom:20px;display:flex;align-items:center;flex-wrap:wrap;gap:6px}.ed .empty,.wfwrap .empty,.hub-main .empty{border:1px dashed var(--hair);border-radius:var(--r-card);padding:28px 20px;text-align:center;color:var(--sub);font-size:13px;max-width:640px}.ed .empty b,.wfwrap .empty b{color:var(--ink)}.hub-main{background:var(--bg);overflow-y:auto;padding:30px 42px 80px}.hub-h1{font-size:24px;font-weight:800;letter-spacing:-.3px;margin:4px 0 3px}.hub-sub{font-family:var(--mono);font-size:10px;color:var(--sub);margin-bottom:18px}.next-action{display:flex;align-items:center;gap:14px;margin-bottom:18px;padding:14px 16px;background:var(--paper);border:1px solid var(--hair);border-radius:var(--r-card)}.next-action .na-body{display:flex;flex-direction:column;gap:1px;min-width:0}.next-action .na-eyebrow{font-family:var(--mono);font-size:9px;letter-spacing:.14em;text-transform:uppercase;color:var(--sub)}.next-action .na-body b{font-size:14.5px}.next-action .na-body span{font-size:12px;color:var(--sub)}.next-action .na-go{margin-left:auto;flex-shrink:0;border:1px solid var(--ink);background:var(--ink);color:var(--paper);font-weight:700;font-size:12.5px;border-radius:var(--r-btn);padding:7px 14px;cursor:pointer}.next-action .na-go:hover{filter:brightness(1.25)}.hcard .ht .hpill{font-size:9px;font-weight:700;border-radius:var(--r-pill);padding:1px 7px;margin-left:2px}.hcard .ht .hpill.stale{color:var(--warn);border:1px solid var(--warn-line);background:var(--warn-bg)}.hcard .ht .hpill.sug{color:var(--sug);border:1px solid var(--sug-line)}.hubgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.hcard{background:var(--paper);border:1px solid var(--hair);border-radius:var(--r-card);padding:16px 18px;display:flex;flex-direction:column;gap:10px;text-align:left;cursor:pointer}.hcard:hover{border-color:var(--sug-line)}.hcard.locked{border-style:dashed}.hcard .ht{display:flex;align-items:center;gap:8px}.hcard .ht .tb{font-family:var(--mono);font-size:8.5px;font-weight:700;color:var(--sub);border:1px solid var(--hair);border-radius:4px;padding:1.5px 5px;background:var(--bg)}.hcard .ht .tb.der{border-style:dashed}.hcard .ht b{font-size:13.5px}.hcard .st{font-family:var(--mono);font-size:9.5px;color:var(--sub)}.hbar{display:flex;gap:3px}.hbar i{height:5px;flex:1;border-radius:3px;background:var(--hair)}.hbar i.acc{background:var(--ink)}.hbar i.prop{background:var(--sug)}.hcard .hfoot{display:flex;align-items:center;gap:8px;font-size:11px;color:var(--sub)}.hcard .hfoot .sp{flex:1}.wfrow{display:flex;gap:4px}.wfrow .sk{flex:1;height:34px}.gate{display:flex;align-items:center;gap:12px;background:var(--warn-bg);border:1px solid var(--warn-line);border-radius:var(--r-card);padding:13px 18px;margin-top:16px}.gate b{font-size:12.5px;color:var(--warn);white-space:nowrap}.gate span{font-size:11.5px;color:var(--warn);opacity:.85;flex:1}.gate .go{font-family:var(--mono);font-size:10px;font-weight:700;color:var(--warn);background:var(--paper);border:1px solid var(--warn-line);border-radius:var(--r-pill);padding:4px 12px;white-space:nowrap;cursor:pointer}.sk{background:var(--hover);border-radius:5px;display:block}.sk.bar{height:9px;width:60%}.sk.line{height:8px}.sk.block{height:44px}.sk.btnk{height:16px;width:52%;background:var(--ink);opacity:.85}.sumbar{display:flex;gap:8px;margin-bottom:14px;flex-wrap:wrap}.sumchip{font-family:var(--mono);font-size:10px;font-weight:700;border:1px solid var(--hair);background:var(--paper);border-radius:var(--r-pill);padding:4px 12px;color:var(--sub)}.sumchip b{color:var(--ink)}.sumchip.g{color:var(--sug-ink);background:var(--sug-bg);border-color:var(--sug-line)}.sumchip.am{color:var(--warn);background:var(--warn-bg);border-color:var(--warn-line)}.colhead{display:flex;gap:10px;padding:6px 10px;font-family:var(--mono);font-size:8.5px;letter-spacing:.1em;color:var(--sub);text-transform:uppercase;border-bottom:1px solid var(--hair)}.colhead .c1{width:66px}.colhead .c2{flex:1}.colhead .c3{width:78px}.colhead .c4{width:34px;text-align:right}.grouprow{display:flex;align-items:center;gap:10px;padding:10px 10px 6px;font-size:13px}.grouprow b{font-size:13.5px}.grouprow .gid{font-family:var(--mono);font-size:10px;font-weight:700;color:var(--sub);width:66px}.grouprow .gsum{font-family:var(--mono);font-size:9px;color:var(--sub);margin-left:auto}.trow{display:flex;align-items:center;gap:10px;padding:8.5px 10px;border-bottom:1px solid var(--hair);font-size:13px;width:100%;text-align:left;background:transparent;border-left:0;border-right:0;border-top:0;cursor:pointer}.trow .rid{font-family:var(--mono);font-size:10px;font-weight:700;color:var(--sub);width:66px;flex:none}.trow .rt{flex:1}.trow .src{font-family:var(--mono);font-size:9px;color:var(--sub);white-space:nowrap}.trow .pri-tag{font-family:var(--mono);font-size:9px;color:var(--sub);width:24px;text-align:right}.trow.lv2{padding-left:38px}.trow.sug{background:var(--sug-bg)}.trow.sug .rid{color:var(--sug)}.dpill{font-family:var(--mono);font-size:9px;font-weight:700;color:var(--sug);border:1px solid var(--sug-line);background:var(--paper);border-radius:var(--r-pill);padding:2px 8px;white-space:nowrap}.dpill.amber{color:var(--warn);border-color:var(--warn-line);background:var(--warn-bg)}.typechip{font-family:var(--mono);font-size:8.5px;font-weight:700;color:var(--sub);border:1px solid var(--hair);border-radius:var(--r-pill);padding:2px 8px;background:var(--bg)}.pgchip{font-family:var(--mono);font-size:9px;font-weight:700;color:var(--ink);border:1px solid var(--hair);border-radius:5px;padding:2px 6px;background:var(--bg);white-space:nowrap}.mini{display:flex;gap:4px}.mini button{width:22px;height:22px;border-radius:6px;border:1px solid var(--sug-line);background:var(--paper);color:var(--sug);font-size:11px;font-weight:800;cursor:pointer;display:grid;place-items:center}.mini button.no{color:var(--del);border-color:var(--del-line)}.exp{border:1px solid var(--sug-line);border-radius:var(--r-card);background:var(--sug-bg);margin:0 0 6px;padding:12px 14px 12px 46px;position:relative}.exp.viol{border-color:var(--warn-line);background:var(--warn-bg)}.exp .xh{display:flex;align-items:center;gap:9px;margin-bottom:8px}.exp .xh .rid{font-family:var(--mono);font-size:10px;font-weight:800;color:var(--sug)}.exp .xh b{font-size:13px;color:var(--sug-ink)}.exp .xh .mini{margin-left:auto}.exp .ac{font-size:11.5px;color:var(--ink);line-height:1.7;margin-bottom:8px}.exp .ac .lb{font-family:var(--mono);font-size:8.5px;letter-spacing:.12em;color:var(--sub);text-transform:uppercase;display:block;margin-bottom:3px}.exp .links{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.exp .links .lb{font-family:var(--mono);font-size:8.5px;letter-spacing:.12em;color:var(--sub);text-transform:uppercase}.exp .quote{font-size:11px;color:var(--sub);border-left:2px solid var(--sug-line);padding-left:9px;margin-top:8px}.iav-health{display:flex;flex-wrap:wrap;gap:8px;margin:14px 0 2px}.iav-stat{display:flex;align-items:center;gap:7px;border:1px solid var(--hair);border-radius:var(--r-pill);padding:5px 12px 5px 11px;background:var(--paper);font-size:12.5px;color:var(--sub)}.iav-stat .num{font-family:var(--mono);font-weight:700;font-variant-numeric:tabular-nums;font-size:13px;color:var(--ink)}.iav-stat .dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.iav-stat.warn{border-color:var(--warn-line);background:var(--warn-bg);color:var(--warn)}.iav-stat.warn .num{color:var(--warn)}.iav-stat.warn .dot{background:var(--warn)}.iav-tabs{display:flex;align-items:center;gap:2px;margin:16px 0 0;border-bottom:1px solid var(--hair)}.iav-tab{font-size:12.5px;color:var(--sub);padding:7px 12px;background:none;border:0;border-bottom:2px solid transparent;cursor:pointer;font-family:inherit}.iav-tab:hover{color:var(--ink)}.iav-tab.on{color:var(--ink);font-weight:600;border-bottom-color:var(--ink)}.iav-tab:focus-visible{outline:2px solid var(--sug);outline-offset:-2px;border-radius:4px}.iav-empty{color:var(--sub);font-size:13px;padding:28px 4px;text-align:center}.iav-stage{margin-top:16px}.iav-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px;align-content:start}.iav-tree{position:relative}.iav-approot{display:inline-flex;align-items:center;gap:8px;font-size:12.5px;font-weight:600;background:var(--ink);color:var(--paper);border-radius:var(--r-btn);padding:5px 12px;margin-bottom:4px}.iav-approot .mid{font-family:var(--mono);font-size:9px;font-weight:800;opacity:.7;letter-spacing:.06em}.iav-sec{position:relative;margin-left:12px;padding-left:16px;border-left:1.5px solid var(--hair);padding-top:12px}.iav-sec:last-child{border-left-color:transparent}.iav-sechd{display:flex;align-items:center;gap:8px;margin-bottom:8px}.iav-sechd .branch{position:absolute;left:-1.5px;top:22px;width:15px;height:1.5px;background:var(--hair)}.iav-sechd .nm{font-size:13px;font-weight:700}.iav-sechd .cnt{font-family:var(--mono);font-size:10px;font-weight:700;color:var(--sub);background:var(--bg);border:1px solid var(--hair);border-radius:var(--r-pill);padding:0 7px}.iav-secnew{font-size:11px;border:1px solid var(--hair);border-radius:var(--r-pill);padding:2px 9px;background:var(--paper);font-family:inherit;width:92px}.iav-secnew:focus{outline:none;border-color:var(--sug-line)}.iav-card{border:1.5px solid var(--ink);border-radius:var(--r-card);background:var(--paper);padding:10px;text-align:left;cursor:pointer;display:flex;flex-direction:column;gap:8px;min-width:0;transition:box-shadow .12s,border-color .12s,transform .12s;font-family:inherit;color:var(--ink)}.iav-card:hover{box-shadow:var(--shadow-sug);transform:translateY(-1px)}.iav-card:focus-visible{outline:2px solid var(--sug);outline-offset:2px}.iav-card.sel{border-color:var(--sug);box-shadow:var(--shadow-sug)}.iav-card.prop{border-style:dashed;border-color:var(--sug);background:var(--sug-bg)}.iav-card.viol{border-color:var(--warn-line);background:var(--warn-bg)}.iav-card .cap{display:flex;align-items:center;gap:6px;min-width:0}.iav-card .rid{font-family:var(--mono);font-size:9.5px;font-weight:800;color:var(--sub);flex-shrink:0}.iav-card .ttl{font-size:12px;font-weight:600;min-width:0;word-break:keep-all;overflow-wrap:anywhere}.iav-card .iav-chip{margin-left:auto;flex-shrink:0}.iav-card .flag{font-family:var(--mono);font-size:9px;display:flex;align-items:center;gap:4px}.iav-card .flag.warn{color:var(--warn)}.iav-card .flag.prop{color:var(--sug-text)}.iav-chip{font-family:var(--mono);font-size:8px;font-weight:700;color:var(--sub);border:1px solid var(--hair);border-radius:4px;padding:1px 5px;letter-spacing:.03em}.iav-glyph{height:52px;border:1px solid var(--hair);border-radius:6px;background:var(--bg);padding:6px;display:flex;flex-direction:column;gap:4px;overflow:hidden}.iav-card.sel .iav-glyph{border-color:var(--sug-line)}.iav-glyph .g{background:#d7d8d3;border-radius:2px}.iav-glyph.list .g{height:6px}.iav-glyph.detail .g:first-child{height:14px}.iav-glyph.detail .g{height:5px;width:72%}.iav-glyph.form{gap:7px}.iav-glyph.form .f{display:flex;flex-direction:column;gap:3px}.iav-glyph.form .f b{height:3px;width:34%;background:#c4c5c0;border-radius:2px;display:block}.iav-glyph.form .f i{height:8px;background:#fff;border:1px solid #d7d8d3;border-radius:2px;display:block}.iav-glyph.dash{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;gap:4px}.iav-glyph.dash .g{height:auto}.iav-glyph.settings{gap:6px}.iav-glyph.settings .r{display:flex;align-items:center;gap:5px}.iav-glyph.settings .r b{height:5px;flex:1;background:#d7d8d3;border-radius:2px;display:block}.iav-glyph.settings .r i{width:14px;height:8px;border-radius:99px;background:#c9cac5;display:block;flex-shrink:0}.iav-glyph.settings .r.on i{background:var(--sug-line)}.iav-insp{margin-top:16px;padding-top:16px;border-top:1px solid var(--hair);display:flex;flex-wrap:wrap;gap:18px;align-items:flex-start}.iav-insp.empty{color:var(--sub);font-size:12px;text-align:center;padding:22px 16px;display:block}.iav-insp .ihd{display:flex;align-items:center;gap:10px;flex:0 0 auto}.iav-insp .big{width:64px;height:50px;flex-shrink:0}.iav-insp .big .iav-glyph{height:50px;border-color:var(--sug-line);background:var(--sug-bg)}.iav-insp .big .iav-glyph .g{background:#bcd8cf}.iav-insp .ht h4{margin:0;font-size:14px;word-break:keep-all;overflow-wrap:anywhere}.iav-insp .ht .sub{color:var(--sub);font-size:11px;font-family:var(--mono);margin-top:2px}.iav-insp .ibody{flex:1 1 300px;min-width:240px;display:flex;flex-direction:column;gap:10px}.iav-krow{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.iav-k{font-family:var(--mono);font-size:8.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--sub);flex:0 0 100%}.iav-lchip{font-family:var(--mono);font-size:10px;border:1px solid var(--sug-line);background:var(--sug-bg);color:var(--sug-text);border-radius:var(--r-pill);padding:2px 8px;display:inline-flex;align-items:center;gap:5px}.iav-lchip.rm{cursor:pointer}.iav-lchip.rm span{color:var(--sub);font-weight:700}.iav-lchip.rm:hover{border-color:var(--del-line)}.iav-lchip.rm:hover span{color:var(--del)}.iav-none{font-size:11px;color:var(--sub)}.iav-none.warn{color:var(--warn)}.iav-addsel{font-size:11px;color:var(--sub);border:1px dashed var(--hair);border-radius:var(--r-pill);padding:2px 9px;background:var(--paper);font-family:inherit;max-width:100%}.iav-status{font-size:12px;color:var(--sub)}.iav-iacts{display:flex;gap:6px;margin-top:2px}.iav-mtxwrap{overflow-x:auto;border:1px solid var(--hair);border-radius:var(--r-card);background:var(--paper);margin-top:16px}.iav-mtx{border-collapse:collapse;width:100%;font-size:12px;min-width:520px}.iav-mtx th,.iav-mtx td{border-bottom:1px solid var(--hair);border-right:1px solid var(--hair);padding:8px 10px;text-align:center}.iav-mtx th:last-child,.iav-mtx td:last-child{border-right:0}.iav-mtx tbody tr:last-child td,.iav-mtx tbody tr:last-child th{border-bottom:0}.iav-mtx thead th{font-family:var(--mono);font-size:9.5px;font-weight:700;color:var(--sub);letter-spacing:.03em;background:var(--bg);vertical-align:bottom}.iav-mtx thead th.corner,.iav-mtx .rowh{text-align:left}.iav-mtx .rowh{font-weight:600;font-size:12px;white-space:nowrap}.iav-mtx .rowh .rid{font-family:var(--mono);font-size:9.5px;color:var(--sub);margin-right:6px}.iav-mtx .rowh.muted{font-family:var(--mono);font-size:9.5px;font-weight:400;color:var(--sub)}.iav-mtx .colh{display:flex;flex-direction:column;align-items:center;gap:2px;background:none;border:0;cursor:pointer;font-family:inherit;color:inherit}.iav-mtx .colh:hover .ct{color:var(--sug-text)}.iav-mtx .colh .rid{font-family:var(--mono);font-size:9.5px;color:var(--sub)}.iav-mtx .colh .ct{font-size:10px;color:var(--sub);font-weight:600;max-width:72px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.iav-mtx .cell{font-variant-numeric:tabular-nums}.iav-mtx .cell .num{font-family:var(--mono);font-weight:700}.iav-mtx .on-c{color:var(--sug);font-size:15px}.iav-mtx .off-c{color:#d3d4cf}.iav-mtx .gapcol{background:var(--warn-bg)}.iav-mtx .gaptag{font-family:var(--mono);font-size:9px;color:var(--warn);white-space:nowrap}.iav-mtx .footr th,.iav-mtx .footr td{background:var(--bg)}.ia-list{border:1px solid var(--hair);border-radius:var(--r-card);overflow:hidden}.ia-list .trow{cursor:default}.ia-list .trow:last-child{border-bottom:0}.flane{border:1px solid var(--hair);border-radius:var(--r-card);background:var(--paper);padding:16px 18px;margin-bottom:14px}.flane .fh{display:flex;align-items:center;gap:9px;margin-bottom:14px}.flane .fh .rid{font-family:var(--mono);font-size:10px;font-weight:800;color:var(--sub)}.flane .fh b{font-size:13px}.flane .fh .src{font-family:var(--mono);font-size:9px;color:var(--sub);margin-left:auto}.ftrack{display:flex;align-items:center;gap:0;flex-wrap:wrap}.fnode{background:var(--bg);border:1.5px solid var(--ink);border-radius:8px;padding:7px 12px;text-align:center;min-width:96px}.fnode .fid{font-family:var(--mono);font-size:8px;font-weight:800;color:var(--sub);display:block}.fnode b{font-size:11.5px;font-weight:700}.fnode.startn{border-radius:var(--r-pill);background:var(--ink)}.fnode.startn b,.fnode.startn .fid{color:var(--paper)}.fnode.endn{border-radius:var(--r-pill);background:var(--sug);border-color:var(--sug)}.fnode.endn b,.fnode.endn .fid{color:var(--paper)}.fdec{width:86px;height:52px;display:grid;place-items:center;background:var(--warn-bg);border:1.5px solid var(--warn-line);border-radius:10px;clip-path:polygon(50% 0,100% 50%,50% 100%,0 50%);font-size:10.5px;font-weight:700;color:var(--warn);text-align:center}.fedge{width:34px;height:1.5px;background:var(--ink);position:relative;flex:none}.fedge:after{content:"";position:absolute;right:-1px;top:-3.2px;border-left:6px solid var(--ink);border-top:4px solid transparent;border-bottom:4px solid transparent}.fedge .elb{position:absolute;top:-16px;left:6px;font-family:var(--mono);font-size:8.5px;color:var(--sub);white-space:nowrap}.fbranch{display:flex;align-items:center;margin:8px 0 0 118px;gap:6px}.fbranch .bend{width:26px;height:26px;border-left:1.5px solid var(--ink);border-bottom:1.5px solid var(--ink);border-radius:0 0 0 9px;margin-top:-18px}.floop{font-family:var(--mono);font-size:8.5px;color:var(--sub)}.wfwrap{background:var(--bg);overflow-y:auto;padding:26px 42px 80px}.pgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:16px}.proto{background:var(--paper);border:1px solid var(--hair);border-radius:var(--r-card);overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .2s,border-color .2s}.proto.wf-flash{border-color:var(--sug);box-shadow:var(--shadow-sug)}.proto .phead{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:9.5px;color:var(--sub);padding:7px 12px;border-bottom:1px solid var(--hair);background:var(--bg)}.proto .phead b{color:var(--ink)}.papp{display:flex;flex-direction:column;min-height:240px}.pnav{display:flex;align-items:center;gap:8px;padding:9px 13px;border-bottom:1px solid var(--hair);font-size:12px;font-weight:800}.pnav .back{color:var(--sub);font-weight:400}.pnav .navr{margin-left:auto;font-size:10px;color:var(--sub);font-weight:400}.pbody{padding:11px 13px;display:flex;flex-direction:column;gap:8px;flex:1}.pinput{border:1px solid var(--hair);border-radius:7px;padding:7px 10px;font-size:11px;color:var(--sub);background:var(--bg)}.plist{border:1px solid var(--hair);border-radius:8px;overflow:hidden}.plirow{display:flex;align-items:center;gap:8px;padding:8px 10px;border-bottom:1px solid var(--hair);font-size:11px}.plirow:last-child{border-bottom:0}.plirow b{font-size:11.5px}.plirow .m{color:var(--sub);font-size:10px}.plirow .sp{flex:1}.pbtn{background:var(--ink);color:var(--paper);border-radius:7px;padding:8px 12px;font-size:11px;font-weight:700;text-align:center;position:relative}.pbtn.sm{padding:4px 9px;font-size:9.5px;border-radius:5px}.pbtn.ghost{background:var(--paper);color:var(--ink);border:1px solid var(--hair)}.hot{position:absolute;right:-6px;top:-9px;font-family:var(--mono);font-size:7.5px;font-weight:700;color:var(--sug-ink);background:var(--sug-bg);border:1px solid var(--sug-line);border-radius:var(--r-pill);padding:1px 6px}.slotwrap{display:flex;gap:5px;flex-wrap:wrap}.slot{font-family:var(--mono);font-size:9.5px;border:1px solid var(--hair);border-radius:5px;padding:4px 7px}.slot.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}.slot.dis{color:var(--hair);text-decoration:line-through}.ffield .lb2{font-family:var(--mono);font-size:8px;letter-spacing:.1em;color:var(--sub);text-transform:uppercase;display:block;margin-bottom:3px}.statrow{display:flex;gap:8px}.stat{flex:1;border:1px solid var(--hair);border-radius:8px;padding:8px 10px}.stat .sv{font-size:16px;font-weight:800}.stat .sl{font-size:9px;color:var(--sub)}.chart{display:flex;align-items:flex-end;gap:5px;height:52px;border:1px solid var(--hair);border-radius:8px;padding:8px}.chart i{flex:1;background:var(--ink);opacity:.85;border-radius:2px 2px 0 0}.tgl{display:flex;align-items:center;gap:8px;padding:8px 10px;border:1px solid var(--hair);border-radius:8px;font-size:11px}.tgl .sp{flex:1}.sw{width:28px;height:16px;border-radius:var(--r-pill);background:var(--ink);position:relative;flex:none}.sw:after{content:"";position:absolute;right:2px;top:2px;width:12px;height:12px;border-radius:var(--r-pill);background:var(--paper)}.sw.off{background:var(--hair)}.sw.off:after{right:auto;left:2px}.pstate{font-family:var(--mono);font-size:8.5px;color:var(--sub);padding:5px 13px;border-top:1px dashed var(--hair)}.pstate.warn{color:var(--warn)}.wf-theme{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:14px;padding:9px 12px;border:1px solid var(--hair);border-radius:var(--r-card);background:var(--paper)}.wf-theme .tk{font-family:var(--mono);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--sub)}.wf-theme .tpresets{display:flex;gap:4px}.wf-theme .tchip{font-size:11.5px;padding:4px 11px;border:1px solid var(--hair);border-radius:var(--r-pill);background:var(--paper);color:var(--sub);cursor:pointer}.wf-theme .tchip:hover{color:var(--ink)}.wf-theme .tchip.on{background:var(--ink);color:var(--paper);border-color:var(--ink)}.wf-theme .tacc input{width:26px;height:26px;border:1px solid var(--hair);border-radius:7px;padding:0;background:none;cursor:pointer}.wf-theme .tseg{display:inline-flex;border:1px solid var(--hair);border-radius:7px;overflow:hidden}.wf-theme .tseg button{font-size:11px;padding:4px 10px;background:var(--paper);border:0;border-right:1px solid var(--hair);color:var(--sub);cursor:pointer}.wf-theme .tseg button:last-child{border-right:0}.wf-theme .tseg button.on{background:var(--hover);color:var(--ink);font-weight:600}.wf-toggle{display:inline-flex;border:1px solid var(--hair);border-radius:6px;overflow:hidden}.wf-toggle button{font-family:var(--sans);font-size:10px;padding:3px 9px;background:var(--paper);border:0;border-right:1px solid var(--hair);color:var(--sub);cursor:pointer}.wf-toggle button:last-child{border-right:0}.wf-toggle button.on{background:var(--ink);color:var(--paper);font-weight:600}.papp.themed{background:var(--wf-surface, var(--paper));font-family:var(--wf-font, var(--sans));color:var(--wf-ink, var(--ink))}.papp.themed .pnav{border-bottom-color:var(--wf-line, var(--hair));color:var(--wf-ink, var(--ink))}.papp.themed .pbody{gap:var(--wf-gap, 8px)}.papp.themed .pinput{border-color:var(--wf-line, var(--hair));border-radius:var(--wf-radius, 7px);background:color-mix(in srgb,var(--wf-bg, var(--bg)) 70%,var(--wf-surface, var(--paper)));color:var(--wf-sub, var(--sub))}.papp.themed .plist,.papp.themed .stat,.papp.themed .chart,.papp.themed .tgl{border-color:var(--wf-line, var(--hair));border-radius:var(--wf-radius, 8px)}.papp.themed .plirow{border-bottom-color:var(--wf-line, var(--hair))}.papp.themed .plirow b,.papp.themed .pnav{color:var(--wf-ink, var(--ink))}.papp.themed .plirow .m,.papp.themed .stat .sl,.papp.themed .pnav .navr,.papp.themed .pnav .back{color:var(--wf-sub, var(--sub))}.papp.themed .pbtn{background:var(--wf-accent, var(--ink));border-radius:var(--wf-radius, 7px);color:#fff}.papp.themed .slot{border-color:var(--wf-line, var(--hair));border-radius:calc(var(--wf-radius, 5px) * .6)}.papp.themed .slot.on{background:var(--wf-accent, var(--ink));border-color:var(--wf-accent, var(--ink));color:#fff}.papp.themed .chart i{background:var(--wf-accent, var(--ink))}.papp.themed .stat .sv{color:var(--wf-accent, var(--ink))}.papp.themed .sw{background:var(--wf-accent, var(--ink))}.papp.themed .sw.off{background:var(--wf-line, var(--hair))}.mockwrap{display:flex;flex-direction:column;background:var(--wf-bg, var(--bg))}.mockframe{width:100%;height:520px;border:0;display:block;background:var(--wf-bg, var(--bg))}.mockacts{display:flex;align-items:center;gap:6px;padding:8px 12px;border-top:1px solid var(--hair);background:var(--paper)}.mockacts .btn.sm{padding:4px 10px;font-size:11px}.mstat{font-family:var(--mono);font-size:9px;color:var(--sub);border:1px solid var(--hair);border-radius:var(--r-pill);padding:2px 8px}.mstat.ok{color:var(--sug-ink);background:var(--sug-bg);border-color:var(--sug-line)}.mockgen{display:flex;flex-direction:column;align-items:center;gap:10px;text-align:center;padding:30px 18px;min-height:240px;justify-content:center}.mockgen p{font-size:12.5px;color:var(--sub);margin:0}.mockgen p b{color:var(--ink)}.mockgen .mnote{font-size:10px;color:var(--sub);max-width:90%}.mockgen .mockerr{font-size:13px;font-weight:700;color:var(--warn);margin:0}.ds-stage{display:grid;grid-template-columns:1fr 260px;gap:18px;margin-top:18px;align-items:start}@media(max-width:900px){.ds-stage{grid-template-columns:1fr}}.ds-tile{border:1px solid var(--hair);border-radius:var(--r-card);overflow:hidden;background:var(--paper)}.ds-frame{width:100%;height:560px;border:0;display:block;background:var(--paper)}.ds-side{display:flex;flex-direction:column;gap:14px;align-self:start;position:sticky;top:12px}.ds-side .k{font-family:var(--mono);font-size:8.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--sub);display:block;margin-bottom:5px}.ds-rationale p{font-size:12.5px;line-height:1.65;color:var(--ink);margin:0}.ds-rationale p b{color:var(--sug-ink)}.ds-tokens ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:5px}.ds-tokens li{font-size:12px;color:var(--sub)}.ds-tokens li code,.ds-tokens li b{color:var(--ink);font-weight:700}.ds-tokens li code{font-family:var(--mono);font-size:11px}.ds-acts{display:flex;flex-direction:column;gap:7px}.ds-acts .btn{text-align:center}.genwarn{font-size:12.5px;color:var(--warn);background:var(--warn-bg);border:1px solid var(--warn-line);border-radius:var(--r-card);padding:8px 12px;margin-top:12px}.check{display:flex;align-items:center;gap:9px;padding:7px 10px;font-size:12.5px;border-bottom:1px solid var(--hair)}.check .cid{font-family:var(--mono);font-size:9px;color:var(--sub);width:130px;flex:none}.check .rt{flex:1}.check .cok{color:var(--sug);font-weight:700;font-size:11px}.check .cwarn{color:var(--warn);font-weight:700;font-size:11px}.hosec{margin-top:14px;border:1px solid var(--hair);border-radius:var(--r-card);overflow:hidden}.hosec.proposed{border-color:var(--sug-line);background:var(--sug-bg)}.hosec .hohead{font-family:var(--mono);font-size:9.5px;color:var(--sub);padding:7px 12px;background:var(--bg);border-bottom:1px solid var(--hair)}.hosec.proposed .hohead{background:var(--sug-bg);color:var(--sug-ink)}.hosec .hobody{padding:12px 14px;font-size:12.5px;color:var(--ink);line-height:1.7;white-space:pre-wrap}.hoact{display:flex;gap:8px;margin-top:16px;align-items:center;flex-wrap:wrap}.hoact .hint{font-family:var(--mono);font-size:9.5px;color:var(--sub);margin-left:auto}.scard{background:var(--paper);border:1px solid var(--sug-line);border-radius:var(--r-card);padding:13px 14px;margin-bottom:10px;box-shadow:var(--shadow-sug)}.scard.compile{border-color:var(--warn-line);box-shadow:0 2px 10px #8a6a1f14}.scard .sh{display:flex;flex-wrap:wrap;align-items:center;gap:7px;margin-bottom:6px}.scard .sh>:first-child{flex-shrink:0}.scard .sh b{font-size:12px;flex:1 1 auto;min-width:0;word-break:keep-all;overflow-wrap:anywhere}.scard .ssrc,.scard .lintcode{flex:0 0 100%;min-width:0;word-break:keep-all;overflow-wrap:anywhere;font-family:var(--mono);font-size:8.5px}.scard .ssrc{color:var(--sub)}.scard .lintcode{color:var(--warn)}.scard p{font-size:11.5px;color:var(--sub);line-height:1.6;margin:0 0 10px}.scard-acts{display:flex;gap:5px}.scard-acts .a{font-size:10.5px;font-weight:700;border-radius:6px;padding:4px 11px;background:var(--sug);color:var(--paper);border:none;cursor:pointer}.scard-acts .r{font-size:10.5px;font-weight:600;border-radius:6px;padding:4px 11px;background:var(--paper);border:1px solid var(--hair);color:var(--ink);cursor:pointer}.ch-eye,.ch-tag,.ch-pen,.ch-td,.ch-sp,.ch-rock,.ch-bob,.ch-shiver{transform-box:fill-box;transform-origin:center}.ch{animation:ch-flutter .55s cubic-bezier(.2,.9,.3,1.2) both}@keyframes ch-flutter{0%{transform:translateY(10px) rotate(-4deg);opacity:0}60%{transform:translateY(-2px) rotate(1.5deg);opacity:1}to{transform:translateY(0) rotate(0)}}.ch-eye{animation:ch-blink 4.6s infinite}@keyframes ch-blink{0%,94%,to{transform:scaleY(1)}96.5%{transform:scaleY(.12)}}.ch-rock{animation:ch-rock 3.4s ease-in-out infinite}@keyframes ch-rock{0%,to{transform:rotate(0)}30%{transform:rotate(2.6deg)}60%{transform:rotate(-1.4deg)}}.ch-tag{animation:ch-tagbob 2.1s ease-in-out infinite}@keyframes ch-tagbob{0%,to{transform:rotate(0) translateY(0)}45%{transform:rotate(-3.5deg) translateY(-1.6px)}}.ch-draw{stroke-dasharray:1;animation:ch-drawline 2.6s ease-in-out infinite}@keyframes ch-drawline{0%{stroke-dashoffset:1}45%,72%{stroke-dashoffset:0}to{stroke-dashoffset:1}}.ch-pen{animation:ch-penmove 2.6s ease-in-out infinite}@keyframes ch-penmove{0%{transform:translate(-15px)}45%,72%{transform:translate(0)}to{transform:translate(-15px)}}.ch-td{opacity:.2;animation:ch-tdp 1.8s infinite}.ch-td2{animation-delay:.3s}.ch-td3{animation-delay:.6s}@keyframes ch-tdp{0%,to{opacity:.2}35%{opacity:.9}}.ch-bob{animation:ch-bob 3.8s ease-in-out infinite}@keyframes ch-bob{0%,to{transform:translateY(0)}50%{transform:translateY(2.2px)}}.ch-sp{animation:ch-tw 1.6s ease-in-out infinite}.ch-sp2{animation-delay:.8s}@keyframes ch-tw{0%,to{opacity:.25;transform:scale(.75)}50%{opacity:1;transform:scale(1.1)}}.ch-shiver{animation:ch-shiver 3.2s infinite}@keyframes ch-shiver{0%,88%,to{transform:rotate(0)}90%{transform:rotate(1.8deg)}93%{transform:rotate(-1.8deg)}96%{transform:rotate(1.2deg)}}.ch-static,.ch-static *{animation:none!important}@media(prefers-reduced-motion:reduce){.ch,.ch *{animation:none!important}}.ch-strip{display:flex;align-items:center;gap:10px;background:var(--bg);border:1px solid var(--hair);border-radius:var(--r-card);padding:8px 14px;font-size:12.5px;color:var(--sub);margin-bottom:14px}.panel-empty .ch{display:block;margin:0 auto 10px}.app-name .logo-ch{vertical-align:-5px;margin-right:6px}.start-ch{margin-bottom:6px}.hub-head{display:flex;align-items:center;gap:12px}.hub-head .hub-h1{margin:0}.hub-head a.btn{margin-left:auto;text-decoration:none}.start-import{margin-top:6px}.start-import .btn{cursor:pointer}.ds-explore-cta{margin-top:14px}.ds-cands{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:18px}@media(max-width:900px){.ds-cands{grid-template-columns:1fr}}.ds-cand{border:1px solid var(--hair);border-radius:var(--r-card);background:var(--paper);overflow:hidden;display:flex;flex-direction:column}.ds-cand-tile{height:300px;overflow:hidden;border-bottom:1px solid var(--hair)}.ds-cand-tile iframe{width:100%;height:600px;border:0;transform:scale(.5);transform-origin:top left;width:200%}.ds-cand-r{font-size:11.5px;color:var(--sub);line-height:1.55;padding:12px 14px;margin:0;flex:1}.ds-cand .btn{margin:0 14px 14px;text-align:center}.ds-tokens .stdot{display:inline-block;width:11px;height:11px;border-radius:3px;margin-right:3px;vertical-align:middle;border:1px solid var(--hair)}.cli-help{margin-top:10px;border:1px solid var(--warn-line);background:var(--warn-bg);border-radius:var(--r-card);padding:11px 13px}.cli-help b{color:var(--warn);font-size:12.5px}.cli-help p{margin:5px 0 9px;font-size:12.5px;color:var(--ink);line-height:1.55}.cli-help-acts{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.cli-help details{font-size:11px;color:var(--sub)}.cli-help details code{font-family:var(--mono);font-size:10.5px;display:block;margin-top:4px;white-space:pre-wrap;word-break:break-all}
@@ -0,0 +1,14 @@
1
+ <!doctype html>
2
+ <html lang="ko">
3
+ <head>
4
+ <meta charset="UTF-8" />
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0" />
6
+ <link rel="icon" type="image/png" href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAIAAAAlC+aJAAAAAXNSR0IArs4c6QAAAERlWElmTU0AKgAAAAgAAYdpAAQAAAABAAAAGgAAAAAAA6ABAAMAAAABAAEAAKACAAQAAAABAAAAQKADAAQAAAABAAAAQAAAAABGUUKwAAAG+UlEQVRoBe2aW2wUVRjH9zYzeyst8lAFSmoJJkCKPJDyJoUa9UljYkFMaCsXY9CYmEjFFyEGRRMT05gQL+iL+mAkPhtiwIQXBQI0MQF50Aol4kPtZS8zs5dZf7MD47pz9jKd6RaSzm4mM9+cc77//5zvfN93zkywVCoF7ucjdD+DN7EvEVjsEVwagcUegYgrAIVCoVjMG0WjFPDfdwUDwVAoFI5IkYgLVE0VNQxDVTO6ppZKRjAYCgbRFXTFvKnCeHQUGAY0lGgsFktw0bBisGEc0NRsOj0XCocVRQmHIyb6hTzAUywWdF03isVkclk0Fq+vrQGBVGpW17KxeJJhbUi1viZXT+kmzJWuU6Lxtrb2OnXrEUiDXlcTyWV16i/0o0x6TlFiydocahqZpmX5Ly56egcAZSRqrZ4SE2AmpVNzsXiiVrVWyoGBLQBJqFRMAJ/DrI1EJGGdFguBARggCfWKCeAx8TmtnLVCcJYQGIABkrCMgECxUDBKBgMgrLAoQsAACWBO7QIChWI+ZEUrZ/FFkuBVgQQwp35BN5MpzDtaUdGqa5/Lca8sDQYMo4R3n59l0gTAmiJg5jnuwy0KsFRVVWdnZ/PmUeCXz+X1nPnTCK263pZMbtiwfvny5ZqmOaE0kASDwgRMMAINGhI9DofDuVz+85MnTp/+EdChMFkMB2ISpxBRXDIzNCmTTs/OzQ4P79n9/K5cLidqybXMBwL0va7nXnn1NfAePfJ2d3e3LMvg5ZYDHpWgrlwZPzT6ZjqdfunAAV13Pw6VbZWvfSCA5YyNfcz5s08/cbRfLdi8+dEvvzi5Z2jo8YGBNWu6isVidQmX9//rHpd1zeJ0/8zMzJmzP711+HCT1bu6Vvf19Z05c1aS5Car1CnmlQA2cvv239gMsOqoqXr0cHf3rVu3oF8ln8etVwLmrhLLm0C9rNYJKxqNMm0CfizrvBIAnCzJZFosNp1Aa0kUCOT0Wk9dyb0SICpJskScJ0LZiicmJv68ccO+JQJ8d+rUb9ev25KoohAc7pURwMWDrFC4E+eZ008/8+zg4M5M5k7+eP78hZ2Du44de/c/AtFoLn+vxIGSlXUTey18rMa39/crdLKiWJJNm3qPHD3Sv22bTYBHBL755RR2I9aF1zjAJCZk4UxtAoAbG/uI1skXCGeWGgJcpeJoVCHPqLVGqSzZ8NorARSAknBLj1Yp++rrb9KpVFZVH1m3bnDwucqnkMyTtNdYZFWWbHjtAwErX3DmNiPDQ5cuXY7HY729vVU4ZEVh0t8TBLBjK2vLOdyiJElbt/ZVQbduFVkmiYAAdT3OBK9uFECAwIrwlUKsQiGRG/TeEyFTu1CBKyEE8KTlyNpsPYtAZehotqajnD8EyPe1cm5slEpj537oP/HOt+M/W7roaRyUqmqpVMqODFgXlsNGsfuFUzUDHyYxPlSWJF0zTejmzNTR06dm1Oxf6bnHVq398PgH/0xPm7kSka5Y2Lhx4+ihNygPAVNihg4eedro9oEAUDAJawQeiCc2PbTm3O/XtqzuXtHRMTp6yIILYnYWZFnilvJW7PPFhHwhEJQVWSuPQJsS+3749V9vT27p6pEjUmdnJ3CdB7GPXYZcPm/xcRZoXuILgQBuUb+7Tl+RaNu2dn19BHdjnw/pkA+TGDsmMFkjUB+3/ZSOt7YYvE9iXwiUVq1cOTHxh42v4cXNyUki94OdnUSzhoXrF/CBALs/AwM7fjl/YXJysr4y++nx997fsb2/o6PDYximQR8IEFB7enpe2L1r77794+PjNkrrwooDZKZspUxNTV24eHHkxX3sdx08+LIz+6iq28ytP5OYHZ79+/cmkgn2fNrb25OJZHljjmUmGRvvvEh7zMyHE8u3p558YmRkCMfqSyohWIxns2kAxeMJt+PLUn16evrq1WtzqZSiMLHNEz8WzcBlc45wAb3yil531TiTPpvNKLwwiyerhkVAQM1meKsTTyRd6bDaRVPZRdJsoFzdPFnt2GfrogpH/VuTQCYdjcadL40EJuQlxQWcvTSrj8ntU1pmy9VZSyAizrPLMI9+crbulwQwQIqEBa+8BAR4N0ac522zX+q9twMYIAHM2ZSAAIV4088CBctzVmi9BBiAAZJQtZgA3ymwXrK3eoQ1WyYEBmCAJNQoJsA8TrYtwx0J67RYCAzAAEmoVyylKD6LP2/6ywuORbElc60DAAuJED1CQRyoLHr3Y48ErqmVfgm7x3Loe08fe1hMCGp8doAPJhCyqlromU03lT+30cg7sBy6v7JDndcNRsCqQBbTug+eSgYe088PnipJs4o1PzkjQTNfbPh8sPZnprr95KypEfAZqa/N1fRCvmpZwMaWCCxg5zbV9NIINNVNC1joX0vHMB2HvZHQAAAAAElFTkSuQmCC" />
7
+ <title>Drafting — AI 기획 워크스페이스</title>
8
+ <script type="module" crossorigin src="/assets/index-CS06cWP3.js"></script>
9
+ <link rel="stylesheet" crossorigin href="/assets/index-DWoYeaZU.css">
10
+ </head>
11
+ <body>
12
+ <div id="root"></div>
13
+ </body>
14
+ </html>