:root {
  --ink: #1d2b27; --muted: #5d6b66; --line: #d9e1dd; --bg: #f5f8f6; --card: #fff;
  --brand: #1f7a5a; --brand-dark: #165a43; --brand-soft: #e3f2ec; --accent: #2a6f9e;
  --warn: #b4571a; --warn-soft: #fdeede; --err: #b3261e; --err-soft: #fce8e6; --ok: #1f7a5a;
  --radius: 8px; --shadow: 0 1px 3px rgba(20, 50, 40, .08);
}
* { box-sizing: border-box; }
html { font-size: 16px; }
body { margin: 0; font-family: "Yu Gothic UI", "Hiragino Sans", "Meiryo", system-ui, sans-serif; color: var(--ink); background: var(--bg); line-height: 1.75; }
a { color: var(--accent); }
h1, h2, h3 { line-height: 1.4; }
h1 { font-size: 1.6rem; margin: .2em 0 .6em; }
h2 { font-size: 1.25rem; margin: 1.4em 0 .6em; }
h3 { font-size: 1.05rem; margin: 1.2em 0 .4em; }
.muted { color: var(--muted); } .small { font-size: .85rem; }
.skip { position: absolute; left: -999px; } .skip:focus { left: 8px; top: 8px; background: #fff; padding: 8px; z-index: 9; }
:focus-visible { outline: 3px solid #f2b705; outline-offset: 2px; }

/* ボタン・フォーム */
.btn, button.btn { display: inline-block; padding: .5em 1.1em; border: 1px solid var(--line); border-radius: var(--radius); background: #fff; color: var(--ink); text-decoration: none; font: inherit; cursor: pointer; line-height: 1.5; }
.btn:hover { background: var(--brand-soft); }
.btn.primary { background: var(--brand); border-color: var(--brand); color: #fff; font-weight: 600; }
.btn.primary:hover { background: var(--brand-dark); }
.btn.danger { color: var(--err); border-color: var(--err); }
.btn.small { padding: .2em .8em; font-size: .88rem; }
.btn.block { display: block; width: 100%; text-align: center; }
button.link { background: none; border: 0; color: var(--accent); text-decoration: underline; cursor: pointer; font: inherit; padding: 0; }
.form { display: grid; gap: 14px; max-width: 880px; }
.form > .btn, .form > button.btn { justify-self: start; }
.form.narrow { max-width: 420px; }
.form label { display: grid; gap: 4px; font-weight: 600; font-size: .95rem; }
.form label.check, label.check { display: flex; align-items: center; gap: 8px; font-weight: 400; }
.form em { color: var(--err); font-style: normal; font-size: .8rem; font-weight: 400; margin-left: 4px; }
input, select, textarea { font: inherit; padding: .5em .65em; border: 1px solid #b9c6c0; border-radius: 6px; background: #fff; color: var(--ink); width: 100%; min-height: 44px; }
input[type=checkbox], input[type=radio] { width: auto; min-height: 0; }
textarea { line-height: 1.7; resize: vertical; }
textarea.mono, .code, pre { font-family: "BIZ UDGothic", "MS Gothic", monospace; }
input.amt { text-align: right; max-width: 180px; margin-left: auto; display: block; }
.grid2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 14px; }
fieldset { border: 1px solid var(--line); border-radius: var(--radius); padding: 12px 14px; margin: 0; }
fieldset.slot { margin-bottom: 12px; background: #fbfdfc; }
legend { font-weight: 600; padding: 0 6px; }
.btns { display: flex; gap: 10px; flex-wrap: wrap; align-items: center; }
form.inline { display: inline-flex; gap: 8px; align-items: center; margin: 0; }
form.inline select, form.inline input { width: auto; }
.hp { position: absolute; left: -9999px; }
.flash { padding: 10px 14px; border-radius: var(--radius); margin: 0 0 16px; font-weight: 600; }
.flash.ok { background: var(--brand-soft); color: var(--brand-dark); }
.flash.err { background: var(--err-soft); color: var(--err); }
.secret { font: 700 1.4rem monospace; background: #fff8e1; padding: 12px; border-radius: 8px; display: inline-block; user-select: all; }

/* 管理画面 */
.admin { display: grid; grid-template-columns: 232px 1fr; min-height: 100vh; }
.side { background: #123c30; color: #e6f3ee; padding: 18px 12px; display: flex; flex-direction: column; gap: 14px; position: sticky; top: 0; height: 100vh; overflow-y: auto; }
.brand { display: flex; align-items: center; gap: 10px; color: #fff; text-decoration: none; font-weight: 700; line-height: 1.3; }
.brand small { display: block; font-weight: 400; opacity: .75; font-size: .75rem; }
.brand-mark { display: inline-grid; place-items: center; width: 38px; height: 38px; border-radius: 50%; background: var(--brand); color: #fff; font-size: 1.3rem; flex: none; }
.brand { flex-direction: column; align-items: stretch; gap: 6px; } .brand small { text-align: center; opacity: .85; }
.logo-plate { display: block; background: #fff; border-radius: 10px; padding: 8px 10px; } .logo-plate img { display: block; width: 100%; height: auto; }
.login-logo { width: 100%; max-width: 360px; height: auto; margin: 0 auto; } .login-title { font-size: 1.1rem; margin: 0; }
.brand-mark.big { width: 56px; height: 56px; font-size: 2rem; margin: 0 auto 8px; }
.side nav { display: flex; flex-direction: column; gap: 0; }
.side nav a { color: #d3e8df; text-decoration: none; padding: 5px 12px; line-height: 1.35; border-radius: 6px; }
.side nav .nav-sec { font-size: .72rem; letter-spacing: .08em; color: #8fb8a8; padding: 12px 12px 2px; }
.side nav a:hover { background: rgba(255, 255, 255, .1); }
.side nav a.on { background: #fff; color: var(--brand-dark); font-weight: 700; }
.side-foot { margin-top: auto; display: grid; gap: 6px; font-size: .85rem; }
.side-foot a, .side-foot button.link { color: #cfe3da; }
.main { padding: 22px 28px 60px; max-width: 1100px; width: 100%; }
.main.wide { max-width: 1400px; }
.page-head { display: flex; justify-content: space-between; align-items: center; }
.page-head h1 { margin: 0 0 .6em; }
.card { background: var(--card); border: 1px solid var(--line); border-radius: var(--radius); padding: 16px 20px; margin: 0 0 18px; box-shadow: var(--shadow); }
.card > h2:first-child, .card > .toolbar:first-child h2 { margin-top: 0; }
.card summary { cursor: pointer; font-weight: 700; }
.toolbar { display: flex; flex-wrap: wrap; align-items: center; gap: 10px; margin: 0 0 16px; }
.toolbar h2 { margin: 0; }
.spacer { flex: 1; }
.tab-title { margin-top: 0; }
.tabs { display: flex; flex-wrap: wrap; gap: 4px; border-bottom: 2px solid var(--line); margin-bottom: 18px; }
.tabs a { padding: 8px 14px; text-decoration: none; color: var(--muted); border-radius: 6px 6px 0 0; margin-bottom: -2px; border-bottom: 3px solid transparent; }
.tabs a.on { color: var(--brand-dark); font-weight: 700; border-bottom-color: var(--brand); background: #fff; }
.empty { text-align: center; padding: 36px 10px; background: #fff; border: 1px dashed var(--line); border-radius: var(--radius); color: var(--muted); }
.stats { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; margin-bottom: 18px; }
.stats > div, .stat-link { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 12px 16px; display: grid; text-decoration: none; color: var(--ink); box-shadow: var(--shadow); }
.stats b { font-size: 1.5rem; line-height: 1.3; } .stats span { color: var(--muted); font-size: .85rem; }
.stats .warn b { color: var(--warn); } .stats .ok b { color: var(--ok); }
.stat-link:hover { border-color: var(--brand); }
.cols { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(380px, 100%), 1fr)); gap: 24px; align-items: start; }
ul.plain { list-style: none; padding: 0; margin: 0; } ul.plain li { padding: 4px 0; }

/* 表 */
.tbl, .fs, .roster { border-collapse: collapse; width: 100%; background: #fff; }
.tbl th, .tbl td { padding: 9px 10px; border-bottom: 1px solid var(--line); text-align: left; vertical-align: top; }
.tbl thead th { background: #eef4f1; font-size: .85rem; white-space: nowrap; }
.tbl tr.dim { color: var(--muted); }
.num { text-align: right !important; font-variant-numeric: tabular-nums; white-space: nowrap; }
td.act { white-space: nowrap; } td.act form { display: inline; margin-left: 8px; }
.pill { display: inline-block; padding: 1px 10px; border-radius: 999px; font-size: .78rem; font-weight: 700; background: #e9eeec; color: var(--muted); margin-right: 8px; }
.pill.ok, .pill.done { background: var(--brand-soft); color: var(--brand-dark); }
.pill.warn, .pill.soon { background: var(--warn-soft); color: var(--warn); }
.pill.overdue { background: var(--err-soft); color: var(--err); }
.tag { display: inline-block; padding: 0 8px; border: 1px solid var(--brand); color: var(--brand-dark); border-radius: 4px; font-size: .75rem; }
.chip { display: inline-block; padding: 1px 8px; border-radius: 4px; font-size: .8rem; background: #eef2f0; }

/* カレンダー */
.ym { font-size: 1.3rem; min-width: 7em; text-align: center; }
.cal { display: grid; grid-template-columns: repeat(7, 1fr); border-top: 1px solid var(--line); border-left: 1px solid var(--line); background: #fff; margin-bottom: 22px; }
.cal > div { border-right: 1px solid var(--line); border-bottom: 1px solid var(--line); }
.cal-head { text-align: center; background: #eef4f1; padding: 4px; font-weight: 700; font-size: .85rem; }
.cell { min-height: 108px; padding: 3px; display: flex; flex-direction: column; gap: 2px; min-width: 0; }
.cell.blank { background: #fafbfa; }
.cell.today { background: #fffbe8; }
.sun, .sun .daynum { color: #c0392b; } .sat, .sat .daynum { color: #2a6f9e; }
.daynum { text-decoration: none; font-size: .85rem; padding: 0 4px; align-self: flex-start; border-radius: 4px; color: inherit; }
.daynum:hover { background: var(--brand-soft); }
.today .daynum { background: var(--brand); color: #fff; }
.ev { display: block; font-size: .78rem; line-height: 1.35; padding: 1px 5px; border-radius: 3px; text-decoration: none; color: #123; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.more { font-size: .75rem; color: var(--muted); padding-left: 5px; }
.c0, .c0.chip { background: #ffe0d5; } .c1 { background: #ffe9b8; } .c2 { background: #dff0c8; } .c3 { background: #cdeee6; } .c4 { background: #d7e8fb; }
.c5 { background: #e6dcf7; } .c6 { background: #f8d9ec; } .c7 { background: #e5e5e5; } .c8 { background: #eee; }

/* 決算 */
.steps { list-style: none; padding: 0; margin: 0 0 18px; display: grid; gap: 10px; }
.step { background: #fff; border: 1px solid var(--line); border-left: 5px solid #c4d0cb; border-radius: var(--radius); padding: 12px 16px; display: grid; grid-template-columns: 1fr minmax(260px, 340px); gap: 14px; }
.step.done { border-left-color: var(--ok); background: #f6fbf9; } .step.overdue { border-left-color: var(--err); } .step.soon { border-left-color: var(--warn); } .step.na { opacity: .6; }
.step-meta { font-size: .9rem; } .step p { margin: .3em 0 0; }
.step-act { display: grid; gap: 6px; align-content: start; } .step-act label { font-size: .8rem; }
.step-act input { min-height: 36px; padding: .25em .5em; }
.fs th, .fs td { padding: 4px 10px; } .fs thead th { border-bottom: 2px solid var(--ink); text-align: left; }
.fs td.ind { padding-left: 2em; } .fs td.ind2 { padding-left: 3em; color: var(--muted); }
.fs tr.sec td { font-weight: 700; padding-top: 12px; } .fs tr.sub td, .fs tr.sub2 td { font-weight: 600; padding-left: 1em; }
.fs tr.tot td { border-top: 1px solid var(--ink); font-weight: 600; } .fs tr.grand td { border-top: 1px solid var(--ink); border-bottom: 3px double var(--ink); font-weight: 700; }
.journal-form { grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); align-items: end; max-width: none; }
.journal-form .wide { grid-column: span 2; }
.inquiry.new { border-left: 5px solid var(--warn); } .pre { white-space: pre-wrap; }

/* 公開サイト（協会の実際のホームページの雰囲気に合わせる：クリーム色の地、緑、角の丸い枠） */
.site-body { --sg: #28cc61; --sg-dark: #178a3f; --sg-deep: #0f6a2e; --sg-soft: #e6f8ec; --cream: #fefdf3; --nav-bg: #6b7571; --foot-bg: #2f4a3a; --hero-a: #d8f2f7; --hero-b: #f1fbe9; --hill1: #bfe6c9; --hill2: #8ed3a1; --hill3: #28cc61; --r: 22px; --icon-cols: 4;
  --site-font: "Yu Gothic UI", "Hiragino Sans", "Meiryo", system-ui, sans-serif; --line-soft: color-mix(in srgb, var(--sg) 28%, #fff); background: var(--cream); font-family: var(--site-font); }
.site-head { background: var(--cream); border-bottom: 0; }
.site-head-in { max-width: 1060px; margin: 0 auto; padding: 14px 20px 10px; display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap; }
.site-name { display: flex; align-items: center; gap: 12px; text-decoration: none; color: var(--ink); font-weight: 700; font-size: 1.2rem; line-height: 1.3; }
.site-name small { display: block; font-size: .75rem; font-weight: 400; color: var(--muted); }
.site-logo { display: block; width: 400px; max-width: 100%; height: auto; }
.site-tel { text-align: right; line-height: 1.4; } .site-tel span { display: block; font-size: .75rem; color: var(--muted); } .site-tel b { font-size: 1.35rem; color: var(--sg-dark); } .site-tel small { display: block; color: var(--muted); font-size: .75rem; }
.site-nav { background: var(--nav-bg); display: flex; flex-wrap: wrap; justify-content: center; }
.site-nav a { color: #fff; text-decoration: none; padding: 12px 22px; border-left: 1px solid rgba(255,255,255,.25); }
.site-nav a:first-child { border-left: 0; }
.site-nav a:hover, .site-nav a.on { background: var(--sg-dark); }
.site-nav .login-link { background: var(--sg-dark); font-weight: 700; }
.site-main { max-width: 1060px; margin: 0 auto; padding: 24px 20px 56px; }
.site-main.top { max-width: none; padding: 0 0 56px; } .site-main.top > *:not(.hero):not(.flash) { max-width: 980px; width: calc(100% - 40px); margin-left: auto; margin-right: auto; }
.hero { position: relative; overflow: hidden; background: linear-gradient(var(--hero-a), var(--hero-b)); padding: 52px 20px 70px; margin-bottom: 0; }
.hero-art { position: absolute; left: 0; bottom: 0; width: 100%; height: 100%; }
.hero-in { position: relative; max-width: 1020px; margin: 0 auto; }
.hero h1 { font-size: 2.2rem; margin: 0 0 .3em; color: var(--sg-dark); letter-spacing: .06em; } .hero-sub { margin: 0; color: var(--muted); } .hero p { margin: .3em 0; }
.frame { background: #fff; border: 3px solid var(--sg); border-radius: var(--r); margin-top: 22px; position: relative; padding: 22px 20px !important; box-shadow: 0 3px 12px rgba(30, 90, 50, .12); }
.frame.after-hero { margin-top: -34px !important; }
.icons { display: grid; grid-template-columns: repeat(var(--icon-cols), 1fr); gap: 14px; }
.icons a, .banners2 a { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 14px 8px; background: var(--sg-soft); border: 2px solid var(--sg); border-radius: calc(var(--r) * .7); color: var(--sg-dark); text-decoration: none; font-weight: 700; text-align: center; }
.icons a:hover, .banners2 a:hover { background: var(--sg); color: #fff; }
.ic { width: 40px; height: 40px; }
.banners2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin-top: 16px; }
.banners2 a { flex-direction: row; justify-content: center; gap: 10px; padding: 12px; background: #fff; }
.banners2 a.alert { border-color: #e0702a; color: #b4571a; background: #fff6ee; } .banners2 a.alert:hover { background: #e0702a; color: #fff; }
.banners2 .ic { width: 28px; height: 28px; }
.news-cols { margin-top: 26px; }
.box { background: #fff; border: 2px solid var(--line-soft); border-radius: calc(var(--r) * .75); padding: 4px 22px 14px; margin-top: 18px; }
.box h2 { color: var(--sg-dark); border-bottom: 3px solid var(--sg); display: inline-block; padding-bottom: 2px; font-size: 1.15rem; }
.box.member { border-color: #cfe0ef; } .box.member h2 { color: #2a6f9e; border-color: #2a6f9e; }
.more-link { text-align: right; margin: 8px 0 0; }
.bn-row { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 14px; margin-top: 28px; }
.bn-row a { display: block; text-align: center; padding: 18px 10px; background: #fff; border: 2px solid var(--line-soft); border-radius: calc(var(--r) * .65); color: var(--ink); font-weight: 700; text-decoration: none; }
.bn-row a:hover { border-color: var(--sg); } .bn-row small { display: block; font-weight: 400; color: var(--muted); font-size: .75rem; }
.news { list-style: none; padding: 0; margin: 0; } .news li { display: flex; gap: 14px; padding: 9px 0; border-bottom: 1px dashed var(--line); } .news time { color: var(--muted); white-space: nowrap; font-size: .9rem; min-width: 10em; }
.article { background: #fff; border: 2px solid var(--line-soft); border-radius: calc(var(--r) * .75); padding: 22px 28px; } .article h3 { border-left: 6px solid var(--sg); padding-left: 10px; } .article h4 { margin: 1.2em 0 .2em; color: var(--sg-dark); }
.site-main > h1 { border-bottom: 3px solid var(--sg); padding-bottom: 6px; color: var(--sg-dark); }
.article h1 { color: var(--sg-dark); }
.pub-t { width: 100%; border-collapse: collapse; background: #fff; } .pub-t th, .pub-t td { border: 1px solid var(--line); padding: 6px 10px; text-align: left; vertical-align: top; } .pub-t th { background: var(--sg-soft); }
.site-main .tabs a.on { color: var(--sg-dark); border-bottom-color: var(--sg); }
.site-main .btn.primary { background: var(--sg-dark); border-color: var(--sg-dark); }
ul.files { padding-left: 1.2em; }
.koukoku summary { cursor: pointer; font-weight: 700; } pre { white-space: pre-wrap; background: #fff; border: 1px solid var(--line); border-radius: 6px; padding: 12px 16px; }
.site-foot { background: var(--foot-bg); color: #e4f1e8; padding: 26px 20px 14px; } .foot-in { max-width: 1060px; margin: 0 auto; display: flex; justify-content: space-between; gap: 28px; flex-wrap: wrap; }
.foot-map { display: grid; grid-template-columns: repeat(4, auto); gap: 8px 32px; } .foot-map div { display: grid; gap: 3px; align-content: start; } .foot-map b { border-bottom: 1px solid rgba(255,255,255,.3); margin-bottom: 4px; } .foot-map a { color: #e4f1e8; text-decoration: none; font-size: .9rem; } .foot-map a:hover { text-decoration: underline; }
.ad-strip { position: relative; display: flex; flex-wrap: wrap; justify-content: center; gap: 12px; margin: 22px auto 0; padding: 18px 10px 10px; border: 1px dashed var(--line-soft); border-radius: calc(var(--r) * .55); background: #fff; }
.ad-strip img { display: block; max-width: 100%; max-height: 120px; width: auto; height: auto; border: 1px solid var(--line); }
.ad-label { position: absolute; top: -.7em; left: 14px; background: var(--cream, #fff); padding: 0 8px; font-size: .75rem; color: var(--muted); }
.ad-foot { max-width: 1060px; width: calc(100% - 40px); margin-bottom: 26px; }
.copy { text-align: center; font-size: .8rem; opacity: .7; }
@media (max-width: 760px) { .icons { grid-template-columns: repeat(2, 1fr); } .foot-map { grid-template-columns: repeat(2, auto); } .hero h1 { font-size: 1.6rem; } .site-nav a { padding: 10px 12px; } .banners2 { grid-template-columns: 1fr; } .news li { flex-direction: column; gap: 0; } }
.login-wrap { min-height: 100vh; display: grid; place-items: center; padding: 20px; }
.login-card { width: min(420px, 100%); background: #fff; border: 1px solid var(--line); border-radius: 12px; padding: 28px; display: grid; gap: 14px; box-shadow: var(--shadow); text-align: center; }
.login-card h1 { font-size: 1.15rem; margin: 0; } .login-card label { text-align: left; display: grid; gap: 4px; font-weight: 600; } .login-card p { margin: 0; }

/* 会報 */
.issue .sheet { background: #fff; border: 1px solid var(--line); border-radius: var(--radius); padding: 28px 34px; margin: 0 auto 18px; max-width: 800px; }
.cover { text-align: center; } .cover-title { font-size: 3.4rem; letter-spacing: .3em; margin: .3em 0; color: var(--brand-dark); } .cover-no { font-size: 1.1rem; }
.cover-toc { text-align: left; max-width: 420px; margin: 28px auto 0; } .cover-toc h2 { font-size: .95rem; letter-spacing: .2em; border-bottom: 1px solid var(--ink); }
.report, .newcomer { border-top: 1px solid var(--line); padding-top: 4px; margin-top: 14px; } .issue dl { display: grid; grid-template-columns: 5.5em 1fr; gap: 2px 10px; margin: 0 0 8px; } .issue dt { font-weight: 700; } .issue dd { margin: 0; }
.byline { text-align: right; color: var(--muted); } .roster th, .roster td { border: 1px solid var(--line); padding: 4px 8px; font-size: .85rem; }
.ads { display: grid; grid-template-columns: 1fr 1fr; gap: 12px; } .ad { border: 1px solid var(--ink); padding: 10px 14px; }
.printbar { padding: 10px 16px; background: #fff; border-bottom: 1px solid var(--line); position: sticky; top: 0; z-index: 3; }
.docpage { max-width: 780px; margin: 20px auto; background: #fff; padding: 36px 44px; border: 1px solid var(--line); }
.doc-head { text-align: center; } .doc-head p { margin: 0; } .doc-sub { text-align: center; } .sign { text-align: right; }
.koukoku-pre { border: 0; font-size: 1rem; }

@media (max-width: 860px) {
  .admin { grid-template-columns: 1fr; } .side { position: static; height: auto; } .side nav { flex-direction: row; flex-wrap: wrap; } .side nav .nav-sec { display: none; }
  .main { padding: 16px; } .step { grid-template-columns: 1fr; } .cell { min-height: 70px; } .ev { font-size: .68rem; }
  .journal-form .wide { grid-column: auto; } .news li { flex-direction: column; gap: 0; } .ads { grid-template-columns: 1fr; }
  .hero { padding: 28px 18px; } .hero h1 { font-size: 1.5rem; } .article { padding: 16px; } .site-tel { text-align: left; }
  .tbl { display: block; overflow-x: auto; }
}
@media print {
  @page { size: A4; margin: 14mm; }
  body { background: #fff; font-size: 10.5pt; } .noprint { display: none !important; }
  .issue .sheet, .docpage { border: 0; box-shadow: none; max-width: none; padding: 0; margin: 0; page-break-after: always; }
  .issue .sheet:last-child { page-break-after: auto; }
}

.scroll-x { overflow-x: auto; margin-bottom: 18px; }
.fs.seg th, .fs.seg td { white-space: nowrap; }
.inline-add { max-width: 520px; }
@media print { .doc .fs.seg { font-size: 8.5pt; } }

.fs.seg th.grp { text-align: center !important; border-bottom: 1px solid var(--line); }
.fs.seg td.bud { color: var(--muted); }
.tbl.budget input.amt { max-width: 120px; min-height: 36px; }
.tbl.budget td:nth-child(-n+2) { white-space: nowrap; }

.wide-in { min-width: 340px; }
@media (max-width: 860px) { .wide-in { min-width: 0; } }

/* 内訳書の様式（協会の計算書類と同じ並び） */
.fs tr.sec td { font-weight: 700; padding-top: 14px; }
.fs tr.sec2 td { font-weight: 700; padding-left: .8em; padding-top: 10px; }
.fs tr.sec3 td { font-weight: 600; padding-left: 1.6em; }
.fs tr.sub td { font-weight: 600; padding-left: 2.4em; }
.fs tr.sub td.num { padding-left: 10px; }
.fs tr.item td:first-child { padding-left: 4.4em; }
.fs tr.item2 td:first-child { padding-left: 4.4em; }
.fs tr.item0 td:first-child { padding-left: 1.6em; }
.fs tr.note td { color: var(--muted); font-size: .92em; }
.fs tr.note td:first-child { padding-left: 3.4em; }
.fs tr.total td { border-top: 1px solid var(--ink); font-weight: 600; }
.fs tr.total td:first-child { padding-left: 2.4em; }
.fs tr.grand td { border-top: 1px solid var(--ink); border-bottom: 3px double var(--ink); font-weight: 700; }
.fs tr.grand td:first-child { padding-left: 1.6em; }
.fs tr.item td:first-child, .fs tr.item2 td:first-child { white-space: nowrap; }
.fs td.num, .fs th.num { min-width: 7.5em; }

.tbl.accept { max-width: 640px; } .tbl.accept td, .tbl.accept th { padding: 4px 10px; } .tbl.accept td.chk { text-align: center; } .tbl.accept input { width: 18px; height: 18px; min-height: 0; }

/* 会員名簿の印刷（簡易一覧） */
.roster-page { max-width: 1100px; margin: 16px auto; background: #fff; padding: 20px 24px; border: 1px solid var(--line); }
.roster-head { text-align: center; margin-bottom: 10px; } .roster-head p { margin: 0; } .roster-head h1 { margin: .1em 0; font-size: 1.5rem; letter-spacing: .3em; } .roster-head .sub { color: var(--muted); font-size: .9rem; }
table.roster { width: 100%; border-collapse: collapse; font-size: 9.5pt; line-height: 1.4; }
.roster th, .roster td { border: 1px solid #333; padding: 2px 5px; vertical-align: top; }
.roster thead th { background: #eee; font-weight: 600; text-align: center; }
.roster thead { display: table-header-group; } .roster tr { page-break-inside: avoid; }
.roster td.no, .roster th.no { width: 2.4em; text-align: right; }
.roster tr.grp td { background: #f3f3f3; font-weight: 700; border-left: 0; border-right: 0; }
.roster td:nth-child(3), .roster td:nth-child(5) { white-space: nowrap; } .roster td:nth-child(6) { min-width: 10em; }
@media print { .roster-page { border: 0; padding: 0; margin: 0; max-width: none; } .roster-body .printbar { display: none; } }

/* 会員名簿の印刷：協会の名簿の様式（A4縦） */
.sheet-body { background: #e9eeec; }
.rsheet { background: #fff; width: 538pt; margin: 12px auto; padding: 8pt 0 6pt; page-break-after: always; font-size: 7.2pt; color: #000; }
.rsheet:last-child { page-break-after: auto; }
.sheet-head { display: flex; justify-content: space-between; align-items: baseline; margin: 0 0 6pt; }
.sheet-head h2 { margin: 0; } .sheet-head .blk { font-size: 12.6pt; } .sheet-head .kind { font-size: 14pt; letter-spacing: .4em; width: 100%; text-align: center; margin: 4pt 0 10pt; }
.sheet-head .asof { font-size: 7pt; color: #555; white-space: nowrap; }
table.sheet-t { border-collapse: collapse; table-layout: fixed; width: 538pt; }
.sheet-t col.c-no { width: 16pt; } .sheet-t col.c-nm { width: 124pt; } .sheet-t col.c-it { width: 13.9pt; } .sheet-t col.c-ce { width: 15pt; }
.sheet-t th, .sheet-t td { border: .4pt solid #666; padding: 0 1.5pt; font-size: 7.2pt; font-weight: 400; overflow: hidden; white-space: nowrap; }
.sheet-t thead th { border: .8pt solid #000; text-align: center; background: #fff; }
.sheet-t thead { display: table-header-group; }
.sheet-t th.nm { font-size: 7.2pt; line-height: 1.5; } .sheet-t th.it { height: 12pt; letter-spacing: .3em; }
.sheet-t th.v { height: 62pt; padding: 2pt 0; } .sheet-t th.v span { writing-mode: vertical-rl; display: inline-block; font-size: 6.2pt; line-height: 1.05; } .sheet-t th.v.xs span { font-size: 5pt; } .sheet-t th.v.c span { text-orientation: upright; }
.sheet-t tbody.m { page-break-inside: avoid; border-bottom: .8pt solid #000; }
.sheet-t tbody.m td { height: 10.3pt; line-height: 10.3pt; }
.sheet-t td.no { text-align: right; vertical-align: top; padding-right: 2pt; border-bottom: .8pt solid #000; }
.sheet-t td.nm .co { float: left; font-weight: 400; } .sheet-t td.nm .rep { float: right; padding-right: 2pt; } .sheet-t td.nm.sm, .sheet-t td.ad.sm { font-size: 6pt; }
.sheet-t td.ad { padding-left: 4pt; } .sheet-t td.tl { padding-left: 10pt; font-size: 7pt; }
.sheet-t td.mk { text-align: center; padding: 0; } .sheet-t td.mk small { font-size: 5pt; }
.sheet-t tbody.m tr:last-child td { border-bottom: .8pt solid #000; }
table.plain-t { border-collapse: collapse; width: 538pt; font-size: 8pt; }
.plain-t th, .plain-t td { border: .6pt solid #000; padding: 4pt 4pt; vertical-align: middle; } .plain-t th { font-weight: 400; text-align: center; padding: 6pt 4pt; }
.plain-t td.no { width: 18pt; text-align: right; } .plain-t td.c { text-align: center; } .plain-t tr { page-break-inside: avoid; }
.unit { text-align: center; font-size: 8pt; margin: 12pt 0 3pt; }
table.tally { margin: 0 auto; border-collapse: collapse; font-size: 8.5pt; } .tally th, .tally td { border: .8pt solid #000; padding: 1pt 14pt; } .tally th { font-weight: 700; text-align: center; min-width: 7em; } .tally td { text-align: center; min-width: 4em; } .tally tr.sum th, .tally tr.sum td { font-weight: 700; }
@media print { .sheet-body { background: #fff; } .rsheet { margin: 0 auto; padding: 0; width: auto; } .sheet-body .printbar { display: none; } }

.yrow { display: flex; flex-wrap: wrap; gap: 6px 18px; align-items: center; margin: 4px 0; } .yrow b { min-width: 4em; }
/* 会員数・優良産廃処理業一覧（会報） */
table.count-t { border-collapse: collapse; margin: 8pt 0; width: 100%; max-width: 480pt; font-size: 9pt; } .count-t th, .count-t td { border: .8pt solid #000; padding: 2pt 8pt; } .count-t td:not(:first-child), .count-t th:not(:first-child) { text-align: center; width: 7.5em; white-space: nowrap; } .count-t th { font-weight: 600; background: #f3f3f3; } .count-t tr.sum td { font-weight: 700; }
.legend { font-size: 8.5pt; margin: 4pt 0 8pt; } .legend .lg { margin-left: 12pt; white-space: nowrap; } .legend .lg b { display: inline-block; background: #aaa; color: #000; padding: 0 3pt; border: .6pt solid #000; }
.yuryo-grid { display: grid; grid-template-columns: 1fr 1fr; border-top: .8pt solid #000; border-left: .8pt solid #000; }
.yc { border-right: .8pt solid #000; border-bottom: .8pt solid #000; padding: 3pt 5pt; page-break-inside: avoid; } .yn { font-size: 9.5pt; display: block; }
.yb { display: flex; justify-content: space-between; gap: 6pt; align-items: center; } .ya { display: flex; flex-direction: column; font-size: 7pt; line-height: 1.35; } .ya .tel { letter-spacing: .15em; font-size: 8pt; }
table.yt { border-collapse: collapse; font-size: 7.5pt; } .yt th, .yt td { border: .6pt solid #000; padding: 0 3pt; text-align: center; min-width: 11pt; font-weight: 400; } .yt td.on { background: #aaa; }

/* 役員名簿 */
table.off-t { border-collapse: collapse; width: 100%; font-size: 8.3pt; line-height: 1.3; } .off-t th, .off-t td { border: .6pt solid #000; padding: 1.5pt 5pt; vertical-align: top; } .off-t thead th { background: #eee; font-weight: 600; text-align: center; }
.off-t td.no { text-align: right; width: 2.2em; } .off-t td.nm .role { display: inline-block; min-width: 4.5em; margin-right: .6em; } .off-t td.tl { white-space: nowrap; } .off-t small { font-size: 7.5pt; } .off-t tbody { page-break-inside: avoid; }
table.pub-t { border-collapse: collapse; background: #fff; } .pub-t th, .pub-t td { border: 1px solid var(--line); padding: 6px 12px; text-align: left; } .pub-t thead th { background: #eef4f1; }

/* 会報（おおよどの構成）：表紙・目次・広告ページ・新規会員 */
.sec-label { font-size: .95rem; font-weight: 700; margin: 0 0 .6em; } h2.spaced { text-align: center; letter-spacing: .4em; }
img.thumb { height: 48px; vertical-align: middle; border: 1px solid var(--line); margin: 0 6px; }
.issue .cover { text-align: center; } .cover-org { margin: 0; color: var(--muted); } .cover-ym { margin: .3em 0 0; font-size: 1.1rem; }
.cover-photo { margin: 18px auto 0; } .cover-photo img { max-width: 100%; max-height: 520px; display: block; margin: 0 auto; border: 1px solid var(--line); } .cover-photo figcaption { margin-top: 6px; font-size: .9rem; color: var(--muted); }
.issue .toc h2 { margin-top: 0; } .toc-title { text-align: center; margin: 0 0 12px; } .toc-group { margin-bottom: 14px; } .toc-group h3 { margin: 0 0 4px; border-bottom: 1.5px solid #000; }
.toc ol { list-style: none; padding: 0 0 0 .6em; margin: 0; } .toc li { display: flex; align-items: baseline; gap: 6px; line-height: 1.8; } .toc li a { color: inherit; text-decoration: none; }
.toc .dots { flex: 1; border-bottom: 1px dotted #666; transform: translateY(-3px); } .toc-no { min-width: 2.2em; text-align: right; }
.issue:not(.print-flow) .toc-no, .issue:not(.print-flow) .dots { display: none; }
.issue .sheet.adpage { padding: 0; border: 0; background: none; text-align: center; } .adpage img { max-width: 100%; max-height: 275mm; border: 1px solid var(--line); }
.newcomer h2 { margin: 0 0 .1em; } .nc-kind { margin: 0 0 1em; color: var(--muted); }
.issue .colophon .issuer { margin-top: 40px; }
.issue.print-flow { width: 190mm; margin: 0 auto; background: #fff; }
.issue.print-flow .sheet { border: 0; border-radius: 0; padding: 0; margin: 0; max-width: none; }
.issue.print-flow .rsheet { margin: 0 auto; padding: 0; }
@media print { .issue.print-flow { width: auto; } .issue .adpage { page-break-after: always; } }

.c9 { background: #e1f0d0; } .c10 { background: #fbe3c4; } .c11 { background: #d5e3f7; } .c12 { background: #ecdcf2; } .c13 { background: #e5e5e5; }

/* 行事の記録（写真・議事録）と会報の行事報告 */
.photo-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 14px; margin-top: 10px; }
.photo-card { margin: 0; border: 1px solid var(--line); border-radius: var(--radius); padding: 8px; background: #fff; display: grid; gap: 6px; } .photo-card img { width: 100%; height: 150px; object-fit: cover; border-radius: 4px; }
.photo-card label { font-size: .85rem; font-weight: 600; display: grid; gap: 2px; } .photo-card label.check { display: flex; font-weight: 400; }
.photos { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: 8px; margin: 8px 0 14px; } .photos figure { margin: 0; } .photos img { width: 100%; max-height: 240px; object-fit: cover; border: 1px solid var(--line); } .photos figcaption { font-size: .8rem; color: var(--muted); text-align: center; }
.issue .report h4.r-sub { margin: 1em 0 .3em; border-bottom: 1px solid #000; } .issue .report h5 { margin: .8em 0 .2em; font-size: 1rem; } .r-item { margin-bottom: 1em; }
.docpage.minutes { font-size: 11pt; line-height: 1.8; } .minutes .doc-head h1 { letter-spacing: .5em; } .minutes h2 { font-size: 12pt; margin: 1.2em 0 .3em; border-bottom: .8pt solid #000; }
dl.mdl { display: grid; grid-template-columns: 5.5em 1fr; gap: 3pt 8pt; margin: 8pt 0; } .mdl dt { font-weight: 700; } .mdl dd { margin: 0; } .pre { white-space: pre-wrap; } .minutes-body { min-height: 120pt; }
.mclose { margin-top: 20pt; } .msign-date { margin: 6pt 0; } table.msign { border-collapse: collapse; margin: 6pt 0 0 auto; } .msign th, .msign td { border: .8pt solid #000; padding: 8pt 10pt; min-width: 9em; } .msign th { font-weight: 400; background: #fafafa; } .msign td.in { min-width: 2.5em; text-align: right; color: #666; }
.mphotos { page-break-before: always; } .photo-print { display: grid; grid-template-columns: 1fr 1fr; gap: 10pt; } .photo-print figure { margin: 0; page-break-inside: avoid; } .photo-print img { width: 100%; max-height: 230pt; object-fit: contain; } .photo-print figcaption { font-size: 9pt; text-align: center; }

progress.aup { width: 100%; height: 14px; } textarea.mono { font-family: "BIZ UDGothic", "MS Gothic", monospace; font-size: .92rem; line-height: 1.6; }

.rate-row { display: grid; grid-template-columns: 9em 1.4fr 9em 8em 1fr auto auto; gap: 8px 10px; align-items: end; padding: 8px 0; border-bottom: 1px dashed var(--line); }
.rate-row .rate-btns { display: flex; gap: 6px; } .rate-row label { font-size: .8rem; }
@media (max-width: 900px) { .rate-row { grid-template-columns: 1fr 1fr; } }

/* ホームページのデザイン（見出しの種類・お知らせの並べ方） */
.hero-flat .hero-art, .hero-band .hero-art { display: none; }
.hero-flat .hero { padding: 40px 20px 62px; }
.hero-band .hero { padding: 40px 20px 62px; } .hero-band .hero h1, .hero-band .hero-sub, .hero-band .hero p { color: #fff; }
.news-cols.stack { grid-template-columns: 1fr; }
.site-body h1, .site-body h2, .site-body h3 { font-family: var(--site-font); }
/* デザインの設定画面 */
.themes { display: grid; grid-template-columns: repeat(auto-fill, minmax(190px, 1fr)); gap: 12px; margin-bottom: 18px; }
.theme { border: 2px solid var(--line); border-radius: 10px; background: #fff; padding: 8px; display: grid; gap: 6px; }
.theme.on { border-color: var(--brand); box-shadow: 0 0 0 2px var(--brand-soft); }
.theme .mock { height: 78px; border-radius: 6px; overflow: hidden; display: grid; grid-template-rows: 12px 6px 1fr; }
.theme .mock i { display: block; } .theme .mock .hd { background: rgba(255, 255, 255, .0); } .theme .mock .btns { display: grid; grid-template-columns: repeat(4, 1fr); gap: 3px; padding: 5px 8px; align-items: center; } .theme .mock .btns b { height: 16px; border-radius: 4px; display: block; }
.theme b.nm { font-size: .95rem; } .theme small { color: var(--muted); line-height: 1.4; min-height: 2.8em; }
.design-grid { display: grid; grid-template-columns: minmax(300px, 420px) 1fr; gap: 20px; align-items: start; }
@media (max-width: 1100px) { .design-grid { grid-template-columns: 1fr; } }
.preview-box { position: sticky; top: 8px; background: #fff; border: 1px solid var(--line); border-radius: 8px; padding: 10px; }
.preview-box iframe { width: 100%; height: 720px; border: 1px solid var(--line); border-radius: 6px; background: #fff; display: block; margin: 0 auto; }
.preview-box.phone iframe { width: 390px; max-width: 100%; }
.sec-row { display: flex; gap: 8px; align-items: center; padding: 6px 0; border-bottom: 1px dashed var(--line); } .sec-row .nm { flex: 1; }
.preview-bar { position: sticky; top: 0; z-index: 20; background: #fff3cd; color: #6b5200; text-align: center; padding: 4px 8px; font-size: .85rem; }

.hero-photo .hero-art { display: none; }
.hero-photo .hero { background-size: cover; background-position: center; padding: 70px 20px 80px; }
.hero-photo .hero h1, .hero-photo .hero-sub, .hero-photo .hero p { color: #fff; text-shadow: 0 1px 4px rgba(0, 0, 0, .5); }
.gal { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 12px; margin: 10px 0; }
.gal figure { margin: 0; } .gal img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: calc(var(--r) * .4); display: block; }
.gal figcaption { font-size: .85rem; color: var(--muted); margin-top: 4px; }
img.thumb.big { height: 80px; }

.checks { display: flex; flex-wrap: wrap; gap: 4px 16px; margin-bottom: 8px; }
.cal .ev { text-decoration: none; }

.promo-box { display: grid; gap: 4px; background: rgba(255, 255, 255, .08); border-radius: 8px; padding: 10px; font-size: .85rem; } .promo-box small { opacity: .75; } .promo-box img { max-width: 100%; border-radius: 4px; } .promo-box a { color: #fff; }
.faq-hint { background: #fffbe6; border: 1px solid #f0e2a0; border-radius: 8px; padding: 6px 12px; margin: 0 0 14px; } .faq-hint details { margin: 4px 0 4px 8px; } .faq-hint summary { cursor: pointer; }
.faq-item { margin: 8px 0; } .faq-item summary { cursor: pointer; } .faq-search input { margin-bottom: 8px; }

.howto-video { max-width: 100%; width: 720px; background: #000; border-radius: 8px; display: block; }

.inv { font-size: .95rem; } .inv-title { text-align: center; letter-spacing: .4em; font-size: 1.6rem; margin: 0 0 18px; }
.inv-void { text-align: center; color: #b00020; font-weight: 700; border: 2px solid #b00020; display: inline-block; padding: 2px 14px; transform: rotate(-6deg); }
.inv-top { display: flex; justify-content: space-between; gap: 20px; align-items: flex-start; } .inv-name { font-size: 1.25rem; border-bottom: 1px solid var(--ink); margin: 0 0 4px; padding-bottom: 2px; }
.inv-meta { display: grid; grid-template-columns: auto auto; gap: 2px 12px; margin: 0; } .inv-meta dt { color: var(--muted); } .inv-meta dd { margin: 0; }
.inv-from { text-align: right; margin: 14px 0; line-height: 1.6; } .inv-subject { margin: 10px 0 4px; }
.inv-total { font-size: 1.15rem; border: 1px solid var(--ink); padding: 8px 14px; display: inline-block; margin: 6px 0 14px; } .inv-total b { font-size: 1.4rem; }
.inv-tbl { width: 100%; margin-bottom: 14px; } .inv-tax { width: 60%; margin-left: auto; margin-bottom: 14px; } .inv .num { text-align: right; } .inv .c { text-align: center; }
.inv-bank { border: 1px solid var(--line); padding: 8px 12px; margin-bottom: 10px; }
.warn-text { color: #b00020; }

/* 年間スケジュールの印刷（協会の様式：A4たて・1枚に3か月） */
.ann-body { background: #fff; } .ann-page { max-width: 190mm; margin: 12px auto; padding: 0; page-break-after: always; font-family: "MS PGothic","Yu Gothic","Meiryo",sans-serif; color: #000; }
.ann-page:last-child { page-break-after: auto; }
.ann-date { text-align: right; font-size: 9pt; line-height: 1; } .ann-head { display: flex; justify-content: space-between; align-items: flex-end; margin: 0 0 1mm; }
.ann-title { font-size: 12pt; } .ann-org { font-size: 10pt; }
table.ann { width: 100%; border-collapse: collapse; table-layout: fixed; height: 262mm; border: 0; }
table.ann th, table.ann td { border: 1px solid #000; padding: 0 1mm; font-size: 7.5pt; line-height: 1.25; vertical-align: middle; }
table.ann .ann-m { border-top: 2px solid #000; font-weight: 400; font-size: 9pt; height: 5mm; } table.ann .ann-h { font-weight: 400; font-size: 7pt; height: 4mm; }
table.ann .m-first { border-left: 2px solid #000; } table.ann .m-last { border-right: 2px solid #000; } table.ann td.last { border-bottom: 2px solid #000; }
table.ann col.cd { width: 5.2mm; } table.ann col.cw { width: 5.2mm; } table.ann .ann-d { text-align: right; padding-right: 0.8mm; } table.ann .ann-w { text-align: center; padding: 0; }
table.ann .ann-e { border: 0; } table.ann .gray { background: #d9d9d9; } table.ann .red { color: #e00000; }
table.ann .ann-t { font-size: 7pt; text-align: left; } table.ann .ann-t.small { font-size: 5.6pt; line-height: 1.2; } table.ann .hol { color: #e00000; }
table.ann td.ann-t { position: relative; } table.ann .ent { padding: 0.3mm 0; }
table.ann td.br-top::before, table.ann td.br-mid::before, table.ann td.br-bot::before { content: ""; position: absolute; left: 1.2mm; width: 2mm; border-right: 1px solid #000; }
table.ann td.br-top::before { top: 50%; bottom: 0; border-top: 1px solid #000; } table.ann td.br-mid::before { top: 0; bottom: 0; } table.ann td.br-bot::before { top: 0; bottom: 50%; border-bottom: 1px solid #000; }
table.ann td.br-top, table.ann td.br-mid, table.ann td.br-bot { padding-left: 4.5mm; }
@media print { .ann-body { background: #fff; } .ann-page { margin: 0 auto; max-width: none; } }

.faxbody { white-space: pre-wrap; font-family: inherit; background: #f6f7f6; border: 1px solid var(--line); border-radius: 8px; padding: 10px 14px; margin: 8px 0; }

.quick-bar { display: flex; gap: 14px; align-items: center; flex-wrap: wrap; position: sticky; top: 0; background: var(--bg, #fff); padding: 8px 0; z-index: 2; border-bottom: 1px solid var(--line); margin-bottom: 6px; }
.quick-bar input[type=search] { min-width: 18em; } .quick-count { margin-left: auto; font-size: 1.05rem; } .quick-count b { font-size: 1.25rem; }
table.quick td.q { text-align: center; padding: 2px; } .qopt { display: block; cursor: pointer; } .qopt input { position: absolute; opacity: 0; pointer-events: none; }
.qopt span { display: block; padding: 8px 4px; border: 2px solid var(--line); border-radius: 8px; background: #fff; min-width: 4.2em; }
.qopt input:checked + span { background: #1f6f43; color: #fff; border-color: #1f6f43; font-weight: 700; }
tr[data-quick-row]:focus { outline: 3px solid #e0a800; outline-offset: -3px; background: #fff8dc; } tr[data-quick-row].hide { display: none; }

/* 協会組織図（協会について）：SVG。狭い画面では、横にずらして見られる */
.oc { max-width: 820px; margin: 18px auto 6px; padding: 0; } .oc-cap { font-weight: 700; font-size: 1.15rem; margin: 0 0 8px; }
.oc-wrap { overflow-x: auto; } .oc svg { display: block; width: 100%; min-width: 620px; height: auto; background: #fff; }
@media print { .oc svg { -webkit-print-color-adjust: exact; print-color-adjust: exact; } }

/* 罫線で囲った表（「| 項目 | 内容 |」で書く） */
.article table.rt { border-collapse: collapse; width: 100%; max-width: 640px; margin: 10px 0 18px; background: #fff; } .article table.rt th, .article table.rt td { border: 1px solid #d3d6d3; padding: 14px 20px; text-align: left; vertical-align: middle; line-height: 1.7; }
.article table.rt th { width: 6.5em; background: #fafbfa; font-weight: 700; white-space: nowrap; }
@media (max-width: 640px) { .article table.rt th, .article table.rt td { padding: 10px 12px; } .article table.rt th { width: 4.5em; } }

/* 表の見出しのセル（「| !項目 | !内容 |」）と、写真の並び（「![説明](/static/img/…)」） */
.article table.rt th[scope=col] { background: #fafafa; }
.article table.rt-wide { width: 100%; max-width: none; } .article table.rt-wide td { vertical-align: top; }

.article ul.img-list { list-style: none; display: flex; gap: 22px; justify-content: space-between; margin: 2em 0; padding: 0; } .article ul.img-list li { flex: 1 1 0; margin: 0; padding: 0; } .article ul.img-list img { width: 100%; max-width: 270px; height: auto; display: block; }
@media (max-width: 640px) { .article ul.img-list { gap: 8px; } }
/* 「産業廃棄物とは」「入会のご案内」：もとのホームページと同じ見出し（緑の字・下線／●／灰色の帯） */
.rich-page h3 { color: #28cc61; border: 0; border-bottom: 1px solid #28cc61; background: none; padding: 0 .5em .3em; margin: 1.4em 0 1em; font-size: 1.35rem; }
.rich-page h3::before { content: none; }
.rich-page h4 { background: none; border: 0; padding: 0; margin: 0 0 1em 1em; color: #111; font-size: 1.1rem; } .rich-page h4::before { content: "●"; }
.rich-page h5 { background: #f3f3f3; padding: .5em 1em; margin: 1.6em 0 1em; font-size: 1.05rem; color: #111; }
.rich-page p { margin: 0 .5em; } .rich-page .red-b { color: #f00; font-weight: 700; }
.rich-page table.rt { margin-left: 1em; margin-right: 1em; border-color: #ccc; } .rich-page table.rt th, .rich-page table.rt td { font-size: .9rem; padding: .5em 1em; border-color: #ccc; }
.rich-page table.rt th { width: auto; white-space: normal; } .rich-page table.rt th[scope=col] { text-align: center; }
.article ul.banner-list { list-style: none; display: flex; flex-wrap: wrap; gap: 6px 0; margin: 2em .5em 3em; padding: 0; } .article ul.banner-list li { margin: 0; padding: 0; } .article ul.banner-list img { max-width: 350px; width: 100%; height: auto; margin: 0 .5em; display: block; }
@media (max-width: 640px) { .article ul.banner-list { margin: 1.2em 0 2em; } .article ul.banner-list li { flex: 1 1 100%; } .article ul.banner-list img { margin: 0; } }
/* 産業廃棄物とは：番号の表・種類の表 */
.page-waste table.rt { width: calc(100% - 2em); }
.page-waste table.rt-wide th:first-child { width: 2.4em; text-align: center; padding-left: 8px; padding-right: 8px; } .page-waste table.rt-wide th:nth-child(2) { width: 11em; white-space: normal; }
.page-waste table.rt:not(.rt-wide) { table-layout: fixed; width: 76%; max-width: none; } .page-waste table.rt:not(.rt-wide) th { width: auto; } .page-waste table.rt:not(.rt-wide) th:first-child { width: 11em; }
@media (max-width: 640px) { .page-waste table.rt-wide th:first-child, .page-waste table.rt-wide th:nth-child(2) { width: auto; } }
/* 入会のご案内：支部の表は、中身の幅 */
.page-join table.rt, .page-join table.rt-wide { width: auto; max-width: calc(100% - 2em); margin: 2em 1em 3em; } .page-join table.rt td { vertical-align: middle; }

/* 表の下の出典（「> 出展：…」）と、大きな図（画像と出典） */
.article table.rt caption { caption-side: bottom; text-align: right; margin: .5em .5em 0 0; font-size: .8rem; } .article table.rt caption a { text-decoration: none; }
.article figure.fig { margin: 4em 1em 0; } .article figure.fig img { display: block; max-width: 100%; height: auto; } .article figure.fig figcaption { text-align: right; margin: .5em .5em 0 0; font-size: .8rem; } .article figure.fig figcaption a { text-decoration: none; }
/* マニフェスト：票の表は、中身の幅。見出しのセルは中央 */
.page-manifest table.rt { width: auto; max-width: calc(100% - 2em); margin: 3em 1em 3em; } .page-manifest table.rt th { text-align: center; white-space: nowrap; }

/* 固定ページの部品：緑のボタン・番号の見出し・枠つきの説明・地図・年度のバナー */
.article .wbtn-list { margin: 1.5em 0 0; } .article .wbtn { display: block; width: 80%; margin: 1em auto 1.6em; padding: .5em; font-size: 1.3em; text-decoration: none; color: #fff !important; font-weight: 700; text-align: center; text-shadow: 0 0 5px #66bc27; border: 1px solid #66bc27; background: linear-gradient(#91d65d 0%, #5dc313 50%, #91d65d); } .article .wbtn:hover { opacity: .8; }
.rich-page { counter-reset: rn; } .rich-page h6.num { counter-increment: rn; font-size: 1.15rem; margin: 2em 0 .8em 1em; color: #111; } .rich-page h6.num::before { content: counter(rn) "．"; }
.article .info-box { width: 80%; margin: 2em auto 0; display: flex; justify-content: center; background: #fefdf3; border: 1px solid #ebe391; padding: 2em 1em; align-items: center; gap: 1em; } .article .info-box h4 { margin: 0 0 .6em; font-size: 1.05rem; } .article .info-box ol { text-align: left; margin: 1em 1em 0 2.5em; padding: 0; } .article .info-box li { margin: 0 0 .4em; line-height: 1.6; } .article .info-box img { width: 130px; margin: 0 1em; display: block; }
.article .map-box { margin: 2em 1em 3em; } .article .map-box iframe { display: block; width: 100%; height: 300px; border: 0; background: #e3e2de; } .article .map-box p { text-align: right; margin: .4em 0 0; font-size: .9rem; }
.article ul.tile-list { list-style: none; display: flex; flex-wrap: wrap; margin: 2em 1em 0; padding: 0; } .article ul.tile-list li { flex: 0 0 33%; margin: 0; padding: 0; } .article ul.tile-list a { display: block; width: 90%; min-height: 80px; line-height: 80px; text-decoration: none; font-size: 1.6em; font-weight: 700; text-align: left; padding: 0 .5em; margin: 0 0 1em; background: no-repeat center right #ebebeb; border: 1px solid #efefef; color: #999 !important; box-sizing: border-box; }
.article ul.tile-list li.on a { background-color: #28cc61; border-color: #28cc61; color: #fff !important; } .article ul.tile-list a:hover { background-color: #28cc61; border-color: #28cc61; color: #fff !important; opacity: .8; }
.page-recycle p { line-height: 2; } .page-recycle h5 { margin-left: 2em; margin-right: 1em; } .page-recycle h6.num ~ p { margin-left: 2.6em; } .page-recycle h6.num ~ h5 + p { margin-left: 3em; } .page-recycle h4 { margin-top: 1.5em; }
.page-links ul, .page-open ul { margin: 0 1em 2em 2em; } .page-links li { line-height: 1.5; }
@media (max-width: 640px) { .article .wbtn { width: 100%; font-size: 1.05em; } .article .info-box { width: 100%; flex-direction: column; } .article ul.tile-list li { flex-basis: 100%; } .article ul.tile-list a { width: 100%; } .page-recycle h6.num ~ p, .page-recycle h6.num ~ h5 + p { margin-left: 1em; } }

/* 公開情報：報告書のリンクを、「／」で区切って横に並べる */
.page-open ul.report-list { list-style: none; display: flex; flex-wrap: wrap; margin: 1.5em 1em 2em; padding: 0; } .page-open ul.report-list li { margin: 0; } .page-open ul.report-list li + li::before { content: "／"; margin: 0 .8em; color: #555; }
.page-open ul { margin: 0 1em 2em 2.4em; } .page-open ul li { margin: 0; line-height: 1.7; }

.article .info-box h4::before { content: none; } .rich-page h6.num { text-align: left; } .page-about h4::before { content: none; }
.page-about h4 { margin-left: 1em; font-size: 1.05rem; }

.article h6.num, .rich-page h6.num { text-align: left !important; display: block; margin: 2em 0 .8em 1em; }

/* お問い合わせ（これまでの協会のホームページの形：電話・FAXと、3項目のメールフォーム） */
.page-contact #inq_tel { margin-top: 3em; } .page-contact #inq_tel dl { margin: 0 1.5em; display: flex; flex-wrap: wrap; } .page-contact #inq_tel dt::after { content: "："; } .page-contact dd { margin: 0; } .page-contact #inq_tel dt, .page-contact #inq_tel dd { margin-bottom: .2em; }
.page-contact #mailform { text-align: center; margin-top: 3em; } .page-contact #mailform > h4, .page-contact #inq_tel > h4 { text-align: left; }
.page-contact #mailform form { text-align: center; } .page-contact #mailform dl { display: flex; text-align: left; border: 1px solid #ccc; border-top: 0; margin: 0 1em; } .page-contact #mailform dl:first-of-type { border-top: 1px solid #ccc; margin-top: 2em; }
.page-contact #mailform dt, .page-contact #mailform dd { padding: 1em; margin: 0; } .page-contact #mailform dt { flex: 0 0 20%; background: #f3f3f3; font-size: .9rem; } .page-contact #mailform dd { flex: 1 1 80%; }
.page-contact #mailform input, .page-contact #mailform textarea { width: 100%; border: 1px solid #ccc; font-size: 1rem; box-sizing: border-box; padding: 4px 6px; font-family: inherit; } .page-contact #mailform input { height: 1.9em; }
.page-contact #submit_box { text-align: center; } .page-contact .btn-send { height: 3em; width: 8em; margin: 2em auto 0; border: 1px solid #767676; border-radius: 3px; background: #efefef; font-size: 1rem; cursor: pointer; } .page-contact .btn-send:hover { background: #e2e2e2; }
.page-contact .hp { position: absolute; left: -9999px; }
@media (max-width: 640px) { .page-contact #mailform dl { flex-direction: column; } .page-contact #mailform dt, .page-contact #mailform dd { flex-basis: auto; } }

/* ホームページの構成で足す部品 */
.blk{margin:1.6em 0}.blk-title{font-size:1.25rem;color:#28a64f;border-bottom:1px solid #999;padding-bottom:.3em;margin:1.4em 0 .8em}
.blk-catch{font-size:1.4rem;font-weight:700;color:#1d3fbf;line-height:1.6;text-align:center}
.blk-image{text-align:center}.blk-image img{max-width:100%;height:auto}
.blk-links ul{list-style:none;display:flex;flex-wrap:wrap;gap:12px;padding:0;margin:0}.blk-links li{margin:0}.blk-links a{display:block;border:2px solid #8a8f94;border-radius:14px;padding:.8em 1.4em;text-decoration:none;font-weight:700;color:#222;background:#fff}.blk-links a:hover{background:#f0faf4;border-color:#28cc61}
.blk-banner{text-align:center}.blk-banner a{display:inline-block;border:2px solid #e9a64a;border-radius:18px;padding:1em 2.4em;font-weight:700;text-decoration:none;color:#7a4a00;background:#fff8ec}
.blk-committees h3{font-size:1rem;margin:.8em 0 .3em}.blk-committees ul,.blk-files ul{margin:0 0 .6em 1.4em}

.nav-dd{position:relative;display:flex}.nav-sub{display:none;position:absolute;top:100%;left:0;min-width:100%;background:var(--nav-bg);z-index:40;flex-direction:column;box-shadow:0 4px 10px rgba(0,0,0,.2)}.nav-sub a{border-left:0;padding:10px 18px;white-space:nowrap;font-size:.92em}.nav-dd:hover .nav-sub,.nav-dd:focus-within .nav-sub{display:flex}

/* 予算の表：行の余白を少なく、入力欄を細くして、画面に収まるようにする */
.tbl.budget { width: 100%; font-size: .9rem; }
.tbl.budget th, .tbl.budget td { padding: 2px 4px; line-height: 1.2; }
.tbl.budget th.num { white-space: normal; min-width: 4.4em; font-size: .76rem; line-height: 1.15; }
.tbl.budget input.amt { width: 100%; min-width: 4.4em; max-width: 78px; min-height: 26px; height: 26px; padding: 1px 5px; font-size: .9rem; text-align: right; box-sizing: border-box; }
.tbl.budget td:nth-child(-n+2) { white-space: nowrap; }
.tbl.budget td:nth-child(2) { font-size: .8rem; color: var(--muted); }

/* リサイクル認定製品の年度別ページ：番号・写真・事業者の表 */
.page-product-year h2 { margin-top: 1.6em; }
.prod-list { display: grid; gap: 14px; margin: 1.2em 0; }
.prod-item { display: grid; grid-template-columns: 2.2em 200px 1fr; gap: 14px; border: 1px solid #ccc; border-radius: 6px; padding: 12px; background: #fff; align-items: start; }
.prod-item:not(:has(.prod-no)) { grid-template-columns: 200px 1fr; }
.prod-no { font-weight: 700; color: #28a64f; font-size: 1.3em; text-align: center; }
.prod-img img { width: 100%; height: auto; display: block; border-radius: 4px; }
.prod-body h3 { margin: 0 0 .5em; font-size: 1.05rem; }
.prod-t { width: 100%; border-collapse: collapse; font-size: .92rem; }
.prod-t th, .prod-t td { border: 1px solid #ccc; padding: 5px 9px; text-align: left; vertical-align: top; }
.prod-t th { width: 8.5em; background: #f3f3f3; font-weight: 700; white-space: nowrap; }
.prod-photo { margin: 1.2em 0; text-align: center; } .prod-photo img { max-width: 100%; height: auto; }
.prod-nav { display: flex; justify-content: space-between; gap: 12px; flex-wrap: wrap; margin-top: 2em; }
@media (max-width: 640px) { .prod-item, .prod-item:not(:has(.prod-no)) { grid-template-columns: 1fr; } .prod-no { text-align: left; } .prod-img img { max-width: 260px; } }

/* 動画のページ */
.page-movie .movie-list { list-style: none; display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 22px; padding: 0; margin: 1.2em 0; }
.page-movie .movie-list li { margin: 0; text-align: center; }
.page-movie .movie-product { display: block; font-weight: 700; margin-bottom: .4em; }
.page-movie .movie-company { display: block; color: #555; font-size: .9rem; margin-top: .4em; }
.page-movie video { width: 100%; height: auto; background: #000; border-radius: 4px; }
.page-movie .movie-missing { aspect-ratio: 16 / 9; display: flex; align-items: center; justify-content: center; background: #f3f3f3 center / cover no-repeat; border-radius: 4px; color: #555; font-size: .9rem; }

.banners2 a.hiroba { grid-column: 1 / -1; }

.perm-t th.num, .perm-t td.num { text-align: center; min-width: 5.6em; max-width: 7em; padding-left: 6px; padding-right: 6px; } .perm-t input[type=checkbox] { width: 20px; height: 20px; }
.perm-t th:nth-child(1), .perm-t td:nth-child(1) { min-width: 11em; white-space: nowrap; position: sticky; left: 0; background: #fff; z-index: 1; } .perm-t thead th:nth-child(1) { background: #eef4f1; }
.perm-t th:nth-child(2), .perm-t td:nth-child(2) { min-width: 4.5em; white-space: nowrap; }
.perm-t thead th.num { white-space: normal; width: 6.6em; } .perm-t th small { display: block; font-weight: 400; line-height: 1.3; white-space: normal; overflow-wrap: anywhere; }
.perm-t td, .perm-t th { vertical-align: middle; } .danger { color: #c0143c; }
/* 利用者の一覧：名前・権限は折り返さない。保存の欄は、項目ごとに題名を付けて並べる */
.users-t th, .users-t td { vertical-align: middle; }
.users-t th:nth-child(-n+3), .users-t td:nth-child(-n+3), .users-t th:nth-child(n+5), .users-t td:nth-child(n+5) { white-space: nowrap; }
.user-form { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 10px 14px; }
.user-form .uf { display: flex; flex-direction: column; gap: 3px; font-size: .78rem; color: var(--muted); }
.user-form .uf input, .user-form .uf select { font-size: .95rem; color: var(--ink); min-height: 34px; }
.user-form .uf-wide select { min-width: 17em; max-width: 24em; }
.user-form .uf-check { white-space: nowrap; align-self: center; margin: 0; }
/* 役職・グループ：開いてチェックを付ける */
.gp { position: relative; } .gp summary { cursor: pointer; list-style: none; padding: 7px 12px; border: 1px solid var(--line); border-radius: 8px; background: #fff; max-width: 24em; min-width: 12em; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: .95rem; color: var(--ink); }
.gp summary::-webkit-details-marker { display: none; } .gp summary::after { content: " ▾"; color: var(--muted); }
.gp[open] summary { border-color: var(--brand); }
.gp-body { position: absolute; z-index: 20; left: 0; top: 100%; margin-top: 4px; background: #fff; border: 1px solid var(--line); border-radius: 10px; padding: 10px 14px; box-shadow: 0 6px 18px rgba(0,0,0,.18); min-width: 24em; max-width: 34em; max-height: 60vh; overflow: auto; white-space: normal; }
.gp-body fieldset { border: 0; padding: 0; margin: 0 0 8px; } .gp-body legend { font-weight: 700; font-size: .85rem; padding: 0; margin-bottom: 2px; }
.gp-body .check { display: inline-flex; margin: 2px 12px 2px 0; white-space: nowrap; }
.user-form .uf-note { flex-basis: 100%; }
.aud-cat { margin: 4px 0 8px; } .aud-cat > b { display: block; font-size: .85rem; margin-bottom: 2px; }
.gp-body, .gp-body .check, .gp summary { font-size: .95rem; color: var(--ink); }
/* 保存した行：色を付けて、「保存しました」を出す（ページが開き直っても、どの行か分かるように） */
.users-t tr.saved { background: #e7f6ec; animation: saved-fade 8s ease-out 2s forwards; }
.users-t tr { scroll-margin-top: 90px; }
.save-ok { color: #166534; font-weight: 700; align-self: center; white-space: nowrap; }
@keyframes saved-fade { to { background: transparent; } }
.perm-t tr.saved td { background: #e7f6ec; } .perm-t tr { scroll-margin-top: 90px; }
.when { margin: 0 0 12px; padding: 8px 12px; border-radius: 6px; font-size: .92rem; background: #e7f6ec; color: #164d2c; }
.when.warn { background: #fff4d6; color: #6b4a00; }
/* 会報の記事の写真 */
.issue .s-photos { display: grid; gap: 6px; margin: 10px 0 14px; } .issue .s-photos.n1 { grid-template-columns: minmax(0, 70%); justify-content: center; } .issue .s-photos.n2 { grid-template-columns: 1fr 1fr; } .issue .s-photos.n3 { grid-template-columns: repeat(3, 1fr); } .issue .s-photos.n4 { grid-template-columns: repeat(4, 1fr); }
.issue .s-photos figure { margin: 0; break-inside: avoid; } .issue .s-photos img { display: block; width: 100%; aspect-ratio: 4 / 3; object-fit: cover; } .issue .s-photos figcaption { font-size: .78rem; text-align: center; margin-top: 2px; }
.issue .g-head { display: flex; align-items: center; gap: 14px; margin: 6px 0 12px; } .issue .g-head .g-portrait { margin: 0; flex: none; } .issue .g-head .g-portrait img { display: block; width: 30mm; height: 36mm; object-fit: cover; border-radius: 50% / 45%; } .issue .g-head .byline { flex: 1; font-weight: 700; margin: 0; }
.slot-photos { margin-top: 6px; } .slot-photos .sec-row { display: flex; align-items: center; gap: 10px; margin: 4px 0; }
.issue .o-photos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 14px 10px; margin: 8px 0; } .issue .o-photos figure { margin: 0; text-align: center; break-inside: avoid; } .issue .o-photos img { display: block; margin: 0 auto; width: 34mm; height: 34mm; object-fit: cover; border-radius: 50%; } .issue .o-photos figcaption { margin-top: 3px; font-weight: 700; font-size: .85rem; } .issue .o-photos figcaption small { font-weight: 400; }
.issue dl.assembly { grid-template-columns: 9em 1fr; } .issue dl.assembly dt { white-space: nowrap; }
.issue .colophon .issuer { text-align: right; } .issue .guide-map { margin: 24px auto 0; max-width: 85%; text-align: center; } .issue .guide-map img { max-width: 100%; border: 1px solid #000; } .issue .guide-map figcaption { font-size: .8rem; }
.issue .back-cover { display: grid; gap: 16px; justify-items: center; align-content: center; } .issue .back-cover figure { margin: 0; text-align: center; } .issue .back-cover img { display: block; max-width: 100%; max-height: 80mm; object-fit: contain; } .issue .back-cover figcaption { font-size: .75rem; }
/* 会報の表紙・目次・ページの見出し（38号の様式） */
.issue .sheet.cover { padding: 0; border: 0; background: #1a66b4; max-width: 210mm; margin: 0 auto 18px; overflow: hidden; page: cover; }
.issue .cv-box { container-type: inline-size; position: relative; width: 100%; aspect-ratio: 210 / 297; display: flex; flex-direction: column; color: #fff; background: #1a66b4; }
.issue .cv-head { display: flex; justify-content: space-between; align-items: flex-start; height: 33cqw; padding: 3cqw 5cqw 0; box-sizing: border-box; }
.issue .cv-kicker { margin: 0; font-size: 3.2cqw; font-weight: 700; letter-spacing: .1em; line-height: 1; }
.issue .cover-title { margin: 0; color: #fff; font-size: 17cqw; line-height: 1; letter-spacing: .02em; font-weight: 900; -webkit-text-stroke: .5cqw #fff; font-family: 'Yu Gothic UI', 'Meiryo UI', 'Hiragino Maru Gothic ProN', sans-serif; }
.issue .cover-sub { margin: .5cqw 0 0; font-size: 2.6cqw; }
.issue .cv-right { text-align: right; padding-top: 6cqw; } .issue .cv-no { margin: 0; font-size: 12cqw; font-weight: 700; line-height: 1; } .issue .cv-no span { font-size: 6cqw; margin-right: .6cqw; }
.issue .cv-ym { margin: 1.4cqw 0 0; padding-top: 1cqw; border-top: .3cqw solid #fff; font-size: 5.6cqw; font-weight: 700; letter-spacing: .12em; line-height: 1; }
.issue .cover-photo { position: relative; flex: 1; min-height: 0; margin: 0; background: linear-gradient(#7fb0e0, #cfe3f5); } .issue .cover-photo img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; max-height: none; object-fit: cover; border: 0; margin: 0; }
.issue .cover-photo figcaption { position: absolute; right: 2cqw; bottom: 1cqw; margin: 0; font-size: 1.5cqw; color: #fff; text-shadow: 0 0 3px rgba(0,0,0,.7); }
.issue .cv-foot { margin: 0; height: 7cqw; line-height: 7cqw; text-align: center; font-size: 3.4cqw; letter-spacing: .08em; background: #1a66b4; color: #fff; }
@media print { .issue .sheet.cover { width: 210mm; height: 297mm; max-width: none; margin: 0; } .issue .cv-box { width: 210mm; height: 297mm; aspect-ratio: auto; } }
.issue .toc { page: toc; }
.issue .toc-bar { display: flex; justify-content: space-between; align-items: flex-end; background: linear-gradient(#bdbdbd, #f4f4f4); padding: 4px 10px 0; margin-bottom: 14px; }
.issue .toc-bar h2 { margin: 0; font: italic 900 2.6rem/1.1 Georgia, 'Times New Roman', serif; color: #555; text-shadow: 1px 1px 0 #fff; letter-spacing: 0; text-align: left; } .issue .toc-bar .toc-title { margin: 0 0 6px; font-weight: 700; }
.issue .toc-group h3 { margin: 0 0 6px; padding-bottom: 1px; font-style: italic; font-size: 1.25rem; color: #555; border-bottom: 7px solid #8d8d8d; border-bottom-right-radius: 7px; }
.issue .toc li::before { content: '●'; font-size: .7em; margin-right: .2em; align-self: center; }
.issue .toc::after { content: ''; display: block; height: 7px; margin-top: 8px; background: #8d8d8d; }
.issue.print-flow .toc li { line-height: 1.5; } .issue.print-flow .toc-group { margin-bottom: 9px; }
.issue .sec-label { display: flex; align-items: center; gap: 6px; margin: 0 0 .8em; font-size: 1.35rem; font-weight: 700; } .issue .sec-label::after { content: ''; flex: 1; height: 7px; background: #000; }
.issue .s-photos.wide { grid-template-columns: 1fr; justify-content: stretch; } .issue .s-photos.wide img { aspect-ratio: auto; object-fit: contain; }
.issue.print-flow .toc li { line-height: 1.3; font-size: .9rem; } .issue.print-flow .toc-group { margin-bottom: 5px; } .issue.print-flow .toc-group h3 { margin-bottom: 3px; font-size: 1.1rem; } .issue.print-flow .toc-bar { margin-bottom: 8px; } .issue.print-flow .toc-bar h2 { font-size: 2.2rem; }
/* 会報：記事の中の写真（左右に寄せる）・飾り・余白 */
.issue .msg { display: flow-root; margin: 0 0 14px; } .issue .msg h2, .issue .msg h3, .issue .msg h4 { margin: 4px 0 6px; padding-bottom: 2px; border-bottom: 1px solid #000; font-size: 1.05rem; }
.issue .in-photo { margin: 2px 0 6px; } .issue .in-photo.l { float: left; margin-right: 14px; } .issue .in-photo.r { float: right; margin-left: 14px; } .issue .in-photo img { display: block; width: 34mm; height: auto; object-fit: cover; border-radius: 50% / 46%; } .issue .in-photo figcaption { font-size: .75rem; text-align: center; }
.issue .deco { margin: 0; } .issue .deco img { display: block; width: 100%; height: auto; } .issue .deco.top { margin-bottom: 8px; } .issue .deco.bottom { margin-top: 14px; }
@media screen { .issue.print-flow .sheet:not(.cover) { padding: 10mm 17mm; border-bottom: 1px solid #ddd; } .issue.print-flow .sheet.adpage, .issue.print-flow .rsheet { padding: 6mm; } }
.issue .in-photo.c { float: none; margin: 6px 0 14px; } .issue .in-photo.c img { width: 100%; border-radius: 0; }
.issue .rsheet { page: roster; }
@media screen { .issue.print-flow .rsheet { padding: 0; overflow-x: auto; } }
.issue.print-flow .toc li { line-height: 1.25; font-size: .88rem; } .issue.print-flow .toc-group { margin-bottom: 4px; }
.issue .back-cover.n1 img { max-height: 262mm; width: auto; }
/* ── 会報：38号の書体・体裁（2026-10-16。原本との比べで直した） ── */
/* 本文は明朝（38号と同じ）、見出し・表・目次はゴシック。段落の頭は1字下げ */
.issue { font-family: 'Yu Mincho', 'YuMincho', 'Hiragino Mincho ProN', 'HG明朝E', 'MS PMincho', 'MS Mincho', serif; font-size: 10.2pt; line-height: 1.7; }
.issue h1, .issue h2, .issue h3, .issue h4, .issue h5, .issue .sec-label, .issue .toc, .issue .cv-box, .issue table, .issue .byline, .issue figcaption { font-family: 'Yu Gothic', 'YuGothic', 'Meiryo', 'Hiragino Kaku Gothic ProN', sans-serif; }
.issue .sheet > p:not(.sec-label):not(.byline):not(.issuer), .issue .report > p, .issue .msg > p { text-indent: 1em; margin: 0 0 .45em; }
/* 記事・行事の題名は、中央に太く */
.issue .sheet > h2, .issue .report > h3 { text-align: center; font-size: 1.3em; font-weight: 700; margin: .5em 0 .9em; }
.issue .report > h3 { margin-top: 1.1em; }
/* ごあいさつ：題名は中央（字間を空けて）、顔写真と、右に肩書・氏名。左のふちに模様の帯 */
.issue .sheet.greeting { position: relative; }
.issue .sheet.greeting::before { content: ''; position: absolute; left: -11mm; top: 0; bottom: 0; width: 7mm; background: repeating-linear-gradient(135deg, #8a8a8a 0 1px, #fff 1px 3px); }
.issue .sheet.greeting > h2 { font-size: 1.7em; letter-spacing: .35em; margin: 1.2em 0 .8em; }
.issue .sheet.greeting .g-head { justify-content: center; gap: 10mm; margin-bottom: 14px; }
.issue .sheet.greeting .g-head .byline { flex: none; text-align: left; font-weight: 700; }
/* 表紙：38号の青（#006cb7）と帯の高さ。ロゴの画像があれば、それを使う */
.issue .sheet.cover, .issue .cv-box, .issue .cv-foot { background: #006cb7; }
.issue .cv-head { height: 27.2cqw; }
.issue .cover-logo { display: block; height: 18cqw; width: auto; margin-top: 1cqw; }
/* 目次：2ページ。ゆったり */
.issue.print-flow .toc li { line-height: 1.9; font-size: 10pt; }
.issue.print-flow .toc-group { margin-bottom: 20px; }
.issue.print-flow .toc-group h3 { margin-bottom: 8px; font-size: 1.3rem; }
.issue.print-flow .toc-bar { margin-bottom: 14px; } .issue.print-flow .toc-bar h2 { font-size: 2.6rem; }
.issue .toc.toc2 { padding-top: 6mm; }
/* 本文の中の「[写真1,2]」：横に並べる。写真の縦横の比は、そのまま */
.issue .s-photos.row { gap: 8px; margin: 8px 0 12px; } .issue .s-photos.row img { aspect-ratio: auto; object-fit: contain; }
.issue .in-photo.s { float: none; width: 55%; margin: 6px auto 12px; } .issue .in-photo.s img { width: 100%; border-radius: 0; }
.issue .cv-right { padding-top: 7cqw; } .issue .cv-no { font-size: 9.5cqw; } .issue .cv-no span { font-size: 4.6cqw; } .issue .cv-ym { margin-top: .6cqw; padding-top: .8cqw; font-size: 4.6cqw; }
.issue .g-head .g-portrait img { width: 37mm; height: 46mm; } .issue .sheet.greeting::before { background: repeating-linear-gradient(135deg, #666 0 1.2px, #fff 1.2px 3px); }
.issue { line-height: 1.62; font-size: 10pt; } .issue .s-photos.row { margin: 5px 0 8px; } .issue .report > h3 { margin-top: .7em; margin-bottom: .6em; } .issue .sheet > h2 { margin-bottom: .6em; } .issue .in-photo.c, .issue .in-photo.s { margin-bottom: 8px; }
/* 会報：ページの名前（印刷で、上の見出しと下の線・番号を付ける）。ページの見出しが付くので、記事の中の見出しは、印刷では隠す */
.issue .sheet.pg-news { page: news; } .issue .sheet.pg-admin { page: admin; } .issue .sheet.pg-office { page: office; } .issue .sheet.pg-info { page: info; }
@media print { .issue.print-flow .sheet.pg-news .sec-label, .issue.print-flow .sheet.pg-admin .sec-label, .issue.print-flow .sheet.pg-office .sec-label, .issue.print-flow .sheet.pg-info .sec-label { display: none; } }
/* 総会の報告：項目の見出し・改ページ・細い写真（リボン） */
.issue .item-h { margin: .7em 0 .3em; font-weight: 700; text-indent: 0; } .issue .pb { break-before: page; height: 0; margin: 0; padding: 0; }
.issue .in-photo.rib { float: none; width: 36%; margin: 8px auto 4px; } .issue .in-photo.rib img { width: 100%; border-radius: 0; }
.issue .in-photo.s { width: 45%; } .issue .in-photo.b { float: none; width: 85%; margin: 6px auto 10px; } .issue .in-photo.b img { width: 100%; border-radius: 0; }
.issue .s-photos.row.n2 { width: 82%; margin-left: auto; margin-right: auto; } .issue .s-photos.row.n3 { width: 92%; margin-left: auto; margin-right: auto; }
.issue .in-photo.s { width: 40%; } .issue .s-photos.row.n2 { width: 76%; } .issue dl.assembly { line-height: 1.5; gap: 0 10px; }
.issue .s-photos.wide img { max-height: 246mm; width: auto; max-width: 100%; margin: 0 auto; }
/* 役員紹介の表：幅を決めて、右の罫線まで、ページの内側に収める */
table.off-t { table-layout: fixed; width: 100%; } .off-t th:nth-child(1), .off-t td.no { width: 5.5%; } .off-t th:nth-child(2) { width: 17%; } .off-t th:nth-child(3) { width: 22%; } .off-t th:nth-child(4) { width: 9%; } .off-t th:nth-child(5) { width: 15.5%; } .off-t th:nth-child(6) { width: 31%; } .off-t td { overflow-wrap: anywhere; }
.issue dl.meta-off { display: none; }
/* 役員の顔写真のページ：3人の行・4人の行。1ページに収める */
.issue .o-photos { display: block; margin: 4mm 0 0; } .issue .o-row { display: flex; justify-content: center; gap: 6mm; margin-bottom: 7mm; break-inside: avoid; }
.issue .o-row figure { margin: 0; text-align: center; } .issue .o-row.n3 img { width: 34mm; height: 34mm; } .issue .o-row.n4 img { width: 31mm; height: 31mm; }
.issue .o-row img { display: block; margin: 0 auto; object-fit: cover; border-radius: 50%; } .issue .o-row figcaption { margin-top: 2mm; font-size: 9.5pt; font-weight: 700; }
/* 飾りのあるページ（支部長の新年抱負など）：下の飾りを、ページの下に。本文の文字を少し大きく、2人のあいだを広く */
@media print { .issue.print-flow .sheet:has(> .deco.bottom) { display: flex; flex-direction: column; min-height: 669pt; font-size: 10.5pt; line-height: 17pt; } .issue.print-flow .sheet:has(> .deco.bottom) > .deco.bottom { margin-top: auto; } .issue.print-flow .sheet:has(> .deco) .msg { margin-bottom: 17pt; } .issue.print-flow .sheet:has(> .deco.top) > .deco.top { margin-bottom: 0; } }
.issue .o-row.n3 img { width: 38mm; height: 38mm; } .issue .o-row.n4 img { width: 35mm; height: 35mm; } .issue .o-row { margin-bottom: 9mm; gap: 7mm; } .issue .o-row figcaption { font-size: 10pt; }
.issue .boxlabel { display: inline-block; border: 1.5px solid #000; padding: 1px 16px; margin: 12px 0 8px; font-weight: 700; text-indent: 0; font-family: 'Yu Gothic', 'Meiryo', sans-serif; }
/* 38号の書体：本文は明朝（原本は、ＭＳ明朝と同じ幅の明朝）10.5pt、行送り17pt。題名は18pt */
.issue { font-family: 'MS Mincho', 'ＭＳ 明朝', 'MS PMincho', 'Yu Mincho', 'Hiragino Mincho ProN', serif; font-size: 10.5pt; line-height: 17pt; }
.issue .sheet > h2, .issue .report > h3 { font-size: 18pt; line-height: 1.4; }
.issue .vb-l { padding-left: 4em; text-indent: -4em; margin: 0; } .issue .vb-meta { margin: 0 0 8pt; } .issue .vb-meta.meta-off { display: none; }
.issue .vb-l.w6 { padding-left: 6em; text-indent: -6em; } .issue .g-label { margin: 1.2em 0 .3em; font-weight: 700; text-indent: 0; }
/* 写真の幅を pt で指定（[写真1,2:幅210,間34]）。原本の大きさに合わせる */
.issue .in-photo.pt { float: none; margin: 4pt auto 6pt; } .issue .in-photo.pt img { width: 100%; height: auto; border-radius: 0; }
.issue .s-photos.row.pt { display: flex; justify-content: center; width: auto; margin: 4pt auto 6pt; } .issue .s-photos.row.pt figure { flex: 0 0 auto; } .issue .s-photos.row.pt img { width: 100%; height: auto; aspect-ratio: auto; }
/* 38号の組み方：本文10.5pt・行送り17pt、段落のあいだは1行あけ、題名は本文の上端から（印刷のとき） */
@media print { .issue { font-size: 10.5pt; line-height: 17pt; } .issue .report > p, .issue .msg > p { text-indent: 0; margin: 0 4pt 17pt 15pt; } .issue .sheet.greeting > p:not(.byline) { text-indent: 15pt; margin: 0; } .issue .sheet > h2, .issue .report > h3 { margin: 0 0 10pt; line-height: 25pt; } .issue .report + .report > h3 { margin-top: 17pt; } }
/* 38号の間隔：記事の上の余白なし、次の記事の題名までは30pt、写真は文の行から20ptあけて並べる */
@media print { .issue .report { border-top: 0; padding-top: 0; margin-top: 0; } .issue .report + .report { margin-top: 30pt; } .issue .s-photos.row.pt, .issue .in-photo.pt { margin: 0 auto 16.5pt; } .issue p + .s-photos.row.pt, .issue p + .in-photo.pt { margin-top: -10.5pt; } }
/* 1ページを1つの枠にして、原本の位置（@x,y）に置く（総会のページなど） */
.issue .seg { position: relative; height: 670pt; break-after: page; } .issue .seg:last-child { break-after: auto; }
.issue .abs { position: absolute; } .issue .abs figure { margin: 0; } .issue .abs .in-photo.pt, .issue .abs .s-photos.row.pt { margin: 0; } .issue .abs figcaption { font-size: 10pt; line-height: 13pt; margin-top: 4pt; text-align: center; }
.issue .atext { white-space: pre-wrap; width: 467pt; line-height: 17pt; }
.issue .seg dl.assembly { display: grid; grid-template-columns: 105pt 1fr; gap: 0; margin: 0; width: 467pt; line-height: 17pt; } .issue .seg dl.assembly dt { font-weight: 700; } .issue .seg dl.assembly dd { margin: 0; }
.issue .seg .ag { width: 467pt; line-height: 17pt; } .issue .seg .ag-h { margin: 0; font-weight: 700; text-indent: 0; } .issue .seg .ag-b { padding-left: 21pt; }
.issue .seg .item-h { margin: 0; font-weight: 700; line-height: 17pt; }
/* 役員の顔写真：原本の大きさ（直径100pt）・行の間（133pt）・名前の位置に合わせる */
@media print { .issue .o-photos { margin: 3pt 0 0; } .issue .o-row { gap: 34.5pt; height: 133.3pt; margin: 0; align-items: flex-start; } .issue .o-row.n4 { gap: 18pt; } .issue .o-photos figure { width: 100pt; margin: 0; } .issue .o-photos img { width: 100pt; height: 100pt; } .issue .o-photos figcaption { font-size: 10pt; line-height: 13pt; margin-top: 3pt; font-weight: 400; } }
/* 支部長の新年抱負など、飾りつきのページ：段落のあいだをあけない・顔写真は109pt */
@media print { .issue .sheet:has(> .deco) .msg > p, .issue .sheet:has(> .deco) > p { margin: 0; text-indent: 1em; } .issue .sheet:has(> .deco) .in-photo.l img, .issue .sheet:has(> .deco) .in-photo.r img { width: 109pt; } .issue .sheet:has(> .deco) .in-photo.l { margin-right: 7pt; } .issue .sheet:has(> .deco) .in-photo.r { margin-left: 7pt; } }
/* 役員紹介の表：38号の列（№・役職・氏名・会社名・業態・電話・所属）と行の高さ */
table.off-t.off7 { table-layout: fixed; width: 467pt; margin: 0 auto; font-size: 10.5pt; line-height: 11.5pt; border-collapse: collapse; } .off-t.off7 th, .off-t.off7 td { border: .5pt solid #000; padding: 3pt 1pt; vertical-align: middle; text-align: center; font-weight: 400; background: none; overflow-wrap: anywhere; }
.off-t.off7 thead th { height: 17pt; padding: 0; } .off-t.off7 tbody tr { height: 31pt; } .off-t.off7 td.sm { font-size: 9.5pt; line-height: 11pt; } .off-t.off7 td.no { text-align: center; padding: 0; width: auto; } .off-t.off7 td.tl { white-space: nowrap; }

.issue h2.spaced.boxed { display: flex; justify-content: center; gap: 13.9pt; letter-spacing: 0; padding: 0; margin: -1.3pt 0 7.6pt; line-height: 24.9pt; } .issue h2.spaced.boxed span { display: inline-block; width: 25.8pt; height: 24.9pt; border: .78pt solid #000; box-sizing: border-box; font-size: 19pt; line-height: 23.4pt; text-align: center; font-weight: 700; }
.off-t.off7 thead th { background: #d3d3d3; }
@media print { .issue .vb-meta + .in-photo.pt, .issue .vb-meta + .s-photos.row.pt { margin-top: 7pt; } }
/* 題名のある記事では、最初の1ページの枠から、題名の高さ（35pt）を引く */
.issue .report > h3 + .seg { height: 625pt; } .issue .report > h3 + .seg > .abs { margin-top: -35pt; }
.issue .report > .vb-meta.meta-off + .seg { height: 625pt; } .issue .report > .vb-meta.meta-off + .seg > .abs { margin-top: -35pt; }
.issue .seg > :last-child { margin-bottom: 0 !important; }
.issue .seg { height: 660pt; }
/* 会員一覧：38号の表（幅482pt・見出し68pt・1社28.35pt）を、地区をつなげて流す */
@media print { .issue .rsheet { width: auto; font-size: 7pt; } .issue .rsheet.flow { break-after: page; } .issue table.sheet-t { width: 479.6pt; margin: 0; } .issue .sheet-t col.c-no { width: 20pt; } .issue .sheet-t col.c-nm { width: 150pt; } .issue .sheet-t col.c-it, .issue .sheet-t col.c-ce { width: 11.05pt; } .issue .sheet-t th.it { height: 12pt; } .issue .sheet-t th.v { height: 56pt; } .issue .sheet-t tbody.m td { height: 9.45pt; line-height: 9.45pt; } .issue .rsheet.flow h2.blk { font-size: 11pt; margin: 0; height: 28.35pt; line-height: 28pt; text-align: left; border: 0; } .issue .rsheet.flow table.sheet-t + h2.blk { margin-top: 0; } .issue .sheet-t thead { display: table-header-group; } }
@media print { .issue table.plain-t { width: 100%; } .issue .rsheet:not(.flow) { width: auto; } }
@media print { .issue .sheet-t tbody.m tr { height: 8.7pt; } .issue .sheet-t tbody.m td { padding-top: 0; padding-bottom: 0; line-height: 8.7pt; font-size: 7pt; height: 8.7pt; box-sizing: border-box; } .issue .sheet-t tbody.m td.mk small { line-height: 8.7pt; } }
@media print { .issue table.plain-t { table-layout: fixed; width: 482pt; font-size: 10.5pt; line-height: 13pt; } .issue .plain-t th, .issue .plain-t td { padding: 0 3pt; height: 28.35pt; overflow: hidden; } .issue .plain-t thead th { height: 20pt; padding: 0 3pt; } .issue .plain-t td.no { width: 29pt; text-align: center; padding: 0; } .issue .plain-t col:nth-child(2), .issue .plain-t th:nth-child(2) { width: 144pt; } .issue .plain-t th:nth-child(3) { width: 55pt; } .issue .plain-t th:nth-child(4) { width: 54pt; } .issue .plain-t th:nth-child(5) { width: 130pt; } .issue .plain-t th:nth-child(6) { width: 70pt; } .issue .plain-t td:nth-child(6) { white-space: nowrap; } .issue table.tally { font-size: 10.5pt; line-height: 14.2pt; margin: 0 auto; } .issue table.tally th, .issue table.tally td { padding: 0 6pt; height: 14.2pt; } }
/* ごあいさつ：38号の組み方（ページの枠・点々の帯・題名25pt・顔写真104×130・差出人は右寄せの2行） */
@media print { .issue .sheet.greeting { page: greeting; padding: 0 0 0 77pt; position: relative; font-size: 10.5pt; line-height: 16.5pt; } .issue .sheet.greeting::before { left: 0; top: 0; bottom: auto; width: 40pt; height: 729pt; background: radial-gradient(circle, #000 .55pt, transparent .62pt) 0 0 / 1.8pt 1.8pt; }
  .issue .sheet.greeting > h2 { font-size: 25pt; line-height: 30pt; letter-spacing: 5pt; margin: 15.5pt 0 10.5pt; text-align: center; }
  .issue .sheet.greeting .g-head { display: flex; justify-content: flex-start; height: 130pt; margin: 0 0 15.7pt; gap: 0; } .issue .sheet.greeting .g-portrait { margin: 0 0 0 10pt; } .issue .sheet.greeting .g-head .g-portrait img { width: 104pt; height: 130pt; }
  .issue .sheet.greeting .byline { margin: 0 5pt 0 auto; padding-top: 58pt; text-align: right; font-weight: 700; flex: none; line-height: 26pt; } .issue .sheet.greeting .byline .by-o { display: block; font-size: 12.5pt; } .issue .sheet.greeting .byline .by-n { display: block; font-size: 13pt; letter-spacing: .5em; }
  .issue .sheet.greeting > p:not(.byline):not(.sec-label):not(.issuer) { margin: 0; text-indent: 10.5pt; } .issue .sheet.greeting::before { display: none; } }
@media print { html, body, .issue, .issue * { -webkit-print-color-adjust: exact; print-color-adjust: exact; } }
@media print { .issue .sheet.greeting { display: flow-root; min-height: 728pt; } }
@media print { .issue .sheet.greeting p { orphans: 1; widows: 1; } }
/* 会報の中の表（講習会の日程など）：罫線つき・中央そろえ・38号の大きさ */
@media print { .issue table.rt { border-collapse: collapse; table-layout: fixed; margin: 0 0 8pt 25pt; font-size: 10pt; line-height: 12.5pt; width: 431pt; } .issue table.rt th, .issue table.rt td { border: .5pt solid #000; padding: 2pt 1pt; text-align: center; font-weight: 400; background: none; vertical-align: middle; } .issue table.rt tr:first-child th, .issue table.rt tr:first-child td { height: 17pt; padding: 0 1pt; } .issue table.rt:has(tr:first-child > :nth-child(5):last-child) tr + tr td, .issue table.rt:has(tr:first-child > :nth-child(5):last-child) tr + tr th { height: 32.6pt; } .issue table.rt:has(tr:first-child > :nth-child(5):last-child) th:nth-child(1), .issue table.rt:has(tr:first-child > :nth-child(5):last-child) td:nth-child(1) { width: 46pt; } .issue table.rt:has(tr:first-child > :nth-child(5):last-child) th:nth-child(2), .issue table.rt:has(tr:first-child > :nth-child(5):last-child) td:nth-child(2) { width: 150pt; } .issue table.rt:has(tr:first-child > :nth-child(5):last-child) th:nth-child(3), .issue table.rt:has(tr:first-child > :nth-child(5):last-child) td:nth-child(3) { width: 144pt; } .issue table.rt:has(tr:first-child > :nth-child(5):last-child) th:nth-child(4), .issue table.rt:has(tr:first-child > :nth-child(5):last-child) td:nth-child(4) { width: 45pt; } .issue table.rt:has(tr:first-child > :nth-child(3):last-child) th:nth-child(1), .issue table.rt:has(tr:first-child > :nth-child(3):last-child) td:nth-child(1) { width: 135pt; } .issue table.rt:has(tr:first-child > :nth-child(3):last-child) th:nth-child(2), .issue table.rt:has(tr:first-child > :nth-child(3):last-child) td:nth-child(2) { width: 210pt; } .issue table.rt:has(tr:first-child > :nth-child(3):last-child) tr + tr td, .issue table.rt:has(tr:first-child > :nth-child(3):last-child) tr + tr th { height: 19.8pt; } }
@media print { .issue .report > p:has(+ table.rt) { margin-bottom: 3pt; font-weight: 700; line-height: 15pt; } .issue .report > table.rt + p { margin-top: 0; } }
/* 自由な配置のページ：余白なし。位置は、原本のページの位置（pt）のまま */
.issue .sheet.free { page: free; padding: 0; } @media print { .issue .sheet.free .seg { margin: 104pt 0 0 57pt; height: 700pt; width: 538pt; } .issue .sheet.free .atext { width: max-content; white-space: pre; font-family: 'Yu Gothic', 'YuGothic', 'Meiryo', sans-serif; font-size: 11pt; line-height: 17pt; } }
/* 編集後記のページ：38号の位置（余白なし・題名は左の枠・文は行送り18pt・発刊の欄と案内地図は決まった位置） */
@media print { .issue .sheet.colophon { page: free; position: relative; height: 760pt; padding: 110pt 75pt 0 82pt; font-size: 10.5pt; line-height: 18pt; } .issue .sheet.colophon > h2 { position: absolute; left: 78pt; top: 68pt; margin: 0; width: 96pt; height: 29pt; font-size: 0; border-top: 3pt solid #000; border-bottom: 1pt solid #000; line-height: 1; } .issue .sheet.colophon > h2::before { content: '編集後記'; display: block; font-size: 18.5pt; font-style: italic; font-weight: 900; letter-spacing: .25em; line-height: 29pt; text-align: center; } .issue .sheet.colophon > p:not(.sec-label):not(.byline):not(.issuer) { margin: 0; text-indent: 0; line-height: 18pt; } .issue .sheet.colophon > p:nth-last-of-type(2):not(.issuer) { text-align: right; } .issue .sheet.colophon .issuer { position: absolute; left: 187pt; top: 416pt; margin: 0; text-align: left; line-height: 18pt; } .issue .sheet.colophon .issuer .addr { display: none; } .issue .sheet.colophon .guide-map { position: absolute; left: 156pt; top: 502pt; width: 283pt; margin: 0; max-width: none; } .issue .sheet.colophon .guide-map img { width: 100%; border: 0; } .issue .sheet.colophon .guide-map figcaption { display: none; } }
.issue .sheet.free.freen { page: freen; } @media print { .issue .sheet.free.freen .seg { height: 690pt; } }
.issue .sheet.adfree { page: free; padding: 0; position: relative; } @media print { .issue .sheet.adfree { height: 800pt; } .issue .sheet.adfree img { position: absolute; max-width: none; max-height: none; border: 0; } }
/* 事務局だよりの題名：立体の枠（幅278pt・高さ50pt）。会員数の表：1行22.7pt */
@media print { .issue h2.bevel { width: 278pt; height: 50pt; margin: 0 0 0 15pt; padding: 0; box-sizing: border-box; border: .75pt solid #000; border-width: .75pt; background: linear-gradient(#fff, #fff) 0 0 / 100% 6pt no-repeat, linear-gradient(#c9c9c9, #c9c9c9) 0 100% / 100% 6pt no-repeat, linear-gradient(#969696, #969696) 100% 0 / 6pt 100% no-repeat, #fff; text-align: center; font-size: 19pt; line-height: 50pt; letter-spacing: 0; } .issue table.count-t { width: 402.5pt; max-width: none; margin: 0 0 0 44.6pt; font-size: 10.5pt; } .issue .count-t th, .issue .count-t td { padding: 0 4pt; height: 22.7pt; border-width: .75pt; } .issue .count-t th { background: #e0e0e0; font-weight: 700; } .issue .count-t td:not(:first-child), .issue .count-t th:not(:first-child) { width: 70.8pt; } .issue .count-t td:first-child, .issue .count-t th:first-child { width: 190pt; } }
@media print { .issue .sheet.pg-office h2.spaced.boxed { margin-top: 0; } }
@media print { .issue .sheet.pg-office .rn-h { font-family: 'Yu Gothic', 'YuGothic', 'Meiryo', sans-serif; font-weight: 700; font-size: 15pt; line-height: 22pt; text-align: center; margin: 23pt 0 8pt; text-indent: 0; } .issue .sheet.pg-office .rn-b { margin: 0 0 17pt 25pt; text-indent: -0; padding-left: 11pt; text-indent: -11pt; line-height: 17pt; } }
/* 理事会・委員会の報告：38号の字下げ（見出し66・題名の枠71〜525、項目は82）と、小見出しの大きさ */
@media print { .issue .report > h3.tbox { border: .71pt solid #000; width: 454pt; margin-left: 14pt; height: 23pt; line-height: 21pt; box-sizing: border-box; } .issue .report > .r-item .vb-meta { padding-left: 25pt; } .issue .report > .r-item > h5 { font-size: 10.5pt; font-weight: 400; margin: 0; line-height: 17pt; padding-left: 25pt; font-family: 'MS Mincho', 'ＭＳ 明朝', serif; } .issue .report > .r-item > h5:first-child { padding-left: 9pt; } .issue .report > h4.r-sub { font-size: 11.5pt; border: 0; margin: 0 0 0 15pt; line-height: 17pt; } }
@media print { .issue .report > h3.tbox { padding-top: 5pt; margin-bottom: 11.7pt; } .issue .report > .r-item { margin-bottom: 17pt; } .issue .report > .r-item .vb-meta { margin: 0; } }
/* ☆の小見出しの記事（青年部・全産連・九州）：38号の字下げ（小見出し72・☆83・本文82）と、行のあき */
@media print { .issue .report > .r-item > p { margin: 0; padding-left: 25pt; text-indent: 0; line-height: 17pt; } .issue .report > .r-item > h5:first-child { padding-left: 26pt; } .issue .report > .g-label { margin: 0 0 0 15pt; font-size: 11.5pt; line-height: 17pt; font-weight: 700; } .issue .report > .r-item { margin-bottom: 18pt; } }
@media print { .issue .report > .r-item > h5:first-child { font-family: 'Yu Gothic', 'YuGothic', 'Meiryo', sans-serif; font-weight: 700; font-size: 11pt; } .issue .report > .r-item > h5:first-child:not(:has(+ *)) { margin: 0; } }
@media print { .issue .report > .r-item > p + .s-photos.row.pt, .issue .report > .r-item > p + .in-photo.pt { margin-top: 6.3pt; } .issue .report > .r-item > .s-photos.row.pt:last-child, .issue .report > .r-item > .in-photo.pt:last-child { margin-bottom: 18pt; } .issue .report > h3 + .g-label { margin-top: -3pt; } }
@media print { .issue .report > .g-label { break-after: avoid; } }
@media print { .issue .seg + .seg { break-before: page; } .issue .sheet.pg-news > .seg { height: 670pt; } }
@media print { .issue .seg + .seg { page-break-before: always; } .issue .seg:not(:last-child) { page-break-after: always; } }
@media print { .issue .sheet > .in-photo.pt:last-child, .issue .sheet > .s-photos.row.pt:last-child { margin-bottom: 0; } }
.issue .sheet.pg-news.tight { page: newsb; }
/* 賛助会員の表：38号の列の幅（№22.7・会社名133.2・代表者65.2・〒53.9・所在地130.4・電話73.7pt） */
@media print { .issue table.plain-t { width: 479.1pt; margin: 0 0 0 1pt; table-layout: fixed; } .issue table.plain-t th, .issue table.plain-t td { box-sizing: border-box; padding: 0 3pt; } .issue table.plain-t th:nth-child(1), .issue table.plain-t td.no { width: 22.7pt; } .issue table.plain-t th:nth-child(2) { width: 133.2pt; } .issue table.plain-t th:nth-child(3) { width: 65.2pt; } .issue table.plain-t th:nth-child(4) { width: 53.9pt; } .issue table.plain-t th:nth-child(5) { width: 130.4pt; } .issue table.plain-t th:nth-child(6) { width: 73.7pt; } .issue table.plain-t td.c { white-space: nowrap; letter-spacing: 0; padding: 0 1pt; } .issue table.plain-t td { font-size: 10.5pt; line-height: 13pt; } .issue .plain-t td:nth-child(3) { text-align: center; } }
@media print { .issue table.plain-t td { height: 28.35pt; } .issue table.plain-t thead th { height: 22pt; font-weight: 400; background: #fff; letter-spacing: .3em; } .issue table.tally { border-collapse: collapse; } .issue table.tally th, .issue table.tally td { border: .5pt solid #000; font-weight: 400; background: none; } .issue table.tally th { letter-spacing: .6em; text-align: center; padding: 0 3pt 0 9pt; width: 70pt; } .issue table.tally td { text-align: right; padding: 0 8pt; width: 54pt; } .issue .unit { text-align: right; font-size: 9pt; margin: 8pt 0 2pt; padding-right: 100pt; } .issue .sheet-head h2.kind { letter-spacing: .6em; font-size: 15pt; }}
@media print { .issue table.plain-t tbody tr { height: 28.35pt; } .issue table.tally th { letter-spacing: .25em; white-space: nowrap; padding: 0 2pt 0 6pt; width: 76pt; } .issue table.tally td { height: 14.2pt; line-height: 14pt; } .issue table.tally tr { height: 14.2pt; } }
@media print { .issue table.plain-t tbody td { padding-top: 7.6pt; padding-bottom: 7.6pt; vertical-align: middle; } .issue table.plain-t tbody td:nth-child(5) { padding-top: 1pt; padding-bottom: 1pt; } }
/* 優良産廃処理業一覧：38号（ゴシックの会社名・黒の角丸の凡例・大きい格子・電話は字間広め） */
@media print { .issue h2.yt-title { font-size: 18pt; line-height: 26pt; text-align: center; margin: 22pt 0 0; letter-spacing: 0; font-weight: 700; } .issue .legend { text-align: center; font-family: 'Yu Gothic', 'YuGothic', 'Meiryo', sans-serif; font-size: 10.5pt; margin: 6pt 0 8pt; } .issue .legend .lg { margin-left: 8pt; } .issue .legend .lg b { background: #000; color: #fff; border: 0; border-radius: 3pt; padding: 0 3.5pt; font-size: 10.5pt; margin-right: 1pt; }
 .issue .yuryo-grid { border-top-width: .75pt; border-left-width: .75pt; margin-left: 15pt; width: 468pt; } .issue .yc { height: 42.4pt; padding: 3pt 7pt 0 7pt; border-right-width: .75pt; border-bottom-width: .75pt; box-sizing: border-box; } .issue .yc .yn { font-family: 'Yu Gothic', 'YuGothic', 'Meiryo', sans-serif; font-weight: 700; font-size: 12pt; line-height: 15pt; } .issue .yc .yb { display: flex; align-items: flex-start; justify-content: space-between; } .issue .yc .ya { display: flex; flex-direction: column; font-family: 'Yu Gothic', 'YuGothic', 'Meiryo', sans-serif; max-width: 140pt; } .issue .yc .addr { font-size: 7.5pt; line-height: 9pt; } .issue .yc .tel { font-size: 11pt; line-height: 13pt; letter-spacing: .28em; font-family: 'Yu Gothic', 'YuGothic', 'Meiryo', sans-serif; white-space: nowrap; }
 .issue table.yt { font-size: 10pt; font-family: 'Yu Gothic', 'YuGothic', 'Meiryo', sans-serif; } .issue .yt th, .issue .yt td { padding: 0; width: 19pt; height: 11.3pt; line-height: 11pt; border-width: .6pt; } .issue .yt th { width: 31pt; font-size: 8pt; } .issue .yt td.on { background: #a6a6a6; } }
@media print { .issue h2.yt-title { margin-top: 8pt; margin-bottom: 0; } .issue .legend .lg b { padding: 0 2pt; margin-right: 0; line-height: 12pt; display: inline-block; } .issue .legend .lg { margin-left: 3pt; } .issue .yc { height: auto; min-height: 42.4pt; } .issue .yc .ya { max-width: 128pt; } .issue .yc .addr { font-size: 7pt; line-height: 8.5pt; } .issue .yc .tel { font-size: 10.5pt; } }
.issue .atext.mn { font-family: 'MS Mincho', 'ＭＳ 明朝', 'Yu Mincho', serif; font-size: 10.5pt; line-height: 17pt; white-space: pre; width: max-content; } @media print { .issue .sheet.pg-info > .seg { height: 665pt; } }
@media print { .issue .sheet.pg-office .sec-label, .issue .sheet.pg-info .sec-label { font-family: 'MS Mincho', 'ＭＳ 明朝', serif; font-style: italic; letter-spacing: .25em; } }
@media print { .issue .sheet.pg-office, .issue .sheet.pg-info { padding-left: 6pt; padding-right: 6pt; } }
/* 役員紹介：電話・FAXが切れないように（9.6pt・折り返さない）、役職は9pt */
.off-t.off7 td.tl { font-size: 9.6pt; white-space: nowrap; overflow: visible; padding: 3pt 0; } .off-t.off7 td.rl { font-size: 9pt; white-space: nowrap; padding: 3pt 0; }
/* 会員一覧：1社の3段のあいだに横の罫線を入れない（社と社のあいだだけ）。地区の見出しは大きく */
@media print { .issue .sheet-t tbody.m td { border-top: 0; border-bottom: 0; } .issue .sheet-t tbody.m tr:last-child td, .issue .sheet-t tbody.m td.no { border-bottom: .8pt solid #000; } .issue .sheet-t tbody.m td.no { border-top: 0; } .issue .rsheet.flow h2.blk { font-size: 14.5pt; } }
/* 表紙：印刷でページの右・下に1px足らずの白い隙間が出るので、同じ青を外側に1px足す */
@media print { .issue .sheet.cover { box-shadow: 4px 4px 0 #006cb7; } }
/* 表紙：38号の位置（協会報の文字19pt・ロゴは左36pt/上44pt・幅380pt、号と年月は右、下の帯の協会名17pt） */
@media print { .issue .cv-head { height: 162pt; padding: 0; position: static; } .issue .cv-left { position: static; } .issue .cv-left::before { content: '協会報'; position: absolute; left: 37pt; top: 19pt; font: 700 19pt/1 'Yu Gothic', 'Meiryo', sans-serif; letter-spacing: .02em; } .issue .cover-logo { position: absolute; left: 36pt; top: 44pt; width: 380pt; height: 107pt; margin: 0; }
 .issue .cv-right { position: absolute; right: 30pt; top: 56pt; padding: 0; text-align: right; } .issue .cv-no { font-size: 48pt; line-height: 66pt; } .issue .cv-no span { font-size: 23pt; } .issue .cv-ym { margin: 0; padding: 0; border-top: 1pt solid #fff; font-size: 21pt; letter-spacing: .2em; line-height: 30pt; width: 118pt; margin-left: auto; text-align: center; }
 .issue .cv-foot { font-size: 17pt; letter-spacing: 0; height: 42pt; line-height: 42pt; } .issue .cover-photo figcaption { font-size: 8pt; right: 9pt; bottom: 6pt; } }
@media print { .issue .cv-right { top: 60pt; } .issue .cv-ym { margin-top: -6pt; letter-spacing: .5em; width: 122pt; line-height: 28pt; } .issue .cover-photo figcaption { bottom: -3pt; } }
@media print { .issue .cv-no { font-size: 54pt; font-weight: 800; line-height: 62pt; } .issue .cv-no span { font-size: 25pt; font-weight: 800; } .issue .cv-ym { margin-top: -10pt; font-weight: 700; } .issue .cv-right { top: 58pt; } }
/* 目次：38号の間隔（1行20pt）・見出しは灰色の斜体＋太い帯・先頭の「年頭のごあいさつ」の見出しは出さない */
@media print { .issue.print-flow .toc li { line-height: 20pt; font-size: 10.5pt; } .issue.print-flow .toc-group { margin-bottom: 20pt; } .issue .toc:not(.toc2) .toc-group:first-of-type h3 { display: none; } .issue .toc-group h3 { font: italic 700 15pt/20pt 'MS Mincho', 'ＭＳ 明朝', serif; letter-spacing: .12em; color: #888; margin: 0 0 6pt; padding: 0 0 0 8pt; border: 0; background: linear-gradient(transparent 52%, #8d8d8d 52%) ; border-bottom-right-radius: 8pt; height: 20pt; } .issue .toc .dots { border-bottom: 1.3pt dotted #888; transform: translateY(-2pt); } .issue .toc li::before { font-size: 8pt; } .issue .toc-no { font-size: 10.5pt; } }
@media print { .issue .toc-bar + .toc-group h3 { display: none; } .issue .toc-group h3 { color: #6a6a6a; background: linear-gradient(transparent 68%, #8d8d8d 68%); text-shadow: 0 0 2pt #fff; height: 20pt; } .issue .toc-group h3 { -webkit-text-stroke: .3pt #6a6a6a; } }
.issue .atext.gb { font-family: 'Yu Gothic', 'YuGothic', 'Meiryo', sans-serif; font-weight: 700; font-size: 10.5pt; line-height: 17pt; white-space: pre; width: max-content; }
.issue .atext.tt { font-family: 'Yu Gothic', 'YuGothic', 'Meiryo', sans-serif; font-weight: 700; font-size: 18pt; line-height: 26pt; white-space: pre; width: max-content; } .issue .atext.tt.it { font-style: italic; }
/* 裏表紙：ページ番号を出さない（38号） */
.issue .sheet.back-cover { page: free; }
/* 会員一覧：1社＝28.35pt（3段×9.45pt）。原本の行の高さ */
@media print { .issue .sheet-t tbody.m tr { height: 9.45pt; } .issue .sheet-t tbody.m td { height: 9.45pt; line-height: 9.45pt; } }
@media print { .issue .sheet-t tbody.m tr { height: 9.24pt; } .issue .sheet-t tbody.m td { height: 9.24pt; line-height: 9.2pt; } }
@media print { .issue .rsheet.flow table.sheet-t + h2.blk { margin-top: 0; padding-top: 5pt; height: 28.35pt; box-sizing: border-box; } }
@media print { .issue .rsheet.flow h2.blk { break-after: avoid; } .issue .rsheet.flow h2.blk + table.sheet-t thead { break-after: avoid; } }
/* 会員一覧：正会員の最後の続きに、賛助会員を同じページから始める（38号の64ページ） */
@media print { .issue .rsheet.flow { break-after: auto; page-break-after: auto; } .issue .rsheet.flow + .rsheet { padding-top: 20pt; } }
@media print { .issue .rsheet.flow { break-after: auto !important; page-break-after: auto !important; } .issue .rsheet.flow + .rsheet { break-before: auto !important; page-break-before: auto !important; } }
@media print { .issue .rsheet:not(.flow) { break-inside: auto; } .issue .rsheet:not(.flow) table.plain-t { break-inside: auto; } .issue .rsheet:not(.flow) table.tally { break-inside: avoid; } }
@media print { .issue .rsheet.flow + .rsheet { padding-top: 0; } .issue table.plain-t tbody tr { height: 28.35pt; } .issue table.plain-t tbody td { padding-top: 5pt; padding-bottom: 5pt; } .issue .rsheet:not(.flow) .sheet-head h2.kind { margin: 6pt 0 8pt; } }
@media print { .issue .rsheet:not(.flow) .unit { margin: 0; padding-right: 100pt; line-height: 12pt; } .issue .rsheet:not(.flow) table.plain-t { margin-bottom: 0; } .issue .rsheet:not(.flow) .sheet-head h2.kind { margin: 0 0 8pt; } .issue .rsheet.flow + .rsheet { margin-top: -2pt; } .issue .rsheet:not(.flow) table.tally td, .issue .rsheet:not(.flow) table.tally th { height: 14pt; } .issue .rsheet:not(.flow) table.tally tr { height: 14pt; } }
@media print { .issue .rsheet:not(.flow) .sheet-head h2.kind { margin: 0 0 15pt; } .issue .rsheet:not(.flow) .unit { margin-top: 3pt; } }
@media print { .issue table.plain-t tbody td { padding-top: 0; padding-bottom: 0; line-height: 12pt; height: 28.35pt; } .issue table.plain-t tbody tr { height: 28.35pt; } }
@media print { .issue .rsheet:not(.flow) .unit { margin-top: 11pt; } }
/* 裏表紙が1枚の画像（ページ全体）のとき：余白なしでページいっぱいに */
@media print { .issue .sheet.back-cover.n1 { padding: 0; display: block; height: 842pt; overflow: hidden; } .issue .back-cover.n1 figure { margin: 0; } .issue .back-cover.n1 img { width: 595pt; height: 842pt; max-height: none; object-fit: fill; } }
/* 目次：38号の位置（CONTENTSは40pt・項目は左84pt・1行20pt） */
@media print { .issue .toc { padding-left: 8pt; padding-right: 0; } .issue .toc-bar { height: 62pt; align-items: flex-end; padding: 0 10pt 0 5pt; margin: 0 0 22pt -6pt; } .issue .toc-bar h2 { font-size: 40pt !important; line-height: 56pt; } .issue .toc-bar .toc-title { font-size: 13pt; margin: 0 0 8pt; } .issue .toc ol { padding-left: 24pt; } }
@media print { .issue .toc { padding-left: 22pt; } .issue .toc ol { padding-left: 22pt; } .issue.print-flow .toc li { line-height: 20pt !important; } .issue .toc-bar { margin-bottom: 29pt; } }
@media print { .issue .toc { padding-left: 0; } .issue .toc-bar { margin-left: 0; } .issue .toc ol { padding-left: 8pt; } }
@media print { .issue .toc-bar { padding-left: 0; } .issue .toc ol { padding-left: 22pt; } .issue .toc li { height: 20pt; line-height: 20pt !important; box-sizing: border-box; margin: 0; } .issue .toc li::before { line-height: 20pt; } }
@media print { .issue .toc-bar { margin-bottom: 32pt; } .issue.print-flow .toc-group { margin-bottom: 33pt; } .issue .toc.toc2 { padding-top: 26pt; } .issue .toc.toc2 .toc-group h3 { padding-left: 15pt; } }
@media print { .issue .toc-bar { margin-bottom: 35pt; } .issue.print-flow .toc-group { margin-bottom: 38pt; } .issue .toc.toc2 { padding-top: 43pt; } .issue .toc.toc2 .toc-group h3 { margin-bottom: 12pt; } }
@media print { .issue .toc:not(.toc2) .toc-group h3 { margin-bottom: 14pt; } .issue .toc:not(.toc2) .toc-bar { margin-bottom: 33pt; } }
@media print { .issue.print-flow .toc-group { margin-bottom: 30pt; } .issue .toc:not(.toc2) .toc-group h3 { margin-bottom: 12pt; } .issue .toc::after { margin-top: 0; } }
/* 題名を、文章の中の改行どおりに折り返す（newsTitle に改行を入れる）。38号の38ページ */
@media print { .issue .report > h3.brk { white-space: pre-line; line-height: 23pt; margin-top: 15pt; margin-bottom: 7pt; } .issue table.rt { font-size: 10.5pt; } .issue table.rt small { font-size: 9pt; } }
@media print { .issue .report > h3.brk { margin-top: 41pt; } .issue .report > h3.brk ~ p { padding-left: 11pt; } .issue .report > h3.brk ~ table.rt { margin-top: 4pt; } }
@media print { .issue .report > h3.brk { margin-top: 56pt; } }
/* 優良産廃処理業一覧：38号の寸法（幅482pt・1枚61pt・左が57pt） */
@media print { .issue .yuryo-grid { margin-left: 0; width: 482pt; } .issue .yc { height: 61pt; min-height: 61pt; padding: 5pt 7pt 0; } .issue .yc .yn { font-size: 12pt; line-height: 15pt; } .issue .yc .yb { margin-top: 2pt; } .issue .yc .addr { font-size: 7.5pt; line-height: 9pt; } .issue .yc .tel { font-size: 11pt; line-height: 14pt; margin-top: 3pt; } .issue .yt th, .issue .yt td { height: 16pt; line-height: 15pt; width: 20pt; } .issue .yt th { width: 34pt; } .issue h2.yt-title { margin-top: 6pt; } }
@media print { .issue h2.yt-title { margin-top: -1pt; } }
@media print { .issue .report > .r-item > .in-photo.pt:last-child { margin-bottom: 11pt; } }
@media print { .issue .report > .r-item > .in-photo.pt:last-child { margin-bottom: 4pt; } }
.issue .atext.hd { font-family: 'Yu Gothic', 'YuGothic', 'Meiryo', sans-serif; font-weight: 700; font-size: 12pt; line-height: 17pt; white-space: pre; width: max-content; }
.issue .in-photo.pt.oval img { border-radius: 50%; }
@media print { .issue .sheet.colophon .issuer { left: 82pt; } .issue .sheet.colophon { padding-left: 81pt; padding-right: 66pt; } }
/* 役員紹介：役職は10.5pt（2字は間をあける）・空欄は斜線・外枠は太く */
.off-t.off7 td.nil { background: linear-gradient(to bottom right, transparent calc(50% - .4pt), #000 calc(50% - .4pt), #000 calc(50% + .4pt), transparent calc(50% + .4pt)); }
@media print { .off-t.off7 td.rl { font-size: 10.5pt; } .off-t.off7 td.rl:not(:has(+ *)) { } table.off-t.off7 { border: 1.2pt solid #000; } .off-t.off7 thead th { border-bottom-width: 1pt; } }
@media print { .off-t.off7 td.rl.r4 { font-size: 9pt; letter-spacing: -.3pt; } }

/* 閲覧のみの権限で開いた画面：登録・変更・削除のボタンを隠す */
.view-only form[method="post"] button, .view-only form[method="post"] input[type="submit"], .view-only a.btn.primary, .view-only a.btn.danger, .view-only .btns > .btn.primary { display: none !important; }
/* 機能の権限の表：縦にも罫線を入れ、チェックの大きさをそろえる */
.perm-t { border-collapse: collapse; } .perm-t th, .perm-t td { border: 1px solid #c3ccd6; }
.perm-t thead th { background: #e8eef4; }
.perm-t td.num { min-width: 8em; text-align: left; } .perm-t td.num label.check { display: flex; white-space: nowrap; margin: 4px 0; gap: 6px; }
.perm-t input[type=checkbox] { width: 20px; height: 20px; flex: none; }

/* マイページ（会員向け）：あいさつ・よく使う画面・出欠のお願い・お知らせを、見やすく */
.mp-hello { margin: 0 0 18px; } .mp-name { font-size: 1.25rem; margin: 0 0 8px; } .mp-role { display: flex; flex-wrap: wrap; gap: 6px; margin: 0; }
.mp-chip { display: inline-block; padding: 2px 11px; border-radius: 999px; background: #eef3f0; color: #35524a; font-size: .86rem; line-height: 1.6; } .mp-chip.lead { background: #1f7a5a; color: #fff; font-weight: 700; }
.mp-actions { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(210px, 100%), 1fr)); gap: 12px; margin: 0 0 24px; }
.mp-act { display: flex; flex-direction: column; gap: 3px; padding: 14px 16px; border: 1px solid #b9cfc6; border-left: 6px solid #1f7a5a; border-radius: 8px; background: #fff; color: #1d2b27; text-decoration: none; }
.mp-act b { font-size: 1.05rem; color: #14543e; } .mp-act small { color: #5c6c66; } .mp-act:hover { background: #f1f7f4; } .mp-act.staff { border-left-color: #b8860b; }
.mp-card { margin: 0 0 20px; padding: 14px 18px 12px; border: 1px solid #d6e0db; border-radius: 8px; background: #fff; } .mp-card h2 { margin: 0 0 8px; font-size: 1.1rem; padding-bottom: 6px; border-bottom: 2px solid #1f7a5a; }
.mp-card.ask { border-color: #e0a526; background: #fff9e8; } .mp-card.ask h2 { border-bottom-color: #e0a526; } .mp-count { display: inline-block; margin-left: 6px; padding: 0 10px; border-radius: 999px; background: #c0392b; color: #fff; font-size: .85rem; vertical-align: middle; }
.mp-more { margin: 8px 0 0; text-align: right; font-size: .92rem; } .mp-card .news li { padding: 7px 0; } .mp-card .muted.small { margin: 0 0 6px; }
/* 閲覧のみ・グループの範囲だけの画面：開けない画面（新規・取り込み・設定・年間印刷など）への入口を隠す */
.view-only a.btn[href*="/new"], .view-only a.btn[href*="/settings"], .view-only a.btn[href*="/fees"], .view-only a.btn[href*="/import"], .view-only a.btn[href*="/rates"], .view-only a.btn[href*="/change"], .view-only a.btn[href*="/template"],
.group-scope a.btn[href*="/import"], .group-scope a.btn[href*="/template"], .group-scope a.btn[href*="/annual"], .group-scope a.btn[href*="/rates"], .group-scope a.btn[href*="/settings"], .group-scope a.btn[href*="/fees"], .group-scope a.btn[href*="/change"], .group-scope a.btn[href*="/history"] { display: none !important; }
/* 年度の選択・保存・複写のバー（会員名簿・役員名簿） */
.snap-bar { align-items: center; gap: 10px 18px; margin: 0 0 14px; padding: 10px 14px; border: 1px solid #cdd8d2; border-radius: 8px; background: #f3f8f5; flex-wrap: wrap; }
.snap-bar form.inline { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; } .snap-bar label { display: inline-flex; align-items: center; gap: 6px; font-weight: 600; white-space: nowrap; } .snap-bar select { max-width: 14em; }
/* 会報の飾り（宮崎の絵）：本文の「[飾り:名前]」 */
.issue .nart { display: block; margin: 6pt auto; width: 60pt; max-width: 100%; height: auto; }
.issue .nart.s { width: 36pt; } .issue .nart.b { width: 120pt; }
.issue .nart.l { float: left; margin: 2pt 10pt 4pt 0; } .issue .nart.r { float: right; margin: 2pt 0 4pt 10pt; }
.issue .nart.line { width: 100%; height: 10pt; margin: 6pt 0; }
/* 編集画面の、飾りを選ぶ欄 */
.art-palette { margin: 10px 0 16px; padding: 8px 12px; border: 1px solid #cdd8d2; border-radius: 8px; background: #f7fbf9; } .art-palette summary { cursor: pointer; font-weight: 600; }
.art-group { margin: 10px 0 4px; font-weight: 600; color: #35524a; } .art-grid { display: flex; flex-wrap: wrap; gap: 8px; }
.art-item { display: flex; flex-direction: column; align-items: center; gap: 4px; width: 104px; padding: 6px; border: 1px solid #cdd8d2; border-radius: 8px; background: #fff; cursor: pointer; font: inherit; font-size: .78rem; line-height: 1.3; }
.art-item:hover { background: #eef7f2; border-color: #1f7a5a; } .art-item img { width: 64px; height: 64px; object-fit: contain; } .art-item.line { width: 160px; } .art-item.line img { width: 140px; height: 16px; object-fit: fill; }
/* 会報の写真の素材棚 */
.asset-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 14px; }
.asset-card { border: 1px solid #cdd8d2; border-radius: 8px; padding: 10px; background: #fff; } .asset-card .asset-img { height: 150px; display: flex; align-items: center; justify-content: center; background: #f1f5f3; border-radius: 6px; margin-bottom: 8px; } .asset-card .asset-img img { max-width: 100%; max-height: 150px; object-fit: contain; }
/* 会員紹介（ホームページ） */
.intro-list { display: grid; gap: 16px; } .intro-card { border: 1px solid #cfe0d6; border-left: 6px solid #1f7a5a; border-radius: 8px; padding: 12px 16px; background: #fff; } .intro-card h3 { margin: 0 0 6px; font-size: 1.15rem; }
.intro-card .intro-body p { margin: 0 0 .5em; } .intro-meta .pill { margin-right: 4px; } .intro-info { margin: 8px 0 0; color: #35524a; }
.intro-top { max-width: 980px; margin: 18px auto; padding: 12px 18px; border: 1px solid #cfe0d6; border-radius: 8px; background: #f7fbf9; } .intro-top h2 { margin: 0 0 6px; font-size: 1.1rem; } .intro-top ul { margin: 0; padding-left: 1.2em; } .intro-top .more-link { margin: 6px 0 0; text-align: right; font-size: .9rem; }
/* 「必須」の印は、見出し（入力欄の名前）と同じ行に出す */
.form label:has(> em) { display: block; } .form label:has(> em) > em { display: inline; margin-left: 6px; } .form label:has(> em) > :is(input, textarea, select) { display: block; width: 100%; margin-top: 4px; box-sizing: border-box; }
/* 管理画面：余白を少なく、ぎゅっと見やすく（2026-10-19。ご依頼「機能の権限の表と、そのほかのページも、余白を少なく、コンパクトに」）
   会員向けのホームページの見た目（.admin の外）は、変えない */
.admin-body { line-height: 1.5; }
.admin .main { padding: 10px 16px 36px; } .admin .main.wide { max-width: 1500px; }
.admin h1 { font-size: 1.3rem; margin: 0 0 .35em; } .admin .page-head h1 { margin: 0 0 .35em; }
.admin h2 { font-size: 1.08rem; margin: .8em 0 .35em; } .admin h3 { font-size: 1rem; margin: .6em 0 .3em; }
.admin p { margin: .35em 0; } .admin ul, .admin ol { margin: .3em 0; padding-left: 1.3em; } .admin li { margin: 0; }
.admin .card { padding: 8px 12px; margin: 0 0 8px; box-shadow: none; } .admin .card > h2:first-child { margin-top: 0; }
.admin .toolbar { gap: 5px 8px; margin: 0 0 8px; }
.admin .tbl th, .admin .tbl td { padding: 4px 8px; } .admin .tbl thead th { font-size: .8rem; }
.admin .form { gap: 7px; } .admin .form label { gap: 2px; font-size: .9rem; } .admin .form input, .admin .form select, .admin .form textarea { padding: 4px 8px; }
.admin .grid2 { gap: 7px 12px; }
.admin .stats { gap: 8px; margin-bottom: 8px; } .admin .stats > div, .admin .stat-link { padding: 6px 12px; } .admin .stats b { font-size: 1.25rem; line-height: 1.25; }
.admin .btn, .admin button.btn { padding: .22em .8em; font-size: .92rem; line-height: 1.45; } .admin .btn.small { padding: .1em .6em; font-size: .82rem; }
.admin .flash { padding: 5px 12px; margin: 0 0 8px; }
.admin .side { padding: 12px 10px; gap: 8px; } .admin .side nav a { padding: 3px 10px; } .admin .side nav .nav-sec { padding: 8px 10px 1px; }
.admin details { margin: 4px 0; } .admin fieldset { padding: 6px 10px; margin: 0; }
/* 機能の権限の表：1人ぶんの行を低く、横にも、せまく */
.perm-t th, .perm-t td { padding: 2px 5px; line-height: 1.3; }
.perm-t th:nth-child(1), .perm-t td:nth-child(1) { min-width: 8.5em; } .perm-t th:nth-child(2), .perm-t td:nth-child(2) { min-width: 3.6em; font-size: .85rem; }
.perm-t th.num, .perm-t td.num, .perm-t td.num { min-width: 6.4em; padding-left: 4px; padding-right: 4px; }
.perm-t thead th.num { width: auto; font-size: .8rem; } .perm-t th small { font-size: .66rem; line-height: 1.2; }
.perm-t td.num label.check { margin: 0; gap: 4px; font-size: .76rem; line-height: 1.5; } .perm-t input[type=checkbox] { width: 15px; height: 15px; }
.perm-t td small { font-size: .72rem; }
.perm-t td.num br { display: none; } .perm-t td.num label.check { display: inline-flex; margin: 0 6px 0 0; } .perm-t td.num { white-space: nowrap; min-width: 0; }
/* 委員会・グループの表は、列が多いので、閲覧・作業を縦に並べて、列をせまくする */
.perm-g td.num br { display: none; } .perm-g td.num label.check { display: flex; margin: 0; } .perm-g td.num, .perm-g th.num { min-width: 4.6em; max-width: 6.4em; white-space: normal; } .perm-g thead th.num { font-size: .72rem; vertical-align: bottom; }
/* 管理画面：スマートフォンの幅（2026-10-19）。ページ全体が横にはみ出さないように、表は、表の中だけが横に動くようにする */
.side-menu > summary { display: none; }
@media (max-width: 860px) {
  .admin .main { min-width: 0; padding: 8px 10px 28px; }
  .admin .tbl { display: block; max-width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  .admin .cal { grid-template-columns: repeat(7, minmax(0, 1fr)); } .admin .cell { min-width: 0; overflow: hidden; padding: 1px; } .admin .ev { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .admin .stats { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 6px; } .admin .stats b { font-size: 1.1rem; }
  .admin .grid2 { grid-template-columns: minmax(0, 1fr); } .admin .form { max-width: 100%; }
  .admin .toolbar { gap: 4px 6px; } .admin .toolbar form.inline { flex-wrap: wrap; } .admin .toolbar .spacer { display: none; }
  .admin .btn, .admin button.btn { white-space: normal; }
  .admin .side { padding: 8px 10px; gap: 6px; }
  .side-menu > summary { display: block; cursor: pointer; font-weight: 700; padding: 6px 10px; border: 1px solid rgba(255, 255, 255, .35); border-radius: 6px; } .side-menu[open] > summary { margin-bottom: 6px; }
  .admin .card { padding: 8px 10px; } .admin h1 { font-size: 1.2rem; } .page-head { flex-wrap: wrap; gap: 4px; }
  .admin pre, .admin code { white-space: pre-wrap; overflow-wrap: anywhere; } .admin img { max-width: 100%; height: auto; }
  .admin .gp-body { min-width: 0; max-width: calc(100vw - 40px); overflow-x: auto; }
}
/* マイページの1週間のスケジュール（lib/week-view.js）。広い画面は7列、狭い画面は、日ごとの縦の並び */
.wk { margin: 0 0 10px; } .wk h2 { margin-top: 0; }
.wk-nav { display: flex; flex-wrap: wrap; align-items: center; gap: 5px; margin: 0 0 8px; } .wk-range { margin-left: 6px; font-size: .88rem; color: #5c6c66; }
.wk-grid { display: grid; grid-template-columns: repeat(7, minmax(0, 1fr)); border: 1px solid #cdd8d2; border-radius: 6px; overflow: hidden; background: #fff; }
.wk-day { min-height: 92px; padding: 4px 5px; border-left: 1px solid #e1e8e4; } .wk-day:first-child { border-left: 0; }
.wk-head { display: flex; align-items: baseline; gap: 4px; flex-wrap: wrap; margin: 0 0 3px; padding-bottom: 2px; border-bottom: 1px solid #eef2f0; font-size: .86rem; } .wk-head span { color: #5c6c66; }
.wk-day.sun .wk-head { color: #b3341c; } .wk-day.sat .wk-head { color: #1f5fa8; } .wk-day.today { background: #eef7f2; } .wk-day.today .wk-head { color: #14543e; }
.wk-now { font-style: normal; font-size: .7rem; padding: 0 6px; border-radius: 999px; background: #1f7a5a; color: #fff; } .wk-add { margin-left: auto; text-decoration: none; color: #1f7a5a; font-weight: 700; padding: 0 4px; }
.wk-day ul { list-style: none; margin: 0; padding: 0; } .wk-day li { margin: 0 0 3px; padding: 2px 4px; border-radius: 4px; background: #e8f1ec; font-size: .8rem; line-height: 1.35; overflow-wrap: anywhere; } .wk-day li a { text-decoration: none; color: inherit; } .wk-day li small { color: #35524a; }
.wk-none { margin: 0; color: #9aa8a2; font-size: .75rem; }
@media (max-width: 860px) { .wk-grid { grid-template-columns: 1fr; } .wk-day { min-height: 0; border-left: 0; border-top: 1px solid #e1e8e4; display: grid; grid-template-columns: 6.2em 1fr; gap: 0 6px; } .wk-day:first-child { border-top: 0; } .wk-head { border-bottom: 0; margin: 0; } .wk-none { align-self: center; } }

/* マイページのツールバー（権限のある画面への入口） */
.tb { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 10px; padding: 10px; background: #fff; border: 1px solid var(--line); border-radius: var(--radius); box-shadow: var(--shadow); }
.tb a { position: relative; display: grid; justify-items: center; align-content: center; gap: 2px; width: 92px; min-height: 66px; padding: 6px 4px; border: 1px solid var(--line); border-radius: 10px; background: #fbfcfb; color: var(--ink); text-decoration: none; font-size: .78rem; line-height: 1.25; text-align: center; }
.tb a:hover { border-color: var(--brand); background: #f1f7f2; }
.tb-ic { font-size: 1.5rem; line-height: 1.1; }
.tb-badge { position: absolute; top: 3px; right: 5px; min-width: 18px; padding: 0 5px; border-radius: 9px; background: #d33; color: #fff; font-style: normal; font-size: .72rem; line-height: 18px; }
@media (max-width: 860px) { .tb { gap: 6px; padding: 8px; } .tb a { width: calc((100% - 18px) / 4); min-width: 0; min-height: 60px; font-size: .72rem; } }

/* ページの右上の5つのボタン */
.page-head { gap: 12px; }
.top-tools { display: flex; align-items: center; gap: 6px; margin-left: auto; }
.top-tools .tt { position: relative; display: inline-flex; align-items: center; justify-content: center; width: 38px; height: 38px; padding: 0; border: 1px solid var(--line); border-radius: 8px; background: #fff; font-size: 1.15rem; line-height: 1; text-decoration: none; color: var(--ink); cursor: pointer; list-style: none; box-shadow: var(--shadow); }
.top-tools .tt::-webkit-details-marker { display: none; }
.top-tools .tt:hover { border-color: var(--brand); background: #f1f7f2; }
.top-tools .tt.out { background: #d6264f; border-color: #d6264f; color: #fff; font-weight: bold; }
.top-tools .tt.out:hover { background: #b81f42; }
.tt-form { margin: 0; }
.tt-badge { position: absolute; top: -6px; right: -6px; min-width: 18px; padding: 0 5px; border-radius: 9px; background: #d33; color: #fff; font-style: normal; font-size: .72rem; line-height: 18px; text-align: center; }
.tt-bell { position: relative; }
.tt-pop { position: absolute; right: 0; top: 44px; z-index: 30; width: 260px; padding: 8px 10px; background: #fff; border: 1px solid var(--line); border-radius: 8px; box-shadow: 0 6px 18px rgba(0,0,0,.18); font-size: .88rem; }
.tt-pop p { margin: 4px 0; color: var(--muted); }
.tt-pop ul { list-style: none; margin: 0; padding: 0; }
.tt-pop li a { display: flex; justify-content: space-between; gap: 8px; padding: 6px 4px; border-bottom: 1px solid var(--line); color: var(--ink); text-decoration: none; }
.tt-pop li:last-child a { border-bottom: 0; } .tt-pop li a b { color: #d33; white-space: nowrap; }
@media (max-width: 860px) { .top-tools { gap: 4px; } .top-tools .tt { width: 34px; height: 34px; } .tt-pop { width: 230px; } }

/* 管理画面は、画面の広さを使う（広い画面で、右が空かないように。あまり広すぎる画面だけ、上限を置く） */
.admin .main, .admin .main.wide { max-width: 1900px; }

/* 取扱説明書 */
.manual h2 { margin-top: 0; } .manual h3 { margin: 1.1em 0 .3em; font-size: 1.02rem; border-left: 4px solid var(--brand); padding-left: .5em; }
.manual p, .manual li { line-height: 1.85; } .manual ol, .manual ul { margin: .3em 0 .8em; padding-left: 1.6em; }
.manual-toc { margin: 1em 0 .5em; padding: .6em 1em; background: #f4f8f5; border-radius: 8px; } .manual-toc ol { columns: 2; column-gap: 2em; margin: .3em 0 0; } .manual-toc li { break-inside: avoid; line-height: 1.7; }
.manual-top { text-align: right; margin: .6em 0 0; font-size: .85rem; }
.manual section[id] { scroll-margin-top: 10px; }
@media (max-width: 860px) { .manual-toc ol { columns: 1; } }
@media print { .side, .top-tools, .manual-tools, .manual-top, .page-head .head-actions { display: none !important; } .admin { display: block; } .admin .main { max-width: none; padding: 0; } .manual .card { box-shadow: none; border: 0; break-inside: avoid-page; } }

/* 説明書は、行が長すぎると読みにくいので、広い画面でも幅を抑える */
.manual { max-width: 980px; }

/* ホームページの編集：左に直す画面、右にプレビュー */
.split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: 16px; align-items: start; }
.split-prev { position: sticky; top: 8px; background: #fff; border: 1px solid var(--line); border-radius: 8px; padding: 10px; }
.split-prev .toolbar { margin-bottom: 8px; gap: 8px; }
.split-prev iframe { width: 100%; height: calc(100vh - 130px); min-height: 480px; border: 1px solid var(--line); border-radius: 6px; background: #fff; display: block; margin: 0 auto; }
.split-prev.phone iframe { width: 390px; max-width: 100%; }
@media (max-width: 1100px) { .split { grid-template-columns: 1fr; } .split-prev { position: static; } .split-prev iframe { height: 520px; } }
/* 予定の見せる範囲の印と、件名を2行まで出す表示（0.14.0） */
.vmark { display: inline-block; width: .7em; height: .7em; border-radius: 2px; margin-right: .3em; vertical-align: baseline; flex: none; }
.mk-private { background: #d33; } .mk-staff { background: #888; } .mk-group { background: #e8890c; } .mk-member { background: #2f7ed8; } .mk-public { background: #2a9d5c; }
.cal .ev.ev2, .admin .cal .ev.ev2 { white-space: normal; display: block; }
.ev2 small { font-size: .72rem; color: #345; }
.ev2 .evt { display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; word-break: break-all; }
.vlegend span { white-space: nowrap; }
.wk-private > a { border-left: 3px solid #d33; padding-left: 3px; }
/* ホームの「運営からのお知らせ」を、1行に畳む（0.14.1） */
.admin-notices > summary { cursor: pointer; list-style: none; font-weight: 600; }
.admin-notices > summary::-webkit-details-marker { display: none; }
.admin-notices > summary::before { content: "▸"; display: inline-block; margin-right: .4em; transition: transform .15s; }
.admin-notices[open] > summary::before { transform: rotate(90deg); }
.admin-notices[data-unread] > summary .an-count { color: #c0392b; }
.admin-notices .an-body { max-height: 60vh; overflow-y: auto; margin-top: 8px; }
.admin-notices .an-seen { margin-top: 8px; }
