:root{
  --paper:#f4f1ea;--paper-2:#ebe6db;--ink:#1c1b19;--ink-2:#55524b;--line:#cfc8b8;--accent:#c2410c;
  --mono: ui-monospace,"SF Mono",Menlo,Consolas,"Roboto Mono",monospace;
  --serif:"Noto Serif SC","Source Han Serif SC","Songti SC","STSong",serif;
  --sans:-apple-system,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Noto Sans SC",sans-serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{background:var(--paper);color:var(--ink);font-family:var(--sans);font-size:15px;line-height:1.65}
a{color:inherit}
.wrap{max-width:1080px;margin:0 auto;padding:0 20px}
header{border-bottom:1px solid var(--ink)}
.bar{display:flex;align-items:center;justify-content:space-between;height:56px}
.logo{font-family:var(--serif);font-weight:700;font-size:20px;letter-spacing:1px;text-decoration:none}
.logo small{font-family:var(--mono);font-weight:400;font-size:11px;color:var(--ink-2);margin-left:6px;letter-spacing:0}
.bar nav a,.bar nav button{text-decoration:none;font-size:14px;margin-left:18px;color:var(--ink-2);background:none;border:none;cursor:pointer;font-family:inherit}
.bar nav a:hover,.bar nav button:hover{color:var(--ink)}
.muted{color:var(--ink-2);font-size:13px}
.mono{font-family:var(--mono)}

input[type=text],input[type=password]{width:100%;padding:11px 12px;font-size:15px;border:1px solid var(--ink);background:#fff;font-family:inherit;border-radius:0;outline:none}
input:focus{box-shadow:inset 0 0 0 1px var(--ink)}
.btn{display:inline-block;text-align:center;padding:11px 18px;font-size:14px;cursor:pointer;text-decoration:none;
     border:1px solid var(--ink);background:transparent;color:var(--ink);font-family:inherit;border-radius:0}
.btn:hover{background:var(--ink);color:var(--paper)}
.btn.solid{background:var(--ink);color:var(--paper)}
.btn.solid:hover{background:var(--accent);border-color:var(--accent);color:#fff}
.btn.sm{padding:5px 10px;font-size:12px}
.btn[disabled]{opacity:.5;cursor:default}
.err{color:var(--accent);font-size:13px;min-height:20px}

.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%,20px);opacity:0;pointer-events:none;z-index:9;
       background:var(--ink);color:var(--paper);padding:10px 18px;font-size:13px;transition:.2s;max-width:90vw}
.toast.show{opacity:1;transform:translate(-50%,0)}
footer{border-top:1px solid var(--ink);padding:28px 0 40px;font-size:12px;color:var(--ink-2);margin-top:60px}
