/* モルックドーム 定期大会のレギュレーション(検討版) — 明るい1色だけ。罫線と余白で組む */
:root{
  color-scheme:light;
  --bg:#f6f8f3;
  --ink:#1d2a21;
  --mid:#43534a;
  --dim:#66756b;
  --line:#d6e0d7;
  --line2:#bccdbf;
  --green:#1f5e3b;
  --green-d:#164a2d;
  --green-soft:#e4eee5;
  --tint:#edf3ec;
  --white:#fdfefc;
  --f-body:"BIZ UDPGothic","Hiragino Sans","Hiragino Kaku Gothic ProN",sans-serif;
  --f-head:"Zen Kaku Gothic New","Hiragino Sans","Hiragino Kaku Gothic ProN",sans-serif;
}
*{box-sizing:border-box}
html{background:var(--bg);-webkit-text-size-adjust:100%;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
body{
  margin:0;color:var(--ink);font-family:var(--f-body);font-size:16px;line-height:1.8;
  background-color:var(--bg);
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .12 0 0 0 0 .3 0 0 0 0 .18 0 0 0 .06 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  border-top:5px solid var(--green);
}
a{color:var(--green)}
h1,h2,h3{font-family:var(--f-head);font-weight:700;text-wrap:balance;margin:0;line-height:1.4;letter-spacing:.01em}
p{margin:0}
p,li,dd{text-wrap:pretty}
.wrap{max-width:720px;margin:0 auto;padding:0 20px}
.num{font-variant-numeric:tabular-nums}
.nb{white-space:nowrap}
[hidden]{display:none!important}

/* 見出しまわり */
.head{padding:28px 20px 6px}
.eyebrow,.sec-label{font-size:13px;letter-spacing:.16em;color:var(--green);font-weight:700}
.head h1{font-size:27px;margin-top:6px;line-height:1.35}
.note{margin-top:12px;font-size:15px;color:var(--mid);line-height:1.7}
.note .draft{display:inline-block;border:1px solid var(--green);color:var(--green);font-weight:700;font-size:13px;padding:0 7px;margin-right:8px;border-radius:2px;line-height:1.7}
.note .ask{display:block;margin-top:4px;color:var(--ink)}
.kanri-bar{margin:0;background:var(--ink);color:var(--white);font-size:13px;text-align:center;padding:4px}

/* 目次 */
.toc{margin-top:26px;border-top:1px solid var(--line2);padding-top:14px}
.toc ol{list-style:none;margin:6px 0 0;padding:0}
.toc li{border-bottom:1px solid var(--line)}
.toc a{display:grid;grid-template-columns:1fr auto;column-gap:12px;align-items:center;padding:11px 0;text-decoration:none;color:var(--ink)}
.toc .t{font-weight:700;font-size:17px;grid-column:1}
.toc .s{grid-column:1;font-size:14px;color:var(--dim);line-height:1.5}
.toc .n{grid-column:2;grid-row:1/3;font-size:14px;color:var(--green);white-space:nowrap;font-variant-numeric:tabular-nums}
.toc .n.zero{color:var(--dim)}
.toc a:active .t{color:var(--green)}

/* 大きな区切り(どの節も同じ形) */
.sec{margin-top:48px;padding-top:18px;border-top:2px solid var(--green);scroll-margin-top:8px}
.sec h2{font-size:24px;margin-top:4px}
.sec .lead{margin-top:10px;color:var(--mid);text-align:justify}
.sub-h{font-size:19px;margin-top:34px;padding-bottom:6px;border-bottom:1px solid var(--line2)}
.aside{margin-top:12px;font-size:14.5px;color:var(--dim);text-align:justify}

/* まとめ: 早見 */
.ov{margin-top:16px;border-top:1px solid var(--line2)}
.ov-row{display:grid;grid-template-columns:1fr;padding:14px 0;border-bottom:1px solid var(--line)}
.ov-name{font-family:var(--f-head);font-weight:700;font-size:18px;text-decoration:none;color:var(--green);justify-self:start}
.ov-name:after{content:" ›";font-family:var(--f-body)}
.ov dl{display:grid;grid-template-columns:3.2em 1fr;gap:2px 10px;margin:6px 0 0;font-size:15px;line-height:1.65}
.ov dt{color:var(--dim);font-size:13.5px;padding-top:1px}
.ov dd{margin:0;text-align:justify}
.ov dd .num{margin-left:.5em}
@media (min-width:640px){
  .ov-row{grid-template-columns:10em 1fr;column-gap:16px}
  .ov dl{margin-top:2px}
}

/* 共通の決まり */
.common{list-style:none;margin:0;padding:0}
.common li{display:grid;grid-template-columns:1fr;padding:10px 0;border-bottom:1px solid var(--line)}
.common b{font-size:14px;color:var(--green);letter-spacing:.04em}
.common span{text-align:justify}
@media (min-width:640px){.common li{grid-template-columns:7em 1fr;column-gap:12px}.common b{padding-top:2px}}

/* 検討中のこと */
.q{margin-top:30px;scroll-margin-top:8px}
.q + .q{padding-top:26px;border-top:1px solid var(--line2)}
.q h3{font-size:20px;display:flex;gap:10px;align-items:baseline}
.qn{font-family:var(--f-body);font-size:14px;color:var(--white);background:var(--green);padding:0 7px;border-radius:2px;flex:none;line-height:1.7;position:relative;top:-2px}
.q > p{margin-top:8px;text-align:justify}
.q > p.ask-q{font-weight:700;text-align:left;text-wrap:balance;padding-left:12px;border-left:3px solid var(--green)}

/* 表(どの表も同じ形) */
.tbl{margin-top:12px;overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%}
table{border-collapse:collapse;width:100%;font-size:15px;line-height:1.6;background:var(--white)}
th,td{border:1px solid var(--line2);padding:8px 10px;text-align:left;vertical-align:top}
th{background:var(--green-soft);font-weight:700;font-size:14px;white-space:nowrap;color:var(--green-d)}
td:first-child{white-space:nowrap;font-variant-numeric:tabular-nums}
.reg td:nth-child(2){font-variant-numeric:tabular-nums}
.cmp td:first-child{white-space:normal;font-weight:700;width:26%}
@media (max-width:600px){
  .cmp,.cmp tbody,.cmp tr,.cmp td{display:block;width:auto!important}
  .cmp thead{display:none}
  .cmp{background:transparent;border-top:1px solid var(--line2)}
  .cmp tr{padding:10px 0;border-bottom:1px solid var(--line2)}
  .cmp td{border:0;padding:2px 0 2px 2.2em;position:relative}
  .cmp td:first-child{padding-left:0;margin-bottom:2px}
  .cmp td[data-l]:before{content:attr(data-l);position:absolute;left:0;top:3px;font-size:12.5px;font-weight:700;color:var(--green);border:1px solid var(--green-line,#9fbea8);line-height:1.5;padding:0 5px;border-radius:2px}
  .cmp td[data-l="B"]:before{color:var(--mid);border-color:var(--line2)}
}

/* 大会ごと */
.meta{display:grid;grid-template-columns:4.6em 1fr;gap:2px 12px;margin:12px 0 0;padding:10px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:15.5px}
.meta dt{color:var(--dim);font-size:14px;padding-top:1px}
.meta dd{margin:0}
.reg-h{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-top:26px;padding-bottom:4px;border-bottom:1px solid var(--line2)}
.reg-h h3{font-size:18px}
.op{flex:none;font-size:14px;color:var(--green);text-underline-offset:3px;padding:6px 0 6px 10px;margin:-6px 0;white-space:nowrap;font-variant-numeric:tabular-nums}
.op.zero{color:var(--dim)}
.rl{margin:8px 0 0;padding-left:1.25em}
.rl li{margin:3px 0;text-align:justify}
.rl li::marker{color:var(--green)}
.rl ul{margin:2px 0 4px;padding-left:1.15em;font-size:15px;color:var(--mid)}
.rl ul li::marker{content:"– "}
.reg > p{margin-top:8px;text-align:justify}

/* 意見 */
.talk{margin-top:30px;padding-top:14px;border-top:1px solid var(--line2);scroll-margin-top:8px}
.q .talk{margin-top:22px;border-top:1px dashed var(--line2)}
.talk-h{font-size:17px;display:flex;justify-content:space-between;align-items:baseline}
.talk-h .cnt{font-family:var(--f-body);font-size:14px;color:var(--dim);font-weight:400}
.c{padding:14px 0;border-bottom:1px solid var(--line)}
.c-meta{font-size:13.5px;color:var(--dim);line-height:1.6}
.c-meta b{color:var(--ink);font-weight:700;font-size:14.5px}
.c-meta .id{font-family:ui-monospace,Menlo,monospace;font-size:12px;color:var(--mid);user-select:all;overflow-wrap:anywhere}
.c-meta .hid{color:#9a3b2a;font-weight:700}
.c-text{margin-top:4px;white-space:pre-wrap;overflow-wrap:anywhere;text-align:justify}
.like{margin-top:8px;font-family:inherit;font-size:14px;line-height:1.5;border:1px solid var(--line2);background:transparent;color:var(--mid);padding:4px 12px;border-radius:3px;cursor:pointer;font-variant-numeric:tabular-nums}
.like[aria-pressed="true"]{border-color:var(--green);color:var(--green);background:var(--green-soft);cursor:default}
.empty{color:var(--dim);font-size:14.5px;padding:8px 0 2px}
.write{margin-top:14px;font-family:inherit;font-size:16px;font-weight:700;color:var(--green);background:transparent;border:1px solid var(--green);border-radius:3px;padding:9px 18px;cursor:pointer}
.write:active{background:var(--green-soft)}

.f{margin-top:14px;padding:16px 16px 18px;background:var(--tint);border-left:3px solid var(--green);scroll-margin-top:16px}
.f label{display:block;font-size:14px;font-weight:700;color:var(--mid);margin-top:12px}
.f label:first-of-type{margin-top:0}
.f select,.f input,.f textarea{display:block;width:100%;margin-top:4px;font-family:inherit;font-size:16px;line-height:1.6;color:var(--ink);background:var(--white);border:1px solid var(--line2);border-radius:3px;padding:9px 10px}
.f textarea{resize:none;overflow:hidden;min-height:7.5em}
.f select{appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--green) 50%),linear-gradient(135deg,var(--green) 50%,transparent 50%);background-position:calc(100% - 18px) 55%,calc(100% - 13px) 55%;background-size:5px 5px;background-repeat:no-repeat;padding-right:32px}
.f :focus{outline:2px solid var(--green);outline-offset:1px}
.f .hint{font-size:13px;color:var(--dim);margin-top:10px;text-align:justify}
.f .row{display:flex;gap:12px;align-items:center;margin-top:14px;flex-wrap:wrap}
.send{font-family:inherit;font-size:16px;font-weight:700;color:var(--white);background:var(--green);border:0;border-radius:3px;padding:11px 30px;cursor:pointer}
.send:disabled{opacity:.6;cursor:default}
.cancel{font-family:inherit;font-size:15px;color:var(--mid);background:transparent;border:0;text-decoration:underline;text-underline-offset:3px;padding:8px 4px;cursor:pointer}
.msg{font-size:14px;color:var(--green);font-weight:700}
.msg.err{color:#9a3b2a}
.msg.sent{display:block;margin-top:12px}
.hp{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}

/* 下 */
.foot{margin-top:56px;padding-top:18px;padding-bottom:96px;border-top:2px solid var(--green);font-size:14.5px;color:var(--mid)}
.foot p{margin-top:4px}
.foot .dim{color:var(--dim);font-size:13px;margin-top:10px}

.fab{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom));z-index:10;background:var(--green);color:var(--white);text-decoration:none;font-weight:700;font-size:15px;line-height:1;padding:12px 14px;border-radius:3px;box-shadow:0 2px 10px rgba(20,50,30,.22);transition:opacity .2s}
.fab.off{opacity:0;pointer-events:none}
