:root{font-family:system-ui,"Microsoft YaHei",sans-serif;color:#173c35;background:#f3f6f2}*{box-sizing:border-box}body{margin:0}main{max-width:980px;margin:0 auto;padding:32px 24px 80px}header,.heading,.actions{display:flex;justify-content:space-between;align-items:center;gap:16px}header{font-size:14px;color:#64776f}a{color:#245d50;text-decoration:none}a:hover{text-decoration:underline}.intro{padding:56px 0 32px;max-width:760px}h1{font-size:36px;line-height:1.4;margin:14px 0}h2{font-size:20px;margin:0 0 12px}.intro p:not(.eyebrow),.hint{line-height:1.9;color:#64776f}.eyebrow{font-size:14px;letter-spacing:2px}#workspace{background:white;border:1px solid #dde6df;border-radius:20px;padding:30px}.all{display:flex;gap:12px;align-items:center;margin-top:24px}.hint{font-size:13px}.cases{max-height:440px;overflow:auto;margin:18px 0 24px;border-top:1px solid #e6ece8}.case-row{display:flex;gap:14px;padding:16px 8px;border-bottom:1px solid #e6ece8;align-items:center}.case-row small{display:block;margin-top:6px;color:#64776f}input[type=search],input[readonly]{width:100%;padding:14px;border:1px solid #b8c9c0;border-radius:8px;font:inherit}input[type=checkbox]{width:18px;height:18px;accent-color:#245d50;flex:none}button{border:0;border-radius:8px;padding:12px 18px;font:inherit;cursor:pointer;background:#e3eee8;color:#173c35}.primary{background:#173c35;color:white}.secondary{background:#f1f5f2}button:disabled{opacity:.55;cursor:wait}.result{margin-top:28px;padding:24px;background:#edf6f0;border-radius:14px}.result input{font-family:monospace;font-size:14px}.actions{margin-top:16px;flex-wrap:wrap}.history{margin-top:36px}.grant{border-top:1px solid #e6ece8;padding:18px 0;display:flex;justify-content:space-between;gap:16px;align-items:center}.grant p{color:#64776f;font-size:13px}#error{padding:16px;border-radius:8px;background:#fff0e9;color:#9a4225;margin-bottom:18px}[hidden]{display:none!important}@media(max-width:600px){main{padding:20px 14px 48px}.intro{padding:34px 4px 22px}h1{font-size:28px}#workspace{padding:20px 16px}header span{display:none}.grant{align-items:flex-start}}
