:root{--bg:#f6f6f4;--panel:#fff;--ink:#1f1d1b;--muted:#86807a;--line:#e4e1dc;--accent:#2f6f4e;--shadow:0 1px 2px #0000000f,0 2px 8px #0000000d;--blue:#3b6ea5;--red:#b3462f;--brown:#8a6a3a;--gray:#7c7c7c;--yellow:#b08900;--purple:#7a52b3;--green:#3e7d4f;--orange:#c06a2b;--pink:#b14a86;--default:#5a5a5a}*{box-sizing:border-box}html,body{height:100%;margin:0}body{color:var(--ink);background:var(--bg);flex-direction:column;font:14px/1.45 -apple-system,BlinkMacSystemFont,Segoe UI,Inter,Roboto,sans-serif;display:flex;overflow:hidden}.btn{font:inherit;border:1px solid var(--line);color:var(--ink);cursor:pointer;background:#fff;border-radius:7px;padding:7px 13px;font-weight:600}.btn.primary{background:var(--accent);color:#fff;border-color:var(--accent)}.btn:active{transform:translateY(1px)}main{flex:1;min-height:0;display:flex}#boardwrap{flex-direction:column;flex:1;min-width:0;display:flex;position:relative;overflow:hidden}.seg{border:1px solid var(--line);border-radius:7px;display:inline-flex;overflow:hidden}.seg button{font:inherit;color:var(--ink);cursor:pointer;border:0;border-left:1px solid var(--line);background:#fff;padding:5px 10px;font-size:12px;font-weight:600}.seg button:first-child{border-left:0}.seg button.on{background:var(--accent);color:#fff}.lbl{color:var(--muted);font-size:11px;font-weight:600}.float-sync{z-index:4;align-items:center;gap:8px;display:flex;position:absolute;top:12px;left:12px}.float-sync .btn{padding:5px 11px;font-size:12px}.float-arrange{z-index:4;align-items:center;display:flex;position:absolute;top:12px;left:50%;transform:translate(-50%)}.float-source{z-index:4;height:29px;color:var(--muted);align-items:center;font-size:11px;text-decoration:none;display:flex;position:absolute;top:12px;right:12px}.float-source:hover{color:var(--ink);text-decoration:underline}.zoom-corner{z-index:3;align-items:center;gap:8px;display:flex;position:absolute;bottom:12px;left:50%;transform:translate(-50%)}.zhint{color:var(--muted);white-space:nowrap;font-size:11px}#board{touch-action:none;cursor:default;background:#f3f2ef;flex:1;position:relative;overflow:clip}#canvas{transform-origin:0 0;background:radial-gradient(circle at 1px 1px,#e2e0db 1px,#0000 0) 0 0/24px 24px;width:6000px;height:4000px;position:absolute;top:0;left:0}#canvas.arranging .card{transition:left .45s cubic-bezier(.2,.8,.2,1),top .45s cubic-bezier(.2,.8,.2,1)}#canvas.zoom-anim{transition:transform .4s cubic-bezier(.2,.8,.2,1)}.grouplabel{letter-spacing:.4px;text-transform:uppercase;color:var(--muted);pointer-events:none;font-size:12px;font-weight:700;position:absolute}.card{background:var(--panel);border:1px solid var(--line);width:236px;box-shadow:var(--shadow);cursor:grab;touch-action:none;border-left-width:4px;border-radius:9px;padding:10px 11px;position:absolute}.card.dragging{opacity:.35}.card.selected{outline:2px solid var(--accent);outline-offset:2px}.marquee{z-index:90;pointer-events:none;border:1px solid var(--accent);background:#2f6f4e1a;position:fixed}.card .mt{text-transform:uppercase;letter-spacing:.5px;font-size:10px;font-weight:700}.card .summary{margin:3px 0 6px;font-size:13.5px;font-weight:600}.card .meta{color:var(--muted);align-items:flex-start;gap:8px;font-size:11px;display:flex}.card .votes{font-variant-numeric:tabular-nums}.card .who{white-space:normal;min-width:0;color:var(--muted)}.avatars{flex:none;align-items:center;display:inline-flex}.avatars .avatar{object-fit:cover;border:1.5px solid var(--panel);background:#eceae6;border-radius:50%;width:16px;height:16px;display:inline-block}.avatars .avatar+.avatar{margin-left:-6px}.avatars .avatar.fallback{background:var(--accent);color:#fff;text-align:center;letter-spacing:0;font-size:8px;font-style:normal;font-weight:700;line-height:13px}.avatars .avatar.overflow{background:var(--muted)}.card .draft{border-top:1px dashed var(--line);color:#4a4640;max-height:210px;margin-top:7px;padding-top:7px;font-size:12px;display:none;overflow:auto}.card.open .draft{display:block}.card .srcline{margin-top:7px}.card .srcline a{color:var(--muted);font-size:11px;text-decoration:none}.card .srcline a:hover{text-decoration:underline}.card .foot{letter-spacing:1px;justify-content:space-between;align-items:flex-end;gap:8px;min-height:18px;margin-top:8px;font-size:12px;line-height:1;display:flex}.card .added{color:var(--muted);letter-spacing:0;font-variant-numeric:tabular-nums;font-size:11px}.card .info{border:1px solid var(--line);width:18px;height:18px;color:var(--muted);text-align:center;cursor:pointer;-webkit-user-select:none;user-select:none;letter-spacing:0;border-radius:50%;flex:none;margin-left:auto;font:italic 700 11px/16px Georgia,Times New Roman,serif}.card .info:hover{border-color:var(--muted);color:var(--ink)}.card.open .info{background:var(--accent);border-color:var(--accent);color:#fff}.zoombar{border:1px solid var(--line);box-shadow:var(--shadow);background:#fff;border-radius:8px;align-items:center;gap:6px;padding:4px 6px;display:flex}.zoombar button{font:inherit;color:var(--ink);cursor:pointer;background:0 0;border:0;width:24px;font-weight:700}.zoombar .z{color:var(--muted);text-align:center;font-variant-numeric:tabular-nums;min-width:38px;font-size:11px}#syncStatus{color:var(--muted);font-size:11px}#rail{border-left:1px solid var(--line);background:var(--panel);flex-direction:column;flex:0 0 380px;width:380px;display:flex;position:relative}.resizer{cursor:col-resize;z-index:6;width:8px;position:absolute;top:0;bottom:0;left:-3px}.resizer:hover{background:linear-gradient(90deg,#0000,#2f6f4e2e)}.rail-h{align-items:center;gap:8px;padding:15px 13px 5px;font-weight:700;display:flex}.rail-h .count{color:var(--muted);margin-left:auto;font-size:12px;font-weight:600}.raildate{font:inherit;border:1px solid var(--line);color:var(--ink);background:#fafafa;border-radius:6px;margin-left:auto;padding:3px 7px;font-size:12px}.iconbtn{font:inherit;color:var(--ink);cursor:pointer;background:0 0;border:0;border-radius:5px;justify-content:center;align-items:center;padding:2px 5px;font-size:14px;font-weight:700;line-height:1;display:inline-flex}.iconbtn:hover{color:var(--ink);background:#f0efec}#rail.collapsed{cursor:pointer}#rail.collapsed>.rail-h,#rail.collapsed>#outline,#rail.collapsed>.rail-foot,#rail.collapsed>.resizer{display:none}.rail-tab{-webkit-user-select:none;user-select:none;flex-direction:column;align-items:center;gap:12px;width:100%;height:100%;padding-top:14px;display:none}#rail.collapsed>.rail-tab{display:flex}.rail-tab:hover{background:#f3f2ef}.rail-tab .rail-icon{color:var(--ink);display:flex}.rail-tab .vlabel{writing-mode:vertical-rl;letter-spacing:.5px;color:var(--ink);font-size:13px;font-weight:700}.rail-tab .tabdate{letter-spacing:0;color:var(--muted);font-size:12px;font-weight:600}.rail-tab .tabcount{font-variant-numeric:tabular-nums;color:#fff;background:var(--accent);text-align:center;border-radius:10px;min-width:16px;padding:1px 5px;font-size:11px;font-weight:700;display:none}#outline{flex:1;padding:8px;overflow:auto}.dropzone{border:1.5px dashed var(--line);border-radius:9px;min-height:60px;padding:6px}.dropzone.empty{color:var(--muted);text-align:center;justify-content:center;align-items:center;font-size:12px;display:flex}.dropzone.hot{border-color:var(--accent);background:#eef6f1}.oitem{border:1px solid var(--line);cursor:grab;touch-action:none;background:#fbfbfa;border-left-width:4px;border-radius:8px;align-items:flex-start;gap:9px;margin:6px 0;padding:9px 10px;display:flex}.oitem .num{color:var(--muted);font-variant-numeric:tabular-nums;min-width:16px;font-weight:700}.oitem .body{flex:1;min-width:0}.oitem .s{font-size:13px;font-weight:600}.oitem .mt{text-transform:uppercase;letter-spacing:.4px;font-size:10px;font-weight:700}.oitem .oexc{color:#4a4640;white-space:pre-wrap;margin-top:4px;font-size:12px}.oitem .oexc .more{color:var(--accent);cursor:pointer;font-weight:600}.oitem .owho{color:var(--muted);align-items:center;gap:5px;min-width:0;margin-top:4px;font-size:11px;display:flex}.oitem .owho a{text-overflow:ellipsis;white-space:nowrap;color:var(--muted);text-decoration:none;overflow:hidden}.oitem .owho a:hover{text-decoration:underline}.oitem .ometa{color:var(--muted);margin-top:5px;font-size:11px}.oitem .x{color:var(--muted);cursor:pointer;padding:0 2px;font-size:13px}.oplace{border:1.5px dashed var(--accent);background:#eef6f1;border-radius:8px;margin:6px 0}.rail-foot{border-top:1px solid var(--line);padding:10px 13px}.rail-actions{align-items:center;gap:8px;display:flex}.rail-actions #addStandard{flex:none;align-items:center;gap:6px;padding-inline:10px;font-size:12px;display:inline-flex}.rail-actions #generate{flex:1}.add-fan{z-index:130;pointer-events:none;position:fixed;inset:0}.fan-option{right:var(--fan-origin-right);bottom:var(--fan-origin-bottom);white-space:nowrap;border:1px solid var(--line);width:max-content;font:inherit;text-align:left;cursor:pointer;pointer-events:none;opacity:0;transform-origin:50%;transition:right .28s cubic-bezier(.22,.78,.2,1),bottom .28s cubic-bezier(.22,.78,.2,1),transform .28s cubic-bezier(.22,.78,.2,1),opacity .16s;transition-delay:calc(var(--fan-order) * 34ms);background:#fff;border-radius:9px;align-items:center;gap:8px;padding:8px 11px;font-size:12px;font-weight:600;display:flex;position:absolute;transform:translate(50%,50%)rotate(0)scale(.72);box-shadow:0 8px 24px #00000029}.add-fan.open{pointer-events:none}.add-fan.open .fan-option{right:var(--fan-right);bottom:var(--fan-bottom);pointer-events:auto;opacity:1;transform:translate(50%,50%) rotate(var(--fan-rotation)) scale(1)}.add-fan.closing .fan-option{transition-delay:calc(var(--fan-reverse-order) * 34ms)}.fan-option:hover,.fan-option:focus-visible{background:#f3f2ef;border-color:#cbc7c0;outline:none}.fan-dragging{z-index:100;opacity:.9;cursor:grabbing;position:fixed;transform:none}.fan-dot{border-radius:3px;flex:none;width:9px;height:9px}.fan-guide{pointer-events:none;opacity:0;width:100%;height:100%;transition:opacity .18s;position:absolute;inset:0;overflow:visible}.fan-guide-path{fill:none;stroke:#8f8980;stroke-width:1.5px;stroke-dasharray:4 4}.fan-guide-handle{fill:#fff;stroke:var(--accent);stroke-width:2px;pointer-events:auto;cursor:grab}.fan-guide-handle:active{cursor:grabbing;fill:#eef6f1}.fan-jig{width:142px;box-shadow:var(--shadow);color:var(--muted);pointer-events:auto;opacity:0;background:#fffffff5;border:1px dashed #b9b4ac;border-radius:8px;padding:9px 10px;font-size:10px;transition:opacity .18s,transform .22s;position:absolute;transform:translateY(5px)}.add-fan.open .fan-guide,.add-fan.open .fan-jig{opacity:1}.add-fan.open .fan-jig{transform:translateY(0)}.fan-jig-title{color:var(--ink);cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none;margin-bottom:7px;font-weight:700}.fan-jig.dragging .fan-jig-title{cursor:grabbing}.fan-jig label{margin-top:6px;display:block}.fan-jig output{float:right;font-variant-numeric:tabular-nums;color:var(--ink)}.fan-jig input{width:100%;accent-color:var(--accent);margin:3px 0 0;display:block}.modal-bg{z-index:50;background:#00000059;justify-content:center;align-items:center;display:none;position:fixed;inset:0}.modal-bg.show{display:flex}.modal{background:#fff;border-radius:12px;width:min(680px,92vw);max-height:86vh;padding:20px 22px;overflow:auto;box-shadow:0 20px 60px #0000004d}.modal h2{margin:0 0 4px;font-size:17px}.modal .sub{color:var(--muted);margin:0 0 14px;font-size:12.5px}.doc h3{margin:16px 0 2px;font-size:14px}.doc .docmt{text-transform:uppercase;letter-spacing:.5px;color:var(--muted);font-size:10px;font-weight:700}.doc p{color:#3a3631;white-space:pre-wrap;margin:4px 0 0;font-size:12.5px}.modal .actions{background:#fff;gap:10px;margin-top:18px;padding-top:12px;display:flex;position:sticky;bottom:-22px}.doc-preview{flex-direction:column;max-height:calc(86vh - 40px);display:flex}.doc-preview-body{min-height:0;padding-right:4px;overflow:auto}.doc-preview-actions{border-top:1px solid var(--line);flex:none;align-items:center;margin:0 -22px -20px!important;padding:14px 22px 16px!important;position:static!important}.drafting-toggle{color:var(--muted);cursor:pointer;white-space:nowrap;align-items:center;gap:7px;margin-left:auto;font-size:12px;display:flex}.drafting-toggle input{accent-color:var(--accent);margin:0}.commit-progress{gap:7px;margin:14px 0 4px;display:grid}.commit-stage{color:var(--muted);align-items:center;gap:9px;font-size:12.5px;display:flex}.commit-stage span{border:1px solid var(--line);background:#fafafa;border-radius:50%;justify-content:center;align-items:center;width:22px;height:22px;font-size:11px;font-weight:700;display:inline-flex;position:relative}.commit-stage small{color:var(--muted);margin-top:2px;font-size:11px;font-weight:400;display:block}.commit-stage.active{color:var(--ink);font-weight:600}.commit-stage.active span{border-color:var(--accent);color:var(--accent);box-shadow:0 0 0 3px #2f6f4e1a}.commit-stage.active span:after{content:"";border:2px solid #0000;border-top-color:var(--accent);border-right-color:var(--accent);border-radius:50%;animation:.9s linear infinite commit-spin;position:absolute;inset:-5px}.commit-stage.done span{background:var(--accent);border-color:var(--accent);color:#fff}@keyframes commit-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.commit-stage.active span:after{animation:none}}.ghost{pointer-events:none;z-index:100;transform-origin:0 0;position:fixed}.ctxmenu{z-index:120;border:1px solid var(--line);background:#fff;border-radius:8px;min-width:184px;padding:5px;font-size:13px;position:fixed;box-shadow:0 10px 30px #0000002e}.ctxmenu .sec{text-transform:uppercase;letter-spacing:.5px;color:var(--muted);padding:6px 9px 3px;font-size:10px;font-weight:700}.ctxmenu .cats{max-height:228px;overflow:auto}.ctxmenu .mi{cursor:pointer;white-space:nowrap;border-radius:6px;align-items:center;gap:8px;padding:6px 9px;display:flex}.ctxmenu .mi:hover{background:#f0efec}.ctxmenu .mi.cur{font-weight:700}.ctxmenu .dot{border-radius:2px;flex:none;width:8px;height:8px}.ctxmenu .check{color:var(--accent);margin-left:auto}.ctxmenu .sep{background:var(--line);height:1px;margin:5px 2px}.ctxmenu .archive{color:var(--red)}.ctxmenu .archive:hover{background:#fbeae6}
