:root{--bg:#f7f5f0;--surface:#fff;--ink:#1d1f24;--muted:#6b6f78;--line:#e6e2d9;--accent:#b4232c;--accent-ink:#fff;--accent-soft:#f6e7e5;
--sans:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,"Helvetica Neue","PingFang SC","Hiragino Sans GB","Noto Sans SC","Microsoft YaHei",sans-serif;
--cjk:"PingFang SC","Hiragino Sans GB","Noto Sans SC","Noto Sans CJK SC","Microsoft YaHei","Source Han Sans SC",sans-serif;}
*{box-sizing:border-box}html,body{margin:0}
body{background:var(--bg);color:var(--ink);font:16px/1.55 var(--sans);-webkit-font-smoothing:antialiased}
a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}
.header{background:var(--surface);border-bottom:1px solid var(--line)}
.header-in{max-width:1080px;margin:0 auto;padding:12px 20px;display:flex;align-items:center;gap:16px}
.brand{display:flex;align-items:center;gap:10px;color:var(--ink)}.brand:hover{text-decoration:none}
.logo{width:38px;height:38px;border-radius:9px;background:var(--accent);color:#fff;display:grid;place-items:center;font:600 24px/1 var(--cjk)}
.wordmark{font-weight:650;font-size:18px;letter-spacing:-.01em}.wordmark span{color:var(--muted);font-weight:450}
.hsearch{flex:1;max-width:460px;margin-left:auto}
.nav{display:flex;gap:14px;font-size:15px;align-items:center}
.searchbox{display:flex;background:var(--surface);border:1px solid var(--line);border-radius:10px;overflow:hidden}
.searchbox:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
.searchbox input{flex:1;min-width:0;border:0;padding:10px 14px;font:16px var(--sans);background:transparent;outline:none}
.searchbox button,.btn{border:0;background:var(--accent);color:var(--accent-ink);font:600 15px var(--sans);padding:0 18px;cursor:pointer}
.btn{display:inline-block;padding:10px 18px;border-radius:10px}.btn:hover{text-decoration:none;filter:brightness(1.07)}
.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}
.nav .btn{padding:7px 14px}
.layout{max-width:1080px;margin:0 auto;padding:28px 20px;display:grid;grid-template-columns:220px 1fr;gap:28px}
.side{font-size:15px}.side h3{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin:0 0 8px}
.side ul{list-style:none;margin:0 0 20px;padding:0}.side li a{display:block;padding:7px 10px;border-radius:8px;color:var(--ink)}
.side li a:hover{background:var(--accent-soft);text-decoration:none}.side li a.on{background:var(--accent-soft);color:var(--accent);font-weight:600}
.side .who{color:var(--ink);font-size:14px;font-weight:600;margin:0 0 10px;padding:0 10px;word-break:break-all}
.side li a .gear{display:inline-block;vertical-align:-2px;margin-right:4px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:22px}
.results-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:14px}
.results-head h1{font-size:20px;margin:0;font-weight:600}.results-head h1 b{font-family:var(--cjk)}.count{color:var(--muted);font-size:14px}
.entry{display:grid;grid-template-columns:auto 1fr auto;gap:6px 22px;padding:20px 0;border-top:1px solid var(--line)}
.entry:first-of-type{border-top:0;padding-top:4px}
.hz{font:500 44px/1.1 var(--cjk);letter-spacing:.04em}.hz small{display:block;font-size:14px;color:var(--muted);letter-spacing:0;margin-top:6px;font-family:var(--sans)}
.py{font-size:19px;font-weight:600;color:var(--accent)}
.defs{margin:6px 0 0;padding-left:20px}.defs li{margin:2px 0}
.entry input[type=checkbox]{width:18px;height:18px;margin-top:8px;accent-color:var(--accent)}
#searchMore{margin-top:8px}
#bookmarkAdd{margin-top:16px;padding-top:16px;border-top:1px solid var(--line)}
.footer{max-width:1080px;margin:0 auto;padding:24px 20px 40px;color:var(--muted);font-size:14px;display:flex;gap:16px;flex-wrap:wrap;align-items:center}
.footer a{color:var(--muted)}
/* Home .xlink uses margin-top. The footer icon shares the row with the text links. */
.footer a.xlink{display:inline-flex;align-items:center;gap:6px;white-space:nowrap;margin-top:0;line-height:1;vertical-align:middle}
.footer svg{display:block;vertical-align:middle}
/* home */
.hero{max-width:640px;margin:0 auto;padding:12vh 20px 40px;text-align:center}
.hero .logo{width:84px;height:84px;font-size:54px;border-radius:20px;margin:0 auto 22px}
.hero h1{font-size:40px;letter-spacing:-.025em;margin:0;font-weight:700}
.hero p{color:var(--muted);margin:8px 0 28px;font-size:18px}
.hero .searchbox{border-radius:14px}.hero .searchbox input{padding:16px 18px;font-size:18px}
.hero .hint{font-size:14px;color:var(--muted);margin-top:10px}
.hero .actions{display:flex;gap:10px;justify-content:center;margin-top:30px}
.xlink{display:inline-flex;gap:6px;align-items:center;margin-top:28px;color:var(--muted);font-size:14px}
/* forms and account pages inside the card */
.card h1{font-size:22px;font-weight:650;margin:0 0 12px}
.card h2{font-size:18px;font-weight:600;margin:16px 0 8px}
.card h3{font-size:14px;margin:14px 0 4px}
.card p{margin:8px 0}
.card input[type=text],.card input[type=password],.card input[type=file],.card select{font:16px var(--sans);padding:8px 10px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink);max-width:100%}
.card input[type=submit],.card button{border:0;background:var(--accent);color:var(--accent-ink);font:600 15px var(--sans);padding:8px 16px;border-radius:10px;cursor:pointer}
.card input[type=submit]:hover,.card button:hover{filter:brightness(1.07)}
.simpleFormField input,#register input[type=text],#register input[type=password]{display:block;width:100%;max-width:420px}
/* One gap between the last field and the submit control on login, register, forgot, reset, settings, and import. */
.simpleFormSubmit,#registerSubmit,#settings input[type=submit],#import input[type=submit]{margin-top:16px}
.errors{color:var(--accent);background:var(--accent-soft);border-radius:8px;padding:8px 12px;margin:8px 0}
.errors ul{margin:4px 0 0;padding-left:18px}
.card table{width:100%;border-collapse:collapse}
.card td,.card th{padding:8px 6px;border-top:1px solid var(--line);vertical-align:top;text-align:left}
.card tr.odd td{background:#faf8f4}
#bookmarks ul,#history ul,#fullHistory ul{list-style:none;margin:12px 0;padding:0}
#bookmarks li,#history li,#fullHistory li{padding:8px 0;border-top:1px solid var(--line)}
#bookmarks .up a,#bookmarks .row>a:first-child,#history li a,#fullHistory .row>a:first-child,#searchMore a{color:var(--accent);cursor:pointer}
#bookmarks .up a:hover,#bookmarks .row>a:first-child:hover,#history li a:hover,#fullHistory .row>a:first-child:hover,#searchMore a:hover{background:var(--accent-soft);text-decoration:underline}
.row{display:flex;justify-content:space-between;align-items:baseline;gap:12px}
.note{color:var(--muted);font-size:.9em;font-style:italic}
.field{margin:8px 0}
.messages{margin:12px 0;padding-left:18px}
#bookmarks .entry:first-of-type{border-top:1px solid var(--line);padding-top:20px}
@media (max-width:760px){
.header-in{flex-wrap:wrap;padding:10px 16px}.hsearch{order:3;flex-basis:100%;max-width:none}.wordmark span{display:none}
.layout{grid-template-columns:1fr;padding:16px;gap:16px}
.side{order:-1}.side h3,.side .who{display:none}.side ul{display:flex;gap:6px;overflow-x:auto;margin:0}.side li a{white-space:nowrap;border:1px solid var(--line);background:var(--surface)}
.card{padding:16px}.entry{grid-template-columns:1fr auto}.entry .body{grid-column:1/-1}.hz{font-size:38px}
.hero{padding-top:8vh}.hero h1{font-size:30px}}
