:root{
  --paper:#FAFAF8; --card:#FFFFFF; --ink:#1F2421; --ink-soft:#5C625C; --ink-mute:#8A8F89;
  --line:#E8E6DF; --line-strong:#D9D6CD; --accent:#2A6F6B; --accent-soft:#E4EFED; --accent-ink:#194C48;
  --brick:#B44A32; --brick-soft:#F6E7E2; --amber:#9A6B12; --amber-soft:#F5ECD8;
  --pine:#2A6F6B; --pine-soft:#E1EEEC; --nav:#F4F2EC; --radius:12px;
}
@media (prefers-color-scheme:dark){
  :root{
    --paper:#161815; --card:#1F221E; --ink:#ECEDE8; --ink-soft:#B4B8B1; --ink-mute:#868B83;
    --line:#2E322C; --line-strong:#3A3F38; --accent:#4FB3AC; --accent-soft:#22302E; --accent-ink:#8FD6CF;
    --brick:#E08a6f; --brick-soft:#33241f; --amber:#D6A94E; --amber-soft:#302a1c;
    --pine:#4FB3AC; --pine-soft:#22302E; --nav:#1B1E1A;
  }
}
*{box-sizing:border-box}
html,body{margin:0}
body{font-family:"Hiragino Kaku Gothic ProN","Hiragino Sans","Noto Sans JP","Yu Gothic",system-ui,sans-serif;
  background:var(--paper); color:var(--ink); line-height:1.6; font-size:14px; -webkit-font-smoothing:antialiased}
button{font-family:inherit;cursor:pointer}
input,textarea,select{font-family:inherit}
a{color:var(--accent)}

.topbar{display:flex;align-items:center;gap:12px;padding:13px 20px;border-bottom:1px solid var(--line);background:var(--card)}
.topbar .logo{width:26px;height:26px;border-radius:7px;background:var(--accent);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;text-decoration:none}
.topbar h1{font-size:16px;margin:0;font-weight:600}
.topbar nav{margin-left:auto;display:flex;gap:4px}
.topbar nav a{color:var(--ink-soft);text-decoration:none;font-size:13px;padding:7px 12px;border-radius:8px}
.topbar nav a:hover{background:var(--paper)}
.topbar nav a.on{background:var(--accent-soft);color:var(--accent-ink);font-weight:600}

.toast{position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(16px);background:var(--ink);color:var(--paper);
  padding:10px 18px;border-radius:10px;font-size:13px;opacity:0;pointer-events:none;transition:.22s;z-index:50}
.toast.show{opacity:1;transform:translateX(-50%)}
@media (prefers-reduced-motion:reduce){*{transition:none!important}}
