@import "https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;600;700&family=Noto+Sans+TC:wght@400;500;600;700&family=Roboto+Mono:wght@400;500&display=swap";:root{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f5f5f5;--card:#fff;--card-2:#fafafa;--border:#16141514;--border-strong:#1614152e;--hover:#1614150a;--hover-strong:#16141512;--radius:18px;--radius-sm:12px;--ring:none;--shadow-hover:0 16px 32px -18px #16141538;--shadow-float:0 14px 36px -16px #0000008c;--focus:0 0 0 3px #fcd94a8c;--text:#161415;--text-body:#161415c7;--text-dim:#161415a3;--night:#2d2b2c;--night-line:#ffffff1a;--night-wash:#ffffff14;--on-night:#fff;--on-night-dim:#ffffffad;--gold:#fdc302;--gold-light:#ffd83a;--gold-deep:#8a6400;--on-gold:#2d2b2c;--red:#b91c1c;--green:#047857;--yellow:#8a6400;--blue:#0369a1;--red-bg:#fde8e8;--green-bg:#e3f4ec;--yellow-bg:#fef3c7;--blue-bg:#e0f2fe;--red-line:#dc262659;--green-line:#05966959;--yellow-line:#fdc3028c;--blue-line:#0369a159;--mark:#fde68a;--font:"Roboto", "Noto Sans TC", "PingFang TC", "Microsoft JhengHei", system-ui, sans-serif;--mono:"Roboto Mono", "SF Mono", Consolas, "Noto Sans TC", monospace;--nav-h:80px}:root[data-theme=night]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#1a1819;--card:#242223;--card-2:#292728;--border:#f7f7f717;--border-strong:#f7f7f738;--hover:#f7f7f70d;--hover-strong:#f7f7f717;--shadow-hover:0 16px 32px -18px #000000b3;--text:#f7f7f7;--text-body:#f7f7f7d1;--text-dim:#f7f7f79e;--night:#2d2b2c;--gold-deep:#fcd94a;--red:#fca5a5;--green:#6ee7b7;--yellow:#fcd94a;--blue:#7dd3fc;--red-bg:#dc262633;--green-bg:#0596692e;--yellow-bg:#fdc30226;--blue-bg:#0ea5e92e;--red-line:#fca5a566;--green-line:#6ee7b759;--yellow-line:#fcd94a73;--blue-line:#7dd3fc59;--mark:#fde68a4d}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}*{box-sizing:border-box}html,body,#root{min-height:100%}body{background:var(--bg);color:var(--text-body);font-family:var(--font);-webkit-font-smoothing:antialiased;isolation:isolate;margin:0;font-size:14px;line-height:1.6;position:relative}.ig-dotfield{pointer-events:none;z-index:-1;display:block;position:fixed;inset:0}.srd-theme{color:var(--text-body);font-family:var(--font);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.6}.srd-theme[style*=padding]{background:var(--bg)}#root>.srd-theme{min-height:100%}a{color:var(--text);text-decoration:underline;-webkit-text-decoration-color:var(--border-strong);text-decoration-color:var(--border-strong);text-underline-offset:3px}a:hover{-webkit-text-decoration-color:var(--gold);text-decoration-color:var(--gold)}:focus-visible{box-shadow:var(--focus);border-radius:8px;outline:none}h1,h2,h3,h4{color:var(--text);letter-spacing:0;margin:0;font-weight:600}h1{font-size:24px}h2{font-size:17px}h3{font-size:14px}code,.mono{font-family:var(--mono);font-size:12.5px}.dim{color:var(--text-dim)}.small{font-size:12.5px}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.col{flex-direction:column;gap:12px;display:flex}.spacer{flex:1}.pre{white-space:pre-wrap}.app{min-height:100vh}.main{min-width:0}.topnav-wrap{z-index:40;height:var(--nav-h);padding:12px 16px 0;position:sticky;top:0}.topnav{background:var(--night);max-width:1400px;height:56px;color:var(--on-night);box-shadow:var(--shadow-float);border-radius:999px;align-items:center;gap:8px;margin:0 auto;padding:0 8px 0 20px;display:flex}.tn-logo{color:#fff;flex:none;align-items:center;text-decoration:none;display:flex}.tn-logo svg{width:auto;height:22px;display:block}.tn-proj{cursor:pointer;border:1px solid var(--night-line);background:var(--night-wash);max-width:260px;height:38px;color:var(--on-night-dim);font:inherit;white-space:nowrap;border-radius:999px;flex:none;align-items:center;gap:8px;padding:0 12px 0 14px;font-size:12.5px;display:flex}.tn-proj:hover,.tn-proj[aria-expanded=true]{border-color:#ffffff52}.tn-proj b{color:#fff;text-overflow:ellipsis;font-size:13.5px;font-weight:600;overflow:hidden}.tn-items{scrollbar-width:none;flex:1;gap:2px;min-width:0;padding:4px 0;display:flex;overflow-x:auto}.tn-items::-webkit-scrollbar{display:none}.tn-item{height:36px;color:var(--on-night-dim);font:inherit;cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:999px;flex:none;align-items:center;gap:6px;padding:0 12px;font-size:13.5px;text-decoration:none;transition:background .2s,color .2s;display:inline-flex}.tn-item:hover{color:#fff;background:var(--night-wash);text-decoration:none}.tn-item.active{color:#fff;background:#ffffff24}.tn-item svg{opacity:.8}.tn-badge{background:var(--gold);min-width:18px;height:18px;color:var(--on-gold);font-variant-numeric:tabular-nums;border-radius:9px;place-items:center;padding:0 5px;font-size:11px;font-weight:700;display:inline-grid}.tn-badge.quiet{color:#fff;background:#ffffff29}.tn-right{flex:none;align-items:center;gap:6px;display:flex}.tn-round{cursor:pointer;border:1px solid var(--night-line);color:#fff;width:36px;height:36px;font:inherit;background:0 0;border-radius:50%;place-items:center;display:grid}.tn-round:hover{border-color:#ffffff52}.tn-help{font-size:16px;font-weight:700;text-decoration:none}.tn-help:hover{text-decoration:none}.tn-avatar{background:linear-gradient(to top, var(--gold), var(--gold-light));color:var(--on-gold);border:0;font-size:13px;font-weight:700}.tn-test{color:var(--on-night-dim);white-space:nowrap;border:1px dashed #ffffff4d;border-radius:999px;padding:1px 8px;font-size:11px}@media (width<=900px){.tn-proj .tn-meta,.tn-test{display:none}}@media (width<=640px){.topnav-wrap{padding-inline:10px}.topnav{padding-left:14px}.tn-logo svg{height:18px}.tn-proj{max-width:130px}}.tn-menu{z-index:60;background:var(--card);width:320px;max-width:calc(100vw - 24px);max-height:calc(100vh - 100px);color:var(--text-body);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-float);flex-direction:column;gap:2px;padding:8px;display:flex;position:fixed;overflow:auto}.tn-menu .grp{color:var(--text-dim);letter-spacing:.04em;padding:8px 10px 2px;font-size:11.5px}.tn-menu .mi{width:100%;color:var(--text);font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;border-radius:10px;align-items:center;gap:10px;padding:8px 10px;font-size:13.5px;text-decoration:none;display:flex}.tn-menu .mi:hover{background:var(--hover);text-decoration:none}.tn-menu .mi.active{background:var(--hover-strong);box-shadow:inset 3px 0 0 var(--gold)}.tn-menu .mi .sub{color:var(--text-dim);margin-left:auto;font-size:12px}.tn-menu .sep{background:var(--border);height:1px;margin:6px 4px}.tn-menu input{border-radius:999px;margin-bottom:4px}.proj-ico{color:#fff;background:linear-gradient(#f5a524,#d97706);border-radius:8px;flex:none;place-items:center;width:28px;height:28px;font-size:12px;font-weight:700;display:grid}.sb-item{width:100%;font:inherit;text-align:left;color:var(--text-body);cursor:pointer;white-space:nowrap;text-overflow:ellipsis;background:0 0;border:none;border-radius:8px;align-items:center;gap:10px;padding:7px 10px;font-size:13.5px;text-decoration:none;display:flex;overflow:hidden}.sb-item:hover{background:var(--hover);color:var(--text);text-decoration:none}.sb-item.active{background:var(--hover-strong);color:var(--text)}.sb-item svg{color:var(--text-dim);flex:none}.sb-item.active svg{color:var(--gold-deep)}.dot{background:var(--text-dim);border-radius:50%;flex:none;width:7px;height:7px}.dot.yellow{background:var(--gold)}.dot.blue{background:var(--blue)}.dot.green{background:var(--green)}.dot.red{background:var(--red)}.icon-btn{width:30px;height:30px;color:var(--text-dim);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:8px;flex:none;justify-content:center;align-items:center;display:inline-flex}.icon-btn:hover{color:var(--text);background:var(--hover-strong)}.count{color:var(--text-dim);margin-left:auto;font-size:11px}.page{max-width:1100px;margin:0 auto;padding:28px 24px 64px}@media (width<=640px){.page{padding-inline:16px}}.page-head{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:18px;display:flex}.split{grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);align-items:start;gap:16px;display:grid}@media (width<=960px){.split{grid-template-columns:1fr}}.workspace{height:calc(100vh - var(--nav-h));grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:12px;max-width:1432px;margin:0 auto;padding:12px 16px 16px;display:grid}@media (width<=1000px){.workspace{grid-template-columns:1fr;height:auto}}.pane{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;min-height:0;display:flex}.pane-head{border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:8px;padding:12px 16px;display:flex}.pane-body{flex:1;min-height:0;padding:12px 16px 20px;overflow:auto}.toggle{cursor:pointer;color:var(--text-dim);-webkit-user-select:none;user-select:none;align-items:center;gap:6px;font-size:12.5px;display:inline-flex}.toggle .sw{background:var(--border-strong);border-radius:999px;width:30px;height:18px;transition:background .15s;position:relative}.toggle .sw:after{content:"";background:#fff;border-radius:50%;width:14px;height:14px;transition:transform .15s;position:absolute;top:2px;left:2px;box-shadow:0 1px 2px #00000040}.toggle.on{color:var(--text)}.toggle.on .sw{background:var(--night)}:root[data-theme=night] .toggle.on .sw{background:var(--gold)}.toggle.on .sw:after{transform:translate(12px)}.drawer{top:calc(var(--nav-h) + 8px);z-index:30;width:min(560px,100vw - 24px);box-shadow:var(--shadow-float);animation:.18s ease-out slide-in;position:fixed;bottom:12px;right:12px}@keyframes slide-in{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:none}}.drawer-tab{z-index:29;position:fixed;bottom:20px;right:12px}.source-text{white-space:pre-wrap;word-break:break-word;color:var(--text-body);font-size:13.5px;line-height:1.75}mark{background:var(--mark);color:var(--text);border-radius:3px;padding:0 1px}mark.current{background:var(--gold);color:var(--on-gold)}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:18px}.card.tight{padding:12px}.card.danger{border-color:var(--red-line)}.card+.card{margin-top:12px}a.card{color:inherit;text-decoration:none;transition:transform .2s,border-color .2s,box-shadow .2s}a.card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-hover);transform:translateY(-1px)}.section-title{align-items:center;gap:8px;margin-bottom:10px;display:flex}.btn{font:inherit;color:var(--text);background:var(--card);border:1px solid var(--border);cursor:pointer;white-space:nowrap;border-radius:999px;justify-content:center;align-items:center;gap:6px;padding:7px 16px;font-size:13.5px;font-weight:500;text-decoration:none;transition:transform .2s,box-shadow .2s,border-color .2s,background .2s;display:inline-flex}.btn:hover{border-color:var(--border-strong);text-decoration:none;transform:translateY(-1px)}.btn:active{transform:none}.btn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none;transform:none}.btn.primary{background:linear-gradient(to top, var(--gold), var(--gold-light));color:var(--on-gold);box-shadow:0 0 0 1.4px var(--gold);border-color:#0000}.btn.primary:hover{box-shadow:0 0 0 1.4px var(--gold), 0 12px 26px -10px #fdc3028c}.btn.danger{background:var(--card);color:var(--red);border-color:var(--red-line)}.btn.success{background:var(--night);color:#fff;border-color:#0000}:root[data-theme=night] .btn.success{color:#161415;background:#f7f7f7}.btn.ghost{color:var(--text-dim);background:0 0;border-color:#0000}.btn.ghost:hover{color:var(--text);background:var(--hover)}.btn.sm{padding:4px 12px;font-size:12.5px}input,textarea,select{font:inherit;color:var(--text);background:var(--card);border:1px solid var(--border-strong);border-radius:var(--radius-sm);width:100%;padding:8px 12px}input::placeholder,textarea::placeholder{color:var(--text-dim)}textarea{resize:vertical;min-height:64px}input:focus,textarea:focus,select:focus{border-color:var(--gold);box-shadow:var(--focus);outline:none}input[type=checkbox],input[type=radio]{width:auto;accent-color:var(--night)}:root[data-theme=night] input[type=checkbox],:root[data-theme=night] input[type=radio]{accent-color:var(--gold)}label.field{flex-direction:column;gap:4px;display:flex}label.field>span{color:var(--text-dim);font-size:12.5px;font-weight:500}.grid2{grid-template-columns:1fr 1fr;gap:12px;display:grid}@media (width<=640px){.grid2{grid-template-columns:1fr}}.badge{background:var(--hover-strong);color:var(--text-dim);white-space:nowrap;border:1px solid #0000;border-radius:999px;align-items:center;gap:4px;padding:1px 9px;font-size:11.5px;font-weight:500;text-decoration:none;display:inline-flex}.badge.red{color:var(--red);background:var(--red-bg)}.badge.green{color:var(--green);background:var(--green-bg)}.badge.yellow{color:var(--yellow);background:var(--yellow-bg)}.badge.blue{color:var(--blue);background:var(--blue-bg)}.code{font-family:var(--mono);color:var(--text);font-size:12px}.module-title{color:var(--text-dim);letter-spacing:.06em;margin:14px 0 6px;font-size:12px}.module-title:first-child{margin-top:0}.chip{background:var(--card);border:1px solid var(--border-strong);color:var(--text);border-radius:999px;align-items:center;gap:4px;padding:3px 4px 3px 10px;font-size:13px;display:inline-flex}.chip button{color:var(--text-dim);cursor:pointer;background:0 0;border:none;padding:0 4px;font-size:14px;line-height:1}.chip button:hover{color:var(--red)}.rule{border-radius:var(--radius-sm);border:1px solid #0000;grid-template-columns:88px minmax(0,1fr) auto;align-items:start;gap:10px;padding:8px 10px;display:grid}.rule:hover{background:var(--hover)}.rule.add{background:var(--green-bg);border-color:var(--green-line)}.rule.modify{background:var(--yellow-bg);border-color:var(--yellow-line)}.rule.remove{background:var(--red-bg);border-color:var(--red-line)}.rule.conflict{box-shadow:inset 3px 0 0 var(--red)}.rule .old{color:var(--text-dim);text-decoration:line-through}.rule .meta{flex-direction:column;align-items:flex-end;gap:4px;display:flex}.rule select{width:auto;padding:2px 8px;font-size:12px}.plist{flex-direction:column;gap:6px;display:flex}.pitem{text-align:left;width:100%;font:inherit;color:inherit;background:var(--card);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;padding:10px 12px;display:block}.pitem:hover{border-color:var(--border-strong)}.pitem.selected{border-color:var(--text);box-shadow:inset 3px 0 0 var(--gold)}.gates{grid-template-columns:repeat(auto-fit,minmax(105px,1fr));gap:8px;display:grid}.gate{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card-2);padding:8px 10px}.gate.pass{border-color:var(--green-line);background:var(--green-bg)}.gate.wait{border-color:var(--yellow-line);background:var(--yellow-bg)}.gate .n{color:var(--text-dim);font-size:11px}.gate .v{color:var(--yellow)}.gate.pass .v{color:var(--green)}.blockers{color:var(--yellow);margin:0;padding-left:18px}.alert{border-radius:var(--radius-sm);border:1px solid;padding:9px 12px}.alert.warn{color:var(--text);background:var(--yellow-bg);border-color:var(--yellow-line)}.alert.error{color:var(--red);background:var(--red-bg);border-color:var(--red-line)}.alert.info{color:var(--text);background:var(--blue-bg);border-color:var(--blue-line)}.sheet-wrap{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card);max-height:70vh;overflow:auto}table.sheet{border-collapse:collapse;width:100%;font-size:13px}table.sheet th,table.sheet td{border-bottom:1px solid var(--border);text-align:left;white-space:nowrap;padding:7px 10px}table.sheet th{z-index:1;background:var(--card-2);color:var(--text-dim);font-weight:500;position:sticky;top:0}table.sheet td.num,table.sheet th.num{text-align:right;font-variant-numeric:tabular-nums}table.sheet tr.add td{background:var(--green-bg)}table.sheet tr.remove td{background:var(--red-bg);text-decoration:line-through}table.sheet td.changed{background:var(--yellow-bg)}table.sheet td.changed .old{color:var(--text-dim);margin-right:6px;text-decoration:line-through}table.sheet td input{width:100%;min-width:70px;padding:3px 6px;font-size:13px}table.sheet td input[type=checkbox]{width:auto;min-width:0}table.sheet td .cell-input.num{text-align:right;font-variant-numeric:tabular-nums}table.sheet td .cell-input.bad{border-color:var(--red);background:var(--red-bg)}.op{border-radius:var(--radius-sm);border:1px solid var(--border);padding:8px 10px}.op.add{border-color:var(--green-line)}.op.modify{border-color:var(--yellow-line)}.op.remove,.op.unresolved{border-color:var(--red-line)}.comment{border-left:2px solid var(--border-strong);padding:2px 0 2px 10px}.workspace.discuss{grid-template-columns:240px minmax(0,1fr)}@media (width<=1000px){.workspace.discuss{grid-template-columns:1fr}}.msg{border:1px solid #0000;border-radius:10px;align-items:flex-start;gap:8px;padding:6px 8px;display:flex}.msg+.msg{margin-top:2px}.msg.selectable{cursor:pointer}.msg.selectable:hover{background:var(--hover)}.msg.sel{background:var(--yellow-bg);border-color:var(--yellow-line)}.msg input[type=checkbox]{flex:none;margin-top:4px}.msg-main{flex:1;min-width:0}.msg .who{color:var(--text);font-size:12.5px;font-weight:600}.msg .t{color:var(--text-dim);font-size:11.5px}.msg .body{color:var(--text-body);word-break:break-word}.composer{border-top:1px solid var(--border);align-items:flex-end;gap:8px;padding:10px 12px;display:flex}.composer textarea{min-height:36px}.composer .btn{white-space:nowrap;flex:none}.composer.compact{border-top:none;padding:8px 0 0}.table{border-collapse:collapse;width:100%}.table th,.table td{text-align:left;border-bottom:1px solid var(--border);vertical-align:top;padding:8px}.table th{color:var(--text-dim);font-size:12.5px;font-weight:500}.toast{background:var(--night);color:#fff;box-shadow:var(--shadow-float);z-index:70;pointer-events:none;border:0;border-radius:999px;max-width:min(720px,100vw - 32px);padding:10px 18px;position:fixed;bottom:24px;left:50%;transform:translate(-50%)}.toast.error{color:#fca5a5}.toast.static{display:inline-block;position:static;transform:none}.empty{text-align:center;color:var(--text-dim);padding:24px}.read-page{max-width:900px;margin:0 auto;padding:20px 16px 80px}.read-tools{flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;display:flex}.read-paper{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);padding:56px 64px 64px;font-size:15.5px;line-height:1.85}@media (width<=720px){.read-paper{padding:28px 20px 36px}}.read-cover{border-bottom:1px solid var(--border);margin-bottom:28px;padding-bottom:28px}.read-cover h1{text-wrap:balance;margin:6px 0 10px;font-size:34px;line-height:1.3}.read-eyebrow{letter-spacing:.08em;color:var(--gold-deep);font-size:13px;font-weight:600}.read-lead{color:var(--text-body);max-width:62ch;margin:0 0 12px;font-size:16.5px}.read-meta{color:var(--text-dim);font-size:12.5px}.read-toc{margin-bottom:36px}.read-toc h2{letter-spacing:.06em;color:var(--text-dim);margin-bottom:6px;font-size:15px}.read-toc ol{margin:0;padding-left:1.4em}.read-toc ol ol{color:var(--text-dim);padding-left:.6em;font-size:14px;list-style:none}.read-toc a{color:inherit;text-decoration:none}.read-toc a:hover{text-decoration:underline;-webkit-text-decoration-color:var(--gold);text-decoration-color:var(--gold)}.read-doc{margin-top:44px}.read-doc:first-of-type{margin-top:0}.read-doc-title{border-bottom:2px solid var(--text);margin-bottom:18px;padding-bottom:10px;font-size:26px;line-height:1.35}.read-doc h2{margin:28px 0 10px;font-size:19px;line-height:1.4}.read-text{white-space:pre-wrap;max-width:68ch;margin:0 0 12px}.read-rules{margin:0 0 14px;padding-left:1.3em}.read-rules li{margin:4px 0;padding-left:2px}.read-rules li::marker{color:var(--gold-deep)}.read-code{font-family:var(--mono);color:var(--text-dim);white-space:nowrap;opacity:.8;margin-left:8px;font-size:11px}.no-codes .read-code{display:none}.read-todo{color:var(--yellow)}.read-section-title{margin-top:18px}.seg{gap:4px;display:inline-flex}.read-figure{margin:14px 0 20px}.read-figure img{border:1px solid var(--border);border-radius:10px;max-width:100%;display:block}.read-figure figcaption{color:var(--text-dim);text-align:center;margin-top:6px;font-size:13px}.read-table-wrap{overflow-x:auto}.read-table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:13.5px;line-height:1.5}.read-table th,.read-table td{border:1px solid var(--border-strong);text-align:left;vertical-align:top;padding:6px 10px}.read-table th{background:var(--card-2);color:var(--text);font-weight:600}.read-table .num{text-align:right}.read-table .center{text-align:center}.read-block{margin-bottom:18px}.read-diagram{border:1px solid var(--border);background:var(--card-2);border-radius:14px;padding:16px 18px 12px}.read-diagram.is-hidden{opacity:.45}.read-diagram figcaption{text-align:left;margin-top:10px}.read-diagram-src{color:var(--text-dim)}.flow-steps{flex-wrap:wrap;align-items:center;gap:10px 0;margin:0;padding:0;list-style:none;display:flex}.flow-steps li{align-items:center;display:inline-flex}.flow-steps li+li:before{content:"→";color:var(--gold-deep);margin:0 10px;font-weight:700}.flow-n{background:var(--gold);width:22px;height:22px;color:var(--on-gold);font-variant-numeric:tabular-nums;border-radius:50%;flex:none;place-items:center;margin-right:8px;font-size:11.5px;font-weight:700;display:inline-grid}.flow-t{background:var(--card);border:1px solid var(--border-strong);color:var(--text);border-radius:10px;max-width:260px;padding:6px 12px;font-size:14px;line-height:1.45;display:inline-block}.mermaid-svg{text-align:center;overflow-x:auto}.mermaid-svg svg{max-width:100%;height:auto}@media print{:root,:root[data-theme=night]{--card:#fff;--card-2:#f4f4f4;--bg:#fff;--text:#111;--text-body:#222;--text-dim:#666;--border:#d4d4d4;--border-strong:#bbb;--gold-deep:#8a6400;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}@page{size:A4;margin:18mm 16mm 20mm;@bottom-center{content:counter(page) " / " counter(pages);font-size:9pt;color:#888}}body{background:#fff!important}.topnav-wrap,.no-print,.ig-dotfield,.toast{display:none!important}.read-page{max-width:none;margin:0;padding:0}.read-paper{border:0;border-radius:0;padding:0;font-size:11pt;line-height:1.7}.read-cover{break-after:page;border:0;padding-top:30vh}.read-cover h1{font-size:28pt}.read-toc{break-after:page}.read-doc{break-before:page;margin-top:0}.read-doc h2{break-after:avoid}.read-rules li,.read-figure,.read-table tr{break-inside:avoid}.read-diagram{background:#fff}.read-diagram.is-hidden{display:none}.flow-n{-webkit-print-color-adjust:exact;print-color-adjust:exact;background:#fdc302!important}.read-table thead{display:table-header-group}.read-toc a,.read-code{color:#666}}.pbar{background:var(--hover-strong);border-radius:999px;height:10px;display:flex;overflow:hidden}.pbar.thin{height:6px}.pbar-done{background:var(--green)}.pbar-doing{background:var(--gold)}.pkey{vertical-align:-1px;border-radius:3px;width:9px;height:9px;margin-right:4px;display:inline-block}.pkey.done{background:var(--green)}.pkey.doing{background:var(--gold)}.pkey.todo{background:var(--hover-strong);border:1px solid var(--border-strong)}.psections{flex-direction:column;margin-top:4px;display:flex}.psection{border-top:1px solid var(--border)}.psection-head{width:100%;color:inherit;font:inherit;text-align:left;cursor:pointer;background:0 0;border:0;grid-template-columns:minmax(0,1fr) 160px 150px 16px;align-items:center;gap:12px;padding:10px 4px;display:grid}.psection-head:hover{background:var(--hover)}.psection-title{color:var(--text);font-weight:500}.pdone{color:var(--green);font-weight:500}@media (width<=640px){.psection-head{grid-template-columns:minmax(0,1fr) 90px}.psection-head>:nth-child(3),.psection-head>:nth-child(4){display:none}}.prules{flex-direction:column;gap:4px;margin:0 0 10px;padding:0 4px;list-style:none;display:flex}.prules li{background:var(--card-2);border-radius:10px;grid-template-columns:80px minmax(0,1fr) auto;align-items:center;gap:10px;padding:6px 8px;font-size:13.5px;display:grid}.prules li.impl-done{box-shadow:inset 3px 0 0 var(--green)}.prules li.impl-in_progress{box-shadow:inset 3px 0 0 var(--gold)}.prule-text{color:var(--text-body)}.login{place-items:center;min-height:100vh;padding:40px 16px;display:grid}.login-box{background:var(--card);border:1px solid var(--border);text-align:center;border-radius:24px;flex-direction:column;align-items:center;gap:14px;width:min(420px,100%);padding:32px 28px;display:flex}.login-box h1{font-size:22px}.login-box p{margin:0;line-height:1.7}.login-logo{color:var(--text)}.login-gis{justify-content:center;min-height:44px;display:flex}.dir-head{text-align:center;max-width:640px;margin:12px auto 24px}.dir-head h1{font-size:36px;line-height:1.3}.dir-head p{color:var(--text-dim);margin:8px 0 0;font-size:15px}@media (width<=640px){.dir-head h1{font-size:30px}}.dir-bar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;margin-bottom:14px;display:flex}.dir-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;display:grid}@media (width<=1023px){.dir-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=640px){.dir-grid{grid-template-columns:minmax(0,1fr)}}.dir-card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);color:inherit;align-items:flex-start;gap:16px;padding:16px;text-decoration:none;transition:transform .2s,border-color .2s,box-shadow .2s;display:flex}.dir-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-hover);text-decoration:none;transform:translateY(-1px)}.dir-card .proj-ico{border-radius:14px;width:64px;height:64px;font-size:22px}.dir-card .t{color:var(--text);font-size:17px;font-weight:600;line-height:1.45}.dir-card .d{color:var(--text-dim);-webkit-line-clamp:2;-webkit-box-orient:vertical;margin-top:2px;font-size:14px;line-height:1.6;display:-webkit-box;overflow:hidden}.dir-card.archived{opacity:.6}.filters{flex-wrap:wrap;gap:6px;display:flex}.filters button{border:1px solid var(--border);background:var(--card);height:32px;color:var(--text-dim);font:inherit;cursor:pointer;border-radius:999px;padding:0 14px;font-size:13px}.filters button[aria-pressed=true]{background:var(--night);color:#fff;border-color:var(--night)}:root[data-theme=night] .filters button[aria-pressed=true]{color:#161415;background:#f7f7f7;border-color:#f7f7f7}.filters .n{opacity:.7;font-variant-numeric:tabular-nums;margin-left:6px}.workspace.doc{grid-template-columns:minmax(0,1fr) 360px}@media (width<=1000px){.workspace.doc{grid-template-columns:1fr}}.article{flex-direction:column;gap:6px;max-width:76ch;display:flex}.blk{border-radius:var(--radius-sm);cursor:pointer;border:1px solid #0000;margin-inline:-10px;padding:6px 10px}.blk:hover{border-color:var(--border)}.blk.sel{border-color:var(--text);box-shadow:inset 3px 0 0 var(--gold)}.blk.add{background:var(--green-bg);border-color:var(--green-line)}.blk.modify{background:var(--yellow-bg);border-color:var(--yellow-line)}.blk.remove{background:var(--red-bg);border-color:var(--red-line)}.blk.remove .blk-text{color:var(--text-dim);text-decoration:line-through}.blk.rule{background:var(--card-2);grid-template-columns:88px minmax(0,1fr) auto;align-items:start;gap:10px;display:grid}.blk.rule.add{background:var(--green-bg)}.blk.rule.modify{background:var(--yellow-bg)}.blk.rule.remove{background:var(--red-bg)}h3.blk{color:var(--text);margin-top:14px;font-size:17px}.blk p,p.blk-text{margin:0}.blk-text{color:var(--text);line-height:1.75}.blk-meta{flex-wrap:wrap;gap:10px;font-size:11.5px;font-weight:400;display:flex}.blk-meta:empty{display:none}del{color:var(--red);background:var(--red-bg);border-radius:3px;padding:0 2px;text-decoration:line-through}ins{color:var(--green);background:var(--green-bg);border-radius:3px;padding:0 2px;text-decoration:none}.side-panel{min-height:0}.side-tabs{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:2px;padding:8px 10px 0;display:flex}.side-tabs button{color:var(--text-dim);cursor:pointer;font:inherit;background:0 0;border:0;padding:7px 10px;font-size:13px}.side-tabs button.on{color:var(--text);box-shadow:inset 0 -2px 0 var(--gold)}.side-card{border-bottom:1px solid var(--border);flex-direction:column;gap:6px;padding:10px 14px;display:flex}.side-card.row{flex-direction:row}.side-empty{color:var(--text-dim);padding:16px;font-size:13px}.inbox-item{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card);color:inherit;grid-template-columns:10px minmax(0,1fr) auto;align-items:center;gap:12px;padding:12px 14px;text-decoration:none;display:grid}.inbox-item.lead-badge{grid-template-columns:auto minmax(0,1fr) auto}a.inbox-item:hover{border-color:var(--border-strong);text-decoration:none}.doc-cards{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:10px;display:grid}.doc-card{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--card);color:inherit;flex-direction:column;gap:2px;padding:12px 14px;text-decoration:none;transition:transform .2s,border-color .2s;display:flex}.doc-card:hover{border-color:var(--border-strong);text-decoration:none;transform:translateY(-1px)}.doc-card b{color:var(--text)}.feed{flex-direction:column;gap:6px;font-size:13px;display:flex}.feed>div{grid-template-columns:110px minmax(0,1fr);gap:8px;display:grid}.board{grid-template-columns:repeat(4,minmax(200px,1fr));gap:10px;display:grid;overflow-x:auto}.board-col{background:var(--hover);border-radius:var(--radius);border:0;flex-direction:column;gap:8px;min-height:200px;padding:10px;display:flex}.board-col h3{align-items:center;gap:6px;font-size:13px;display:flex}.board-col.tone-blue{box-shadow:inset 0 3px 0 var(--blue)}.board-col.tone-red{box-shadow:inset 0 3px 0 var(--red)}.board-col.tone-yellow{box-shadow:inset 0 3px 0 var(--gold)}.board-col.tone-green{box-shadow:inset 0 3px 0 var(--green)}.board-col.tone-blue .board-card{border-left:3px solid var(--blue)}.board-col.tone-red .board-card{border-left:3px solid var(--red)}.board-col.tone-yellow .board-card{border-left:3px solid var(--gold)}.board-col.tone-green .board-card{border-left:3px solid var(--green)}.board-card{border:1px solid var(--border);background:var(--card);color:inherit;border-radius:14px;flex-direction:column;gap:2px;padding:10px 12px;text-decoration:none;transition:transform .2s,border-color .2s,box-shadow .2s;display:flex}.board-card:hover{border-color:var(--border-strong);box-shadow:var(--shadow-hover);text-decoration:none;transform:translateY(-1px)}.blk-tools{flex-wrap:wrap;align-items:center;gap:10px;padding:2px 0 6px;font-size:12px;display:flex}.lnk{color:var(--gold-deep);cursor:pointer;font:inherit;background:0 0;border:0;padding:0;font-weight:500}.lnk:hover{text-decoration:underline}.draft-tray{background:var(--card);border:1px solid var(--yellow-line);border-radius:var(--radius-sm);box-shadow:var(--shadow-hover);flex-direction:column;gap:8px;margin-top:18px;padding:12px 14px;display:flex;position:sticky;bottom:-20px}.blk.image img,.img-edit img{border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--card-2);max-width:100%;max-height:420px;display:block}.blk.image figcaption{color:var(--text-dim);margin-top:4px;font-size:12.5px}.img-pair{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px;display:grid}.img-pair .old img{border:2px solid var(--red);opacity:.7}.img-pair .new img{border:2px solid var(--green)}.img-loading{border-radius:var(--radius-sm);background:var(--card-2);height:120px}.img-edit{flex-direction:column;gap:6px;display:flex}.help{grid-template-columns:200px minmax(0,1fr);align-items:start;gap:24px;max-width:1040px;display:grid}.help-toc{flex-direction:column;gap:2px;font-size:14px;display:flex;position:sticky;top:88px}.help-toc b{color:var(--text);margin-bottom:6px}.help-toc a{color:var(--text-dim);border-radius:var(--radius-sm);padding:4px 8px;text-decoration:none}.help-toc a:hover{background:var(--hover);color:var(--text)}.help-body{flex-direction:column;gap:16px;display:flex}.help-body h1{margin:0}.help-body section{scroll-margin-top:88px;line-height:1.7}.tpl-grid{grid-template-columns:minmax(0,1fr) 300px;align-items:start;gap:16px;display:grid}.tpl-grid textarea{resize:vertical;width:100%}.tpl-chapters{margin:0;padding:0;line-height:1.9;list-style:none}@media (width<=860px){.tpl-grid{grid-template-columns:1fr}}.help-body p,.help-body ul,.help-body ol{margin:0}.help-body li+li{margin-top:4px}.help-dl{grid-template-columns:7em minmax(0,1fr);gap:8px 14px;margin:0;display:grid}.help-dl dt{color:var(--text);font-weight:700}.help-dl dd{margin:0}@media (width<=760px){.help{grid-template-columns:1fr}.help-toc{position:static}.help-dl{grid-template-columns:1fr;gap:2px}.help-dl dd{margin-bottom:8px}}
