:root{--bg:oklch(97% .009 155);--paper:oklch(99% .004 155);--ink:oklch(26% .026 155);--muted:oklch(48% .023 155);--line:oklch(88% .016 155);--green:oklch(40% .074 155);--soft:oklch(92% .035 155);--red:oklch(45% .15 25);--space-sm:8px;--space-md:16px;--space-lg:24px;--space-xl:48px}
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:"PingFang SC","Noto Sans CJK SC","Microsoft YaHei",sans-serif;font-size:14px;line-height:1.6}h1,h2,h3,p{margin:0}h1{font-size:32px;font-weight:600;letter-spacing:-.04em}h2{font-size:22px;font-weight:600}h3{font-size:17px;font-weight:600}button,input,select,textarea{font:inherit}button{border:1px solid var(--line);background:var(--paper);padding:9px 16px;border-radius:6px;color:var(--ink);cursor:pointer;transition:background .15s}button:hover{background:var(--soft)}button:disabled{opacity:.55;cursor:wait}button.primary{background:var(--green);color:var(--paper);border-color:var(--green)}button.danger{color:var(--red)}button.quiet{border-color:transparent;background:transparent;padding:6px 10px}button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid oklch(65% .1 155);outline-offset:3px}a{color:var(--green)}label{display:flex;flex-direction:column;gap:8px;font-weight:500}input,select,textarea{width:100%;background:var(--paper);color:var(--ink);border:1px solid var(--line);padding:10px 12px;border-radius:6px;min-width:0}textarea{min-height:120px;resize:vertical}input[type=checkbox]{width:auto}code,pre,.mono{font-family:"SFMono-Regular",Consolas,monospace;font-size:12px}code{word-break:break-all}pre{background:var(--ink);color:var(--paper);padding:24px;overflow:auto;border-radius:6px;line-height:1.8;white-space:pre-wrap;word-break:break-word}.login{max-width:580px;margin:12vh auto;padding:24px}.login h1{font-size:44px;line-height:1.25;margin:56px 0 20px}.login form{max-width:360px;margin-top:40px;display:grid;gap:16px}.wordmark{font-size:21px;font-weight:600;letter-spacing:-.03em}.wordmark span{display:block;font-size:10px;letter-spacing:.13em;color:var(--muted);margin-top:4px}.login .wordmark span{display:inline;margin-left:12px}#workspace{display:grid;grid-template-columns:224px 1fr;min-height:100vh}aside{padding:36px 24px;border-right:1px solid var(--line);background:var(--paper);display:flex;flex-direction:column;gap:48px;position:sticky;top:0;height:100vh}nav{display:flex;flex-direction:column;gap:8px}nav button{text-align:left;border-color:transparent;background:transparent;padding:11px 12px}nav button.active{background:var(--soft);color:var(--green);font-weight:600}.aside-footer{margin-top:auto;font-size:12px;color:var(--muted)}.aside-footer button{display:block;margin-top:16px}.dot{display:inline-block;width:7px;height:7px;background:var(--green);border-radius:50%;margin-right:7px}main{padding:40px clamp(20px,4vw,64px);min-width:0;max-width:1600px}header{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:40px}.eyebrow{font-size:10px;letter-spacing:.14em;color:var(--muted);margin-bottom:8px}.intro{max-width:70ch;color:var(--muted);margin-bottom:32px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:32px 0 16px}.summary{display:flex;flex-wrap:wrap;gap:32px;padding:24px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);margin-bottom:32px}.summary div{min-width:110px}.summary b{display:block;font-size:28px;font-weight:500}.summary span{color:var(--muted);font-size:12px}.table-wrap{width:100%;overflow-x:auto}table{width:100%;border-collapse:collapse;text-align:left}th{font-size:12px;color:var(--muted);font-weight:500;background:var(--soft);padding:12px 16px;white-space:nowrap}td{padding:18px 16px;border-bottom:1px solid var(--line);vertical-align:top}td small{display:block;color:var(--muted);margin-top:4px;max-width:320px}.badge{display:inline-block;padding:3px 9px;font-size:12px;border-radius:4px;background:var(--soft);white-space:nowrap}.badge.failed,.badge.uncertain{background:oklch(94% .028 25);color:var(--red)}.badge.accepted{background:var(--soft);color:var(--green)}.actions{display:flex;gap:8px;flex-wrap:wrap}.form-panel{background:var(--paper);border:1px solid var(--line);padding:24px;margin:24px 0;border-radius:8px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px}.form-grid .wide{grid-column:1/-1}form .actions{margin-top:24px}.check-row{display:flex;gap:16px;flex-wrap:wrap}.check-row label{flex-direction:row;align-items:center;font-size:14px}.help,small{font-size:12px;color:var(--muted);font-weight:400}.empty{padding:48px 24px;border:1px dashed var(--line);color:var(--muted);text-align:center}.template{padding:24px 0;border-bottom:1px solid var(--line)}.template p{margin-top:12px;white-space:pre-wrap}.template .fields{margin-top:16px;display:flex;flex-wrap:wrap;gap:12px}.field{background:var(--soft);padding:8px 12px;border-radius:4px;font-size:12px}.template code{color:var(--muted)}.secret{border:1px solid var(--green);padding:24px;background:var(--soft);margin-bottom:24px}.secret code{display:block;font-size:15px;margin:12px 0}.filters{display:flex;gap:12px;margin:20px 0}.filters select{max-width:230px}.error{color:var(--red)}.preview{background:var(--soft);padding:24px;margin-top:24px;white-space:pre-wrap}.message-detail{padding:24px;background:var(--paper);border:1px solid var(--line);margin-top:24px}.message-detail dl{display:grid;grid-template-columns:100px 1fr;gap:12px}.message-detail dt{color:var(--muted)}.message-detail dd{margin:0;overflow-wrap:anywhere}#notice{position:fixed;bottom:24px;right:24px;max-width:480px;padding:16px 24px;background:var(--ink);color:var(--paper);border-radius:6px;z-index:10}footer{margin-top:64px;padding-top:24px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}[hidden]{display:none!important}@media(max-width:900px){#workspace{grid-template-columns:1fr}aside{height:auto;position:static;padding:20px;gap:20px;border-right:0;border-bottom:1px solid var(--line)}aside .wordmark span{display:inline;margin-left:12px}nav{flex-direction:row;flex-wrap:wrap;gap:4px}nav button{padding:8px 10px}.aside-footer{display:none}main{padding:24px 20px}header{margin-bottom:24px}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}h1{font-size:28px}.summary{gap:24px}.login h1{font-size:36px}td,th{padding:12px}.filters{flex-wrap:wrap}.filters select{max-width:none}#notice{left:16px;right:16px;bottom:16px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
