:root{
  --c-bg:#f5efe6; --c-card:#fbf7ef; --c-ink:#1c1a17; --c-sub:#6b665d;
  --c-shu:#b8453a; --c-ai:#2c4a6b; --c-midori:#4a6b4a; --c-yamabuki:#c9912d;
  --c-rikyu:#c9c4b8;
}
*{box-sizing:border-box}
body{
  margin:0;background:
    radial-gradient(circle at 10% 20%, rgba(184,69,58,0.04), transparent 40%),
    radial-gradient(circle at 90% 80%, rgba(44,74,107,0.04), transparent 50%),
    var(--c-bg);
  font-family:'Noto Sans JP',sans-serif;color:var(--c-ink);padding:24px;
}
.meicho,.h-meicho,h1,h2,h3{font-family:'Shippori Mincho','Noto Serif JP',serif;font-weight:800}
.frame{max-width:1200px;margin:0 auto;background:var(--c-card);border:1px solid var(--c-rikyu);
  box-shadow:0 2px 0 #e2dccf,0 12px 30px rgba(28,26,23,0.08);position:relative}
.asanoha{height:12px;background:
  repeating-linear-gradient(45deg,var(--c-shu) 0 2px,transparent 2px 12px),
  repeating-linear-gradient(-45deg,var(--c-shu) 0 2px,transparent 2px 12px),var(--c-ink);opacity:.85}
.topbar{background:var(--c-ink);color:var(--c-bg);padding:18px 28px;
  display:flex;justify-content:space-between;align-items:center;border-bottom:4px solid var(--c-shu)}
.logo .ja{font-family:'Shippori Mincho',serif;font-size:24px;font-weight:800;letter-spacing:.15em}
.logo .en{font-size:11px;color:#b8a690;letter-spacing:.3em;margin-left:10px}
nav.menu{display:flex;gap:24px;font-family:'Noto Serif JP',serif;font-size:14px}
nav.menu a{color:#d8c8b0;text-decoration:none;padding-bottom:4px;border-bottom:2px solid transparent}
nav.menu a.active{color:var(--c-bg);border-bottom-color:var(--c-shu)}
.userbox{font-size:13px;text-align:right;border-left:1px solid #3a3631;padding-left:16px}
.userbox .term{background:var(--c-shu);color:var(--c-card);padding:2px 10px;font-size:11px;
  margin-top:4px;display:inline-block;font-family:'Shippori Mincho',serif}
.pagetitle{background:var(--c-bg);border-bottom:1px solid var(--c-rikyu);padding:22px 32px;
  display:flex;justify-content:space-between;align-items:flex-end}
.pagetitle h1{font-size:26px;margin:0;letter-spacing:.08em}
.pagetitle .sub{color:var(--c-sub);font-size:12px;letter-spacing:.15em;margin-top:4px}
.seal{background:var(--c-shu);color:var(--c-card);width:56px;height:56px;
  display:flex;align-items:center;justify-content:center;font-family:'Shippori Mincho',serif;
  font-weight:800;font-size:22px;border-radius:4px;transform:rotate(-6deg);
  box-shadow:0 0 0 2px var(--c-card) inset,0 2px 0 rgba(0,0,0,.1);line-height:1}
.body-area{padding:28px 32px}
.row{display:grid;gap:16px;margin-bottom:18px}
.row.cols-2{grid-template-columns:2fr 1fr}.row.cols-2-eq{grid-template-columns:1fr 1fr}
.row.cols-3{grid-template-columns:repeat(3,1fr)}
.card{background:var(--c-card);border:1px solid var(--c-rikyu);padding:18px 20px;position:relative}
.card .label{font-family:'Shippori Mincho',serif;font-size:11px;color:var(--c-sub);
  letter-spacing:.3em;border-bottom:1px solid var(--c-rikyu);padding-bottom:6px;margin-bottom:10px;
  display:flex;justify-content:space-between;align-items:center}
.card .label .right{font-size:10px;letter-spacing:.2em;color:var(--c-shu);cursor:pointer}
.accent-shu{border-left:4px solid var(--c-shu)}
.accent-ai{border-left:4px solid var(--c-ai)}
.accent-yamabuki{border-left:4px solid var(--c-yamabuki)}
.accent-midori{border-left:4px solid var(--c-midori)}
.accent-sumi{border-left:4px solid var(--c-ink)}
.han-button{display:inline-block;background:var(--c-shu);color:var(--c-card);padding:8px 18px;
  font-family:'Shippori Mincho',serif;letter-spacing:.2em;font-size:13px;border:2px solid var(--c-shu);
  box-shadow:2px 2px 0 var(--c-ink);cursor:pointer;text-decoration:none}
.han-button.ai{background:var(--c-ai);border-color:var(--c-ai)}
.han-button.outline{background:transparent;color:var(--c-shu);box-shadow:none}
.han-button[disabled]{opacity:.5;cursor:not-allowed}
input.wf,textarea.wf,select.wf{
  background:#fff;border:1px solid var(--c-rikyu);padding:8px 10px;font-family:inherit;font-size:13px;
  color:var(--c-ink);width:100%;border-radius:0
}
textarea.wf{min-height:60px;resize:vertical}
label.wf{display:block;font-size:11px;color:var(--c-sub);letter-spacing:.2em;margin-bottom:4px}
.notice-list{list-style:none;padding:0;margin:0}
.notice-list li{padding:10px 4px;border-bottom:1px dotted var(--c-rikyu);
  display:flex;justify-content:space-between;align-items:flex-start;gap:12px;cursor:pointer}
.notice-list .text{font-size:13px;color:#3a3631;flex:1}
.notice-list .text::before{content:'◉ ';color:var(--c-shu)}
.notice-list .meta{text-align:right;font-size:11px;color:var(--c-sub);
  font-family:'Shippori Mincho',serif;white-space:nowrap;display:flex;flex-direction:column;
  align-items:flex-end;gap:4px}
.new-badge{background:var(--c-shu);color:var(--c-card);font-family:'Shippori Mincho',serif;
  font-size:9px;padding:1px 6px;letter-spacing:.1em;border-radius:2px}
.footer{background:var(--c-ink);color:var(--c-sub);text-align:center;padding:14px;
  font-family:'Shippori Mincho',serif;font-size:11px;letter-spacing:.3em}
.background-seal{position:absolute;right:24px;top:80px;color:rgba(184,69,58,.06);
  font-family:'Shippori Mincho',serif;font-size:180px;font-weight:800;line-height:1;
  pointer-events:none;user-select:none}
.tategaki{writing-mode:vertical-rl;font-family:'Shippori Mincho',serif;color:var(--c-sub);
  font-size:12px;letter-spacing:.4em;border-left:1px solid var(--c-rikyu);padding-left:8px}
.flash{padding:10px 14px;background:#fff5e6;border-left:4px solid var(--c-yamabuki);
  font-size:13px;margin-bottom:14px}
.flash.error{background:#fde8e6;border-left-color:var(--c-shu)}
table.wf{width:100%;border-collapse:collapse;font-size:12px;background:var(--c-card)}
table.wf thead{background:#f5efe6}
table.wf th,table.wf td{padding:8px;border-bottom:1px solid var(--c-rikyu);text-align:left}
table.wf th{font-family:'Shippori Mincho',serif;font-weight:600;color:var(--c-sub)}
.htmx-indicator{display:none}
.htmx-request .htmx-indicator{display:inline}
