:root{
  --fg:#0A0A0A; --muted:#737373; --line:#E5E5E5; --soft:#F5F5F5;
  --btn:#333333; --btn-fg:#FAFAFA; --ring:#A1A1A1; --err:#E7000B;
}
*{margin:0;padding:0;box-sizing:border-box}
html,body{background:#FFFFFF;color:var(--fg)}
body{font-family:ui-sans-serif,system-ui,-apple-system,"PingFang SC","Microsoft YaHei",sans-serif;
     font-size:14px;line-height:20px;font-weight:400;-webkit-font-smoothing:antialiased}
.wrap{max-width:768px;margin:0 auto;padding-block:40px 64px;padding-inline:24px}
.wrap.wide{max-width:960px}
.mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace}
.muted{color:var(--muted)}
.small{font-size:12px;line-height:16px}

h1{font-size:18px;line-height:28px;font-weight:500}
h2{font-size:14px;line-height:20px;font-weight:500}

.btn{display:inline-flex;align-items:center;justify-content:center;height:32px;padding:0 12px;border-radius:10px;
     border:1px solid transparent;font:inherit;font-weight:500;cursor:pointer;text-decoration:none;white-space:nowrap;background:none;color:var(--fg)}
.btn:active{transform:translateY(1px)}
.btn:focus-visible{outline:none;border-color:var(--ring);box-shadow:0 0 0 3px rgba(161,161,161,.5)}
.btn[disabled]{opacity:.5;pointer-events:none}
.primary{background:var(--btn);color:var(--btn-fg)}
.outline{background:#fff;border-color:var(--line)}
.outline:hover,.ghost:hover{background:var(--soft)}
.danger{background:rgba(231,0,11,.1);color:var(--err)}
.danger:hover{background:rgba(231,0,11,.2)}
.sm{height:28px;padding:0 10px;border-radius:8px;font-size:12.8px}

input[type=text],input[type=password],input[type=url],textarea,select{
  width:100%;font:inherit;color:var(--fg);background:transparent;border:1px solid var(--line);border-radius:10px;
  padding:4px 10px;min-height:32px}
textarea{padding:8px 10px;min-height:64px;resize:vertical}
input:focus,textarea:focus,select:focus{outline:none;border-color:var(--ring);box-shadow:0 0 0 3px rgba(161,161,161,.5)}
::placeholder{color:var(--muted)}
label{display:block;color:var(--muted);margin-bottom:4px}
.field{margin-top:12px}

.panel{border:1px solid var(--line);border-radius:8px;padding:16px}
.err{border-radius:8px;background:rgba(231,0,11,.1);color:var(--err);padding:12px;margin-top:12px}
.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.grow{flex:1;min-width:0}
