:root{--bzb-gold:#f9a601;--bzb-gold-yellow:#e8b620;--bzb-indigo:#183e6c;--bzb-blue:#2365aa;--bzb-grey:#4a4a4a;--bzb-bg:#fff;--bzb-bg-soft:#f5f5f3;--bzb-bg-mid:#e8e8e5;--bzb-text:#111;--bzb-text-muted:#4a4a4a;--bzb-gold-10:#f9a6011a;--bzb-gold-20:#f9a60133;--bzb-indigo-07:#183e6c12;--bzb-indigo-15:#183e6c26;--bzb-font:"Prompt","Kanit","Inter","Helvetica Neue",Arial,sans-serif;--bzb-radius-card:16px;--bzb-radius-tag:20px;--bzb-border:1px solid #e8e8e5;--st-done:#1e7b45;--st-track:#2365aa;--st-risk:#c05600;--st-blocked:#b3261e;--st-none:#6b6b66;--st-proposed:#8e8e88;--st-pause:#54607a;--st-pending:#7a5200;--cell-green:#5c9e3f;--cell-orange:#d9702b;--cell-yellow:#f5d34e;--scale:1}
*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bzb-bg-soft);color:var(--bzb-text);font-family:var(--bzb-font);-webkit-font-smoothing:antialiased;min-height:100vh;font-size:15px;font-weight:400;line-height:1.5}h1,h2,h3,h4{letter-spacing:-.02em;margin:0;font-weight:700;line-height:1.2}a{color:var(--bzb-blue)}button,input,select,textarea{font-family:inherit;font-size:14px}code{background:var(--bzb-indigo-07);border-radius:6px;padding:1px 6px;font-family:ui-monospace,Menlo,monospace;font-size:12.5px}.topbar{z-index:50;border-bottom:2px solid var(--bzb-bg-mid);background:#fff;flex-wrap:wrap;align-items:center;gap:14px;min-height:64px;padding:0 20px;display:flex;position:sticky;top:0}.topbar .accent{background:linear-gradient(90deg,var(--bzb-gold),var(--bzb-gold-yellow),transparent);height:4px;position:absolute;top:0;left:0;right:0}.brand{align-items:center;gap:10px;padding-right:6px;text-decoration:none;display:flex}.brand img{width:34px;height:auto;display:block}.brand .wm{letter-spacing:.14em;color:var(--bzb-indigo);font-size:15px;font-weight:800;line-height:1.1}.brand .sub{letter-spacing:.2em;color:var(--bzb-gold);text-transform:uppercase;font-size:10.5px;font-weight:700}.tabs{flex-wrap:wrap;gap:4px;display:flex}.tab{color:var(--bzb-text-muted);border-radius:var(--bzb-radius-tag);cursor:pointer;white-space:nowrap;background:0 0;border:2px solid #0000;align-items:center;gap:6px;padding:6px 14px;font-size:14px;font-weight:600;text-decoration:none;display:inline-flex}.tab:hover{background:var(--bzb-bg-soft)}.tab[aria-current=page]{background:var(--bzb-indigo);color:#fff;border-color:var(--bzb-indigo)}.tab .badge{background:var(--bzb-gold);color:#111;border-radius:10px;padding:0 7px;font-size:11px;font-weight:800;line-height:18px}.topbar .right{align-items:center;gap:10px;margin-left:auto;display:flex}.vswitch{gap:4px;display:inline-flex}.vswitch a{letter-spacing:.07em;text-transform:uppercase;color:#7a5200;background:var(--bzb-gold-10);border:2px solid var(--bzb-gold-20);border-radius:var(--bzb-radius-tag);white-space:nowrap;padding:3px 10px;font-size:11px;font-weight:800;text-decoration:none}.vswitch a:hover{border-color:var(--bzb-gold);background:var(--bzb-gold-20)}.iconbtn{color:var(--bzb-indigo);background:var(--bzb-indigo-07);border:2px solid var(--bzb-indigo-15);border-radius:var(--bzb-radius-tag);cursor:pointer;white-space:nowrap;padding:5px 12px;font-size:13px;font-weight:600;text-decoration:none}.iconbtn:hover{border-color:var(--bzb-gold);color:var(--bzb-text)}.iconbtn.on{background:var(--bzb-gold);border-color:var(--bzb-gold);color:#111}.usermenu{position:relative}.usermenu .menu{border:2px solid var(--bzb-bg-mid);z-index:60;background:#fff;border-radius:12px;min-width:220px;padding:6px;position:absolute;top:calc(100% + 6px);right:0;box-shadow:0 10px 30px #0000001f}.usermenu .menu a,.usermenu .menu button{text-align:left;width:100%;color:var(--bzb-text);cursor:pointer;background:0 0;border:none;border-radius:8px;padding:8px 10px;font-size:14px;text-decoration:none;display:block}.usermenu .menu a:hover,.usermenu .menu button:hover{background:var(--bzb-gold-10)}.usermenu .menu .who{color:var(--bzb-text-muted);border-bottom:2px solid var(--bzb-bg-soft);margin-bottom:4px;padding:6px 10px 8px;font-size:12px}.page{max-width:1500px;margin:0 auto;padding:18px 24px 60px}.vhead{flex-wrap:wrap;align-items:flex-end;gap:16px;margin-bottom:14px;display:flex}.vhead h1{font-size:26px}.vhead .cap{color:var(--bzb-text-muted);padding-bottom:3px;font-size:14px}.vhead .actions{flex-wrap:wrap;align-items:center;gap:8px;margin-left:auto;display:flex}.seclabel{letter-spacing:.3em;text-transform:uppercase;color:var(--bzb-gold);align-items:center;gap:10px;margin:14px 0 8px;font-size:11px;font-weight:700;display:flex}.seclabel:after{content:"";background:var(--bzb-gold);width:44px;height:2px;display:block}.muted{color:var(--bzb-text-muted)}.small{font-size:12.5px}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.grow{flex:1}.spacer{height:12px}.card{border:2px solid var(--bzb-bg-mid);border-radius:var(--bzb-radius-card);background:#fff;padding:16px 18px}.card+.card{margin-top:12px}.card.click{cursor:pointer}.card.click:hover{border-color:#f9a601b3;box-shadow:0 6px 22px #f9a60124}.card h3{margin-bottom:4px;font-size:18px}.grid2{grid-template-columns:1fr 1fr;gap:14px;display:grid}.grid3{grid-template-columns:repeat(3,1fr);gap:14px;display:grid}@media (max-width:900px){.grid2,.grid3{grid-template-columns:1fr}}.tag{color:var(--bzb-indigo);background:var(--bzb-indigo-07);border:2px solid var(--bzb-indigo-15);border-radius:var(--bzb-radius-tag);white-space:nowrap;align-items:center;gap:6px;padding:1px 9px;font-size:12px;font-weight:700;display:inline-flex}.tag.gold{color:#7a5200;background:var(--bzb-gold-20);border-color:var(--bzb-gold)}.tag.cat{color:#fff;border-color:#0000}.tag.red{color:#fff;background:var(--st-blocked);border-color:var(--st-blocked)}.tag.green{color:#fff;background:var(--st-done);border-color:var(--st-done)}.tag.grey{color:#5f5f59;background:var(--bzb-bg-soft);border-color:var(--bzb-bg-mid)}.st{color:#fff;border-radius:var(--bzb-radius-tag);white-space:nowrap;background:var(--st-none);align-items:center;gap:6px;padding:2px 10px;font-size:12px;font-weight:700;display:inline-flex}.st .dot{background:#ffffffe6;border-radius:50%;width:7px;height:7px}.mock{letter-spacing:.08em;color:#7a5200;background:var(--bzb-gold-20);border:2px solid var(--bzb-gold);border-radius:var(--bzb-radius-tag);align-items:center;gap:4px;padding:0 7px;font-size:10.5px;font-weight:800;line-height:16px;display:inline-flex}.mock button{background:var(--bzb-gold);color:#111;cursor:pointer;border:none;border-radius:8px;padding:0 6px;font-size:10.5px;font-weight:800;line-height:14px}.btn{border-radius:var(--bzb-radius-tag);cursor:pointer;border:2px solid var(--bzb-indigo);background:var(--bzb-indigo);color:#fff;white-space:nowrap;justify-content:center;align-items:center;gap:6px;padding:7px 16px;font-size:14px;font-weight:700;text-decoration:none;display:inline-flex}.btn:hover{filter:brightness(1.1)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.gold{background:var(--bzb-gold);border-color:var(--bzb-gold);color:#111}.btn.ghost{color:var(--bzb-indigo);border-color:var(--bzb-indigo-15);background:#fff}.btn.ghost:hover{border-color:var(--bzb-gold);filter:none}.btn.danger{color:var(--st-blocked);background:#fff;border-color:#f0c4c0}.btn.danger:hover{background:var(--st-blocked);color:#fff;filter:none}.btn.ok{background:var(--st-done);border-color:var(--st-done)}.btn.sm{padding:3px 11px;font-size:12.5px}.btn.xs{border-width:2px;padding:1px 8px;font-size:12px}.linkbtn{color:var(--bzb-blue);cursor:pointer;background:0 0;border:none;padding:0;font-size:13px;font-weight:600}.seg{border:2px solid var(--bzb-indigo-15);border-radius:var(--bzb-radius-tag);background:#fff;flex-wrap:wrap;gap:0;display:inline-flex;overflow:hidden}.seg button{color:var(--bzb-indigo);cursor:pointer;border:none;border-left:2px solid var(--bzb-indigo-15);background:#fff;padding:6px 14px;font-size:13.5px;font-weight:700}.seg button:first-child{border-left:none}.seg button:hover{background:var(--bzb-gold-10)}.seg button.on{background:var(--bzb-indigo);color:#fff}.seg button .n{opacity:.7;margin-left:4px;font-size:11px}.fld{flex-direction:column;gap:4px;margin-bottom:12px;display:flex}.fld>label,.fld>.lab{letter-spacing:.09em;text-transform:uppercase;color:var(--bzb-text-muted);flex-wrap:wrap;align-items:center;gap:8px;font-size:11px;font-weight:700;display:flex}.fld .req{color:var(--st-blocked)}.fld .hint{color:var(--bzb-text-muted);font-size:12px}.fld.changed>label,.fld.changed>.lab{color:var(--bzb-blue)}.fld.changed .in{border-color:var(--bzb-blue)}.in{border:2px solid var(--bzb-bg-mid);width:100%;color:var(--bzb-text);background:#fff;border-radius:10px;padding:7px 10px}.in:focus{border-color:var(--bzb-gold);outline:none}textarea.in{resize:vertical;min-height:72px;line-height:1.45}textarea.in.mono{font-family:ui-monospace,Menlo,monospace;font-size:12.5px}select.in{padding:6px 8px}.in.sm{width:auto;padding:4px 8px;font-size:13px}.checks{flex-wrap:wrap;gap:6px;display:flex}.checks label{border:2px solid var(--bzb-bg-mid);border-radius:var(--bzb-radius-tag);cursor:pointer;background:#fff;align-items:center;gap:5px;padding:2px 10px;font-size:13px;display:inline-flex}.checks label.on{border-color:var(--bzb-indigo);background:var(--bzb-indigo-07);font-weight:600}.listed{flex-direction:column;gap:6px;display:flex}.listed .li{align-items:center;gap:6px;display:flex}.form2{grid-template-columns:1fr 1fr;gap:0 14px;display:grid}.form3{grid-template-columns:1fr 1fr 1fr;gap:0 14px;display:grid}@media (max-width:700px){.form2,.form3{grid-template-columns:1fr}}.err{color:var(--st-blocked);background:#fdf1f0;border:2px solid #f0c4c0;border-radius:10px;margin:8px 0;padding:8px 12px;font-size:13.5px}.err ul{margin:6px 0 0;padding-left:18px}.okbox{color:var(--st-done);background:#eef7f1;border:2px solid #bfe0cb;border-radius:10px;margin:8px 0;padding:8px 12px;font-size:13.5px}.box{border:2px solid var(--bzb-bg-mid);background:#fff;border-radius:12px;margin-bottom:12px;padding:12px 14px}.box.warn{background:#fff8f2;border-color:#f0c9a8}.box.gold{border-color:var(--bzb-gold);background:var(--bzb-gold-10)}.box>.l{letter-spacing:.09em;text-transform:uppercase;color:var(--bzb-text-muted);align-items:center;gap:8px;margin-bottom:8px;font-size:11px;font-weight:700;display:flex}details.box>summary{cursor:pointer;letter-spacing:.09em;text-transform:uppercase;color:var(--bzb-text-muted);font-size:11px;font-weight:700}pre.json{background:var(--bzb-bg-soft);border-radius:8px;max-height:260px;margin:8px 0 0;padding:8px;font-size:12px;overflow:auto}.scrim{z-index:80;background:#1111116b;position:fixed;inset:0}.drawer{z-index:90;border-left:4px solid var(--bzb-gold);background:#fff;width:680px;max-width:100vw;padding:20px 22px 40px;position:fixed;top:0;bottom:0;right:0;overflow-y:auto}.drawer .x{cursor:pointer;background:var(--bzb-bg-soft);border:2px solid var(--bzb-bg-mid);border-radius:var(--bzb-radius-tag);padding:4px 12px;font-size:14px;font-weight:700;position:absolute;top:14px;right:16px}.drawer h2{margin:6px 0 8px;padding-right:80px;font-size:22px}.drawer .foot{border-top:2px solid var(--bzb-bg-mid);background:#fff;flex-wrap:wrap;align-items:center;gap:8px;margin-top:10px;padding:12px 0;display:flex;position:sticky;bottom:-40px}.modal-wrap{z-index:120;background:#11111180;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{border-radius:var(--bzb-radius-card);border-top:6px solid var(--bzb-gold);background:#fff;width:520px;max-width:100%;max-height:90vh;padding:20px 22px;overflow:auto;box-shadow:0 20px 60px #00000040}.modal h3{margin-bottom:8px;font-size:19px}.modal .acts{justify-content:flex-end;gap:8px;margin-top:14px;display:flex}.toasts{z-index:200;flex-direction:column;gap:8px;max-width:440px;display:flex;position:fixed;bottom:18px;right:18px}.toast{border:2px solid var(--bzb-bg-mid);border-left:8px solid var(--bzb-blue);background:#fff;border-radius:12px;padding:10px 34px 10px 12px;font-size:13.5px;position:relative;box-shadow:0 10px 30px #00000026}.toast.warn{border-left-color:var(--st-risk)}.toast.error{border-left-color:var(--st-blocked)}.toast.ok{border-left-color:var(--st-done)}.toast b{letter-spacing:.06em;text-transform:uppercase;margin-bottom:2px;font-size:12px;display:block}.toast .tx{cursor:pointer;color:var(--bzb-text-muted);background:0 0;border:none;font-size:15px;position:absolute;top:6px;right:8px}table.t{border-collapse:collapse;background:#fff;width:100%;font-size:14px}table.t th{background:var(--bzb-indigo);color:#fff;text-align:left;white-space:nowrap;padding:8px 10px;font-size:12px;font-weight:700}table.t th:first-child{border-top-left-radius:10px}table.t th:last-child{border-top-right-radius:10px}table.t td{border-bottom:2px solid var(--bzb-bg-soft);vertical-align:top;padding:7px 10px}table.t tr.arch td{color:#9a9a94}table.t tr:hover td{background:var(--bzb-gold-10)}.tablewrap{border:2px solid var(--bzb-bg-mid);background:#fff;border-radius:12px;overflow-x:auto}.diff-old{color:#9a2a20;word-break:break-word;text-decoration:line-through;text-decoration-thickness:1px}.diff-new{color:var(--st-done);word-break:break-word;font-weight:600}.toolbar{border:2px solid var(--bzb-bg-mid);border-radius:var(--bzb-radius-card);background:#fff;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:12px;padding:10px 12px;display:flex}.toolbar .in{width:auto}.toolbar .search{flex:1;min-width:220px}.group{margin-bottom:14px}.ghead{color:#fff;background:var(--bzb-blue);border-radius:12px 12px 0 0;align-items:center;gap:10px;padding:8px 14px;font-weight:700;display:flex}.ghead .n{opacity:.85;font-size:12.5px;font-weight:600}.ghead .btn{margin-left:auto}.gbody{border:2px solid var(--bzb-bg-mid);background:#fff;border-top:none;border-radius:0 0 12px 12px}.node{border-bottom:2px solid var(--bzb-bg-soft);cursor:pointer;align-items:center;gap:8px;min-height:42px;padding:7px 10px;display:flex}.node:hover{background:var(--bzb-gold-10)}.node.sel{background:var(--bzb-gold-20);box-shadow:inset 4px 0 0 var(--bzb-gold)}.node .tw{cursor:pointer;width:22px;height:22px;color:var(--bzb-indigo);background:0 0;border:none;flex:0 0 22px;padding:0;font-weight:800}.node .nm{text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-weight:600;overflow:hidden}.node .tp{color:var(--bzb-text-muted);text-transform:uppercase;letter-spacing:.06em;flex:none;font-size:11px;font-weight:700}.node .dt{color:var(--bzb-text-muted);white-space:nowrap;flex:none;font-size:12.5px}.node .who{color:var(--bzb-indigo);white-space:nowrap;font-size:12.5px;font-weight:600}.node .ops{opacity:0;flex:none;gap:2px;display:flex}.node:hover .ops,.node.sel .ops{opacity:1}.node .ops button{border:2px solid var(--bzb-bg-mid);cursor:pointer;color:var(--bzb-indigo);background:#fff;border-radius:8px;padding:0 6px;font-size:12px;font-weight:700;line-height:20px}.node .ops button:hover{border-color:var(--bzb-gold)}.prog{background:var(--bzb-bg-mid);border-radius:4px;flex:0 0 56px;width:56px;height:8px;overflow:hidden}.prog i{background:var(--st-done);height:100%;display:block}@media (max-width:800px){.node .dt,.node .prog,.node .tp{display:none}}.tl{border-left:3px solid var(--bzb-bg-mid);margin:0 0 0 6px;padding:0;list-style:none}.tl li{padding:4px 0 12px 16px;position:relative}.tl li:before{content:"";border:3px solid var(--bzb-indigo);background:#fff;border-radius:50%;width:11px;height:11px;position:absolute;top:9px;left:-8px}.tl li.slip:before{border-color:var(--st-risk)}.tl .when{color:var(--bzb-text-muted);font-size:12px}.tl .chg{margin-top:2px;font-size:13.5px}.tl .why{color:var(--bzb-text-muted);margin-top:2px;font-size:13px;font-style:italic}.batch{border:2px solid var(--bzb-bg-mid);background:#fff;border-radius:12px;margin-bottom:10px;padding:10px 14px}.batch .bh{flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:6px;font-size:13px;display:flex}.center{background:linear-gradient(135deg,#183e6c 0%,#0f2a4a 100%);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.logincard{border-top:6px solid var(--bzb-gold);background:#fff;border-radius:20px;width:400px;max-width:100%;padding:28px 28px 22px}.logincard .brand{margin-bottom:16px}.logincard h1{margin-bottom:4px;font-size:22px}.empty{text-align:center;color:var(--bzb-text-muted);padding:26px;font-size:14px}.kbd{border:2px solid var(--bzb-bg-mid);border-radius:6px;padding:0 5px;font-size:11px;font-weight:700}.copyrow{align-items:stretch;gap:6px;display:flex}.copyrow code{word-break:break-all;flex:1;padding:8px 10px;display:block}
