:root{font-family:system-ui,"Microsoft JhengHei",sans-serif;color:#182f50;background:#f3f5f8;font-size:16px;line-height:1.7;--blue:#183e6c;--gold:#aa8238;--border:#dce2ea}*{box-sizing:border-box}body{margin:0}header{background:#fff;border-bottom:1px solid var(--border);padding:20px 4vw;display:flex;align-items:center;gap:20px}.brand{font-size:24px;font-weight:900;letter-spacing:2px;color:var(--blue)}.brand span{font-size:16px;letter-spacing:1px;margin-left:10px}.badge{margin-left:auto;font-size:13px;background:#faf1d9;color:#765719;padding:5px 12px;border-radius:20px}main{max-width:1280px;margin:auto;padding:28px 24px 80px}h1{font-size:clamp(27px,4vw,38px);line-height:1.4;margin:8px 0 18px}h2{font-size:23px;margin:8px 0 16px}h3{font-size:18px}p{margin:10px 0}.intro{display:flex;justify-content:space-between;align-items:center;gap:25px;margin-bottom:25px}.eyebrow{color:#8d6c2c;letter-spacing:2px;font-size:13px;font-weight:700}.notice{background:#fff8e7;border-left:4px solid var(--gold);padding:16px 22px;white-space:nowrap}nav{display:flex;gap:10px;flex-wrap:wrap;margin:20px 0}.panel{background:#fff;border:1px solid var(--border);border-radius:16px;padding:24px;min-width:0}.compact{max-width:720px;margin:20px auto}.split{display:grid;grid-template-columns:285px minmax(0,1fr);gap:22px}button,input,select,textarea{font:inherit}button{border:1px solid #bdcbdc;background:#fff;color:var(--blue);border-radius:8px;padding:9px 15px;cursor:pointer}button:hover{background:#edf2f8}button:disabled{opacity:.45;cursor:not-allowed}button.primary,nav .active{background:var(--blue);color:#fff;border-color:var(--blue)}button.danger{color:#a33236;border-color:#d7a8aa}.muted{font-size:14px;color:#60718a}label{display:block;margin:15px 0}input,select,textarea{display:block;width:100%;border:1px solid #bac7d8;border-radius:8px;padding:10px;color:#1c314e;background:#fff}textarea{min-height:95px;resize:vertical}.check{display:flex;gap:12px;align-items:flex-start}.check input{width:auto;margin-top:6px}.task{display:block;width:100%;text-align:left;margin:12px 0;padding:15px}.task small{display:block;color:#61718a}.task.selected{background:#ecf2fa;border-color:var(--blue)}details{border-top:1px solid var(--border);margin-top:20px;padding-top:15px}summary{cursor:pointer;font-weight:600}.state{display:inline-block;background:#eef3fa;color:#20416f;padding:3px 12px;font-size:14px;border-radius:16px}.steps{display:flex;gap:7px;flex-wrap:wrap;margin:18px 0}.steps span{padding:4px 10px;background:#f1f3f6;font-size:13px;border-radius:4px}.steps .current{background:#f9edcb;color:#765719}.artifact{border-top:1px solid var(--border);margin-top:24px;padding-top:14px}video{display:block;width:100%;max-height:420px;background:#101923;border-radius:10px;margin:15px 0}.actions{display:flex;gap:10px;flex-wrap:wrap;margin-top:15px}table{width:100%;border-collapse:collapse;font-size:14px}th,td{text-align:left;padding:10px;border-bottom:1px solid var(--border);vertical-align:top}.table-scroll{overflow:auto}.metric-card{border-top:2px solid #b59859;margin-top:28px;padding-top:15px}.tree-node{border-left:2px solid #d1dcea;margin:10px 0 10px 12px;padding:5px 0 5px 15px;overflow-wrap:anywhere}.tree-head{font-weight:700;font-size:14px;color:#466481}.tree-node p{white-space:pre-wrap}.coverage{background:#f7f1e1;padding:12px;border-radius:7px}.sha{word-break:break-all;font-size:12px;color:#65758b}#message{position:fixed;bottom:20px;left:50%;transform:translateX(-50%);max-width:90vw;padding:14px 25px;background:#183e6c;color:#fff;border-radius:12px;box-shadow:0 6px 25px #183e6c25;z-index:10}#message:empty{display:none}#message.error{background:#912f36}footer{padding:22px;text-align:center;color:#66758a;font-size:13px;border-top:1px solid var(--border)}[hidden]{display:none!important}.retention{display:flex;gap:12px;flex-wrap:wrap}.retention span{background:#eef3fa;padding:6px 10px;border-radius:6px}@media(max-width:800px){.split{grid-template-columns:1fr}.intro{display:block}.notice{white-space:normal}header{flex-wrap:wrap;gap:8px}.brand{font-size:19px}main{padding:20px 14px 70px}.panel{padding:18px}nav button{flex:1}.badge{font-size:11px}}
