:root{
  color-scheme:dark;
  --bg:#0d1118;
  --bg-soft:#121824;
  --fg:#f5f7fb;
  --muted:#aab4c5;
  --card:#171f2d;
  --card-2:#1c2636;
  --line:#2c394c;
  --accent:#8dd3ff;
  --accent-2:#ffd36a;
  --danger:#ff8f8f;
  --ok:#9ee6b7;
  --shadow:0 18px 60px rgba(0,0,0,.28);
  --radius:20px;
  --radius-sm:12px;
  --max:1120px;
}
html[data-theme="light"]{
  color-scheme:light;
  --bg:#f5f3ee;
  --bg-soft:#fbfaf7;
  --fg:#171a20;
  --muted:#657080;
  --card:#ffffff;
  --card-2:#f2f5f9;
  --line:#d9dee8;
  --accent:#0b6fae;
  --accent-2:#a76500;
  --danger:#a91f1f;
  --ok:#126d3a;
  --shadow:0 18px 50px rgba(31,41,55,.12);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  background:
    radial-gradient(circle at 12% -8%, color-mix(in srgb,var(--accent) 18%,transparent), transparent 34rem),
    radial-gradient(circle at 90% 6%, color-mix(in srgb,var(--accent-2) 14%,transparent), transparent 30rem),
    var(--bg);
  color:var(--fg);
  font-family:system-ui,-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic",sans-serif;
  line-height:1.78;
  letter-spacing:.015em;
}
a{color:var(--accent);text-underline-offset:.18em}
a:hover{text-decoration-thickness:.14em}
img{max-width:100%}
input,textarea,select,button{
  font:inherit;
  border:1px solid var(--line);
  border-radius:12px;
  padding:.72rem .82rem;
  background:var(--bg-soft);
  color:var(--fg);
}
input:focus,textarea:focus,select:focus{
  outline:2px solid color-mix(in srgb,var(--accent) 55%,transparent);
  border-color:var(--accent);
}
button,.button,.primary-link{
  background:linear-gradient(135deg,var(--accent),color-mix(in srgb,var(--accent) 70%,white));
  color:#06111c;
  border:0;
  font-weight:800;
  text-decoration:none;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:.4rem;
  padding:.72rem 1rem;
  border-radius:999px;
  cursor:pointer;
  box-shadow:0 10px 24px color-mix(in srgb,var(--accent) 18%,transparent);
}
button:hover,.button:hover,.primary-link:hover{transform:translateY(-1px);text-decoration:none}
button.danger,.danger button{background:transparent;color:var(--danger);border:1px solid color-mix(in srgb,var(--danger) 48%,var(--line));box-shadow:none}
.site-header{
  position:sticky;
  top:0;
  z-index:10;
  border-bottom:1px solid color-mix(in srgb,var(--line) 75%,transparent);
  background:color-mix(in srgb,var(--card) 86%,transparent);
  backdrop-filter:blur(18px);
}
.site-header-inner,.admin-header-inner{
  max-width:var(--max);
  margin:0 auto;
  padding:1rem;
  display:flex;
  justify-content:space-between;
  gap:1rem;
  align-items:center;
}
.brand{display:flex;align-items:center;gap:.9rem;min-width:0}
.brand-text{min-width:0}
.site-title{
  color:var(--fg);
  font-size:clamp(1.35rem,3vw,2rem);
  line-height:1.1;
  font-weight:900;
  text-decoration:none;
  letter-spacing:.02em;
}
.subtitle{color:var(--muted);font-size:.92rem;margin-top:.15rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:40rem}
.site-image{width:64px;height:64px;object-fit:cover;border-radius:18px;border:1px solid var(--line);background:var(--bg-soft)}
.header-tools{display:flex;gap:.55rem;align-items:center;flex-wrap:wrap;justify-content:flex-end}
.search{display:flex;gap:.4rem;align-items:center}
.search input{width:min(14rem,38vw)}
.ghost-link,.ghost-button{
  border:1px solid var(--line);
  background:color-mix(in srgb,var(--card-2) 88%,transparent);
  color:var(--fg);
  box-shadow:none;
  text-decoration:none;
  border-radius:999px;
  padding:.68rem .9rem;
  font-weight:700;
}
.view-settings{
  border-bottom:1px solid var(--line);
  background:color-mix(in srgb,var(--card) 92%,transparent);
}
.view-settings-inner{
  max-width:var(--max);
  margin:0 auto;
  padding:1rem;
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
  gap:.8rem;
}
.view-settings label{margin:0;color:var(--muted);font-size:.86rem}
.view-settings select{width:100%;margin-top:.25rem}
.tabs-wrap{border-bottom:1px solid var(--line)}
.tabs{
  max-width:var(--max);
  margin:0 auto;
  padding:.85rem 1rem;
  display:flex;
  gap:.55rem;
  flex-wrap:wrap;
}
.tab{
  padding:.55rem .88rem;
  background:color-mix(in srgb,var(--card) 92%,transparent);
  border:1px solid var(--line);
  border-radius:999px;
  color:var(--fg);
  text-decoration:none;
  font-weight:700;
}
.tab:hover{border-color:var(--accent);text-decoration:none}
.content,.setup{
  max-width:var(--max);
  margin:1.7rem auto;
  padding:0 1rem;
}
.content{display:block}
.post-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem}
.post-card,.post-detail,.static-body,.wikiadd article,.panel,table,form,.setup{
  background:color-mix(in srgb,var(--card) 94%,transparent);
  border:1px solid var(--line);
  border-radius:var(--radius);
  padding:1.15rem;
  margin:1rem 0;
  box-shadow:var(--shadow);
}
.post-card{transition:transform .18s ease,border-color .18s ease}
.post-card:hover{transform:translateY(-2px);border-color:color-mix(in srgb,var(--accent) 60%,var(--line))}
.post-card h2,.post-detail h1,.static-body h1,.wikiadd h1{margin-top:0;line-height:1.22}
time,.muted,.hint{color:var(--muted)}
.post-body{font-size:1.04rem}.post-body p{margin:1rem 0}
label{display:block;margin:.85rem 0;font-weight:700}
label span,.field-help{display:block;color:var(--muted);font-size:.86rem;font-weight:500;margin-top:.2rem}
label input,label textarea,label select{display:block;width:100%;margin-top:.35rem}
textarea{min-height:8rem;resize:vertical}
fieldset{border:1px solid var(--line);border-radius:var(--radius);padding:1rem;margin:1rem 0;background:color-mix(in srgb,var(--card-2) 48%,transparent)}
legend{padding:0 .5rem;color:var(--accent-2);font-weight:900}
table{width:100%;border-collapse:separate;border-spacing:0;overflow:hidden;display:table;padding:0}
th,td{border-bottom:1px solid var(--line);padding:.75rem;text-align:left;vertical-align:top}
th{color:var(--muted);font-size:.84rem;background:color-mix(in srgb,var(--card-2) 65%,transparent)}
tr:last-child td{border-bottom:0}
.inline{display:inline;margin:0;padding:0;border:0;background:transparent;box-shadow:none}
.inline button{padding:.4rem .65rem;font-size:.9rem}
.images{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:1rem}.images img{width:100%;height:auto;border-radius:14px;border:1px solid var(--line)}
.site-footer{border-top:1px solid var(--line);padding:2rem 1rem;margin-top:3rem;text-align:center;color:var(--muted);background:color-mix(in srgb,var(--card) 55%,transparent)}
.site-footer nav,.sns{display:flex;justify-content:center;gap:.8rem;flex-wrap:wrap}.cms-credit{display:block;margin-top:1rem;color:var(--muted)}
.flash,.alert{max-width:var(--max);margin:1rem auto;padding:.9rem 1rem;border-radius:16px;background:color-mix(in srgb,var(--accent) 20%,var(--card));border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line))}
.cookie-banner{position:fixed;left:1rem;right:1rem;bottom:1rem;max-width:var(--max);margin:auto;background:var(--card);border:1px solid var(--line);border-radius:20px;padding:1rem;display:flex;gap:.7rem;align-items:center;flex-wrap:wrap;box-shadow:var(--shadow)}
.admin{background:var(--bg)}
.admin-shell{min-height:100vh;display:grid;grid-template-columns:260px minmax(0,1fr)}
.admin-sidebar{position:sticky;top:0;height:100vh;padding:1rem;border-right:1px solid var(--line);background:color-mix(in srgb,var(--card) 88%,transparent);backdrop-filter:blur(16px);overflow:auto}
.admin-logo{display:block;color:var(--fg);text-decoration:none;font-weight:900;font-size:1.25rem;line-height:1.25;margin:.3rem 0 1rem}.admin-logo small{display:block;color:var(--muted);font-size:.78rem;font-weight:600;margin-top:.2rem}.admin-nav{display:grid;gap:.45rem}.admin-nav a{display:flex;align-items:center;gap:.55rem;padding:.72rem .82rem;border:1px solid transparent;border-radius:14px;color:var(--fg);text-decoration:none;font-weight:800}.admin-nav a:hover,.admin-nav a.is-active{background:var(--card-2);border-color:var(--line);text-decoration:none}.admin-sidebar-footer{margin-top:1.2rem;display:grid;gap:.5rem}.admin-content{min-width:0}.admin-header{position:sticky;top:0;z-index:6;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(16px)}.admin-header-inner{padding:.85rem 1.25rem}.admin-title{font-size:1.05rem;font-weight:900}.admin-main{max-width:1180px;margin:0 auto;padding:1.25rem}.admin-hero{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(240px,.8fr);gap:1rem;align-items:stretch;margin-bottom:1rem}.admin-card-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:1rem}.admin-card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:1rem;box-shadow:var(--shadow)}.admin-card h2,.admin-card h3{margin:.15rem 0 .35rem;line-height:1.25}.admin-card p{color:var(--muted);margin:.4rem 0}.admin-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.9rem}.admin-section{margin:1.2rem 0}.admin-section-header{display:flex;justify-content:space-between;gap:1rem;align-items:end;margin:.5rem 0}.admin-section-header h2{margin:0}.table-wrap{overflow:auto;border:1px solid var(--line);border-radius:var(--radius);background:var(--card);box-shadow:var(--shadow)}.table-wrap table{margin:0;border:0;border-radius:0;box-shadow:none;min-width:720px}.badge{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;padding:.22rem .55rem;color:var(--muted);font-size:.84rem;font-weight:800}.badge-on{color:var(--ok);border-color:color-mix(in srgb,var(--ok) 42%,var(--line))}.badge-off{color:var(--danger);border-color:color-mix(in srgb,var(--danger) 42%,var(--line))}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 1rem}.form-grid .wide{grid-column:1/-1}.form-actions{display:flex;gap:.7rem;align-items:center;flex-wrap:wrap;margin-top:1rem}.admin-images figure{background:var(--bg-soft);padding:.75rem;border:1px solid var(--line);border-radius:16px;margin:0}.login-card{max-width:520px;margin:10vh auto}.setup h1{margin-top:0}
@media(max-width:860px){.admin-shell{display:block}.admin-sidebar{position:relative;height:auto;border-right:0;border-bottom:1px solid var(--line)}.admin-nav{grid-template-columns:repeat(auto-fit,minmax(120px,1fr))}.admin-hero{grid-template-columns:1fr}.form-grid{grid-template-columns:1fr}.site-header-inner{align-items:flex-start;flex-direction:column}.header-tools{justify-content:flex-start}.search input{width:min(16rem,58vw)}}
@media(max-width:700px){body.large{font-size:120%}.tabs{overflow:auto;flex-wrap:nowrap}.tab{white-space:nowrap}.post-list{grid-template-columns:1fr}.content,.admin-main,.setup{padding:0 .8rem}.site-title{font-size:1.45rem}table{display:block;overflow:auto}.admin-header-inner{align-items:flex-start}.subtitle{white-space:normal}.search{width:100%}.search input{flex:1;width:auto}}

/* v3: separated language switcher and local display settings */
.language-switcher{position:relative;display:inline-flex;align-items:center}
.language-button{
  min-width:3.2rem;
  text-transform:lowercase;
  background:color-mix(in srgb,var(--accent) 18%,var(--card-2));
  color:var(--fg);
  border:1px solid color-mix(in srgb,var(--accent) 42%,var(--line));
  box-shadow:none;
  padding:.68rem .9rem;
}
.language-button::after{content:"▾";font-size:.78em;opacity:.78;margin-left:.22rem}
.language-menu{
  position:absolute;
  right:0;
  top:calc(100% + .5rem);
  z-index:30;
  width:min(17rem,88vw);
  margin:0;
  padding:.9rem;
  border-radius:18px;
  background:var(--card);
  border:1px solid var(--line);
  box-shadow:var(--shadow);
}
.language-menu label{margin:0 0 .7rem;color:var(--muted);font-size:.86rem}
.language-menu select{width:100%}
.settings-page{max-width:840px;margin:0 auto}
.settings-hero{background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 14%,var(--card)),var(--card));border:1px solid var(--line);border-radius:var(--radius);padding:1.2rem;margin:1rem 0;box-shadow:var(--shadow)}
.settings-hero h1{margin:.1rem 0 .35rem;line-height:1.2}
.eyebrow{margin:0;color:var(--accent-2);font-weight:900;letter-spacing:.08em;text-transform:uppercase;font-size:.78rem}
.local-settings-form{margin-top:1rem}
body[data-rich="rich"] .post-card,body[data-rich="rich"] .static-body,body[data-rich="rich"] .post-detail{border-color:color-mix(in srgb,var(--accent) 24%,var(--line))}
.admin{font-family:var(--admin-font),system-ui,-apple-system,BlinkMacSystemFont,"Hiragino Sans","Yu Gothic",sans-serif}
@media(max-width:700px){.language-menu{left:0;right:auto}.language-switcher{position:static}.header-tools{position:relative}}
