/* 中国中央 MEMBERS 共通スタイル — 絵文字アイコン不使用・タイポグラフィ基調 */
:root{--mag:#E4007F;--mag-dk:#B00063;--navy:#142339;--navy2:#1E3556;--gold:#C2A14E;
  --blue:#1E88C7;--green:#2EA66A;--red:#e63e2f;--ink:#22324C;--ink-soft:#5a6678;
  --line:#e6ebf1;--paper:#eef2f7;--ice:#CFE0F3;--maxw:760px;}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{font-family:"Zen Kaku Gothic New",system-ui,sans-serif;background:#dce1e8;color:var(--ink);
  -webkit-font-smoothing:antialiased;line-height:1.6}
img{display:block;max-width:100%}a{color:inherit;text-decoration:none}
.en{font-family:"Outfit",sans-serif}.mc{font-family:"Shippori Mincho",serif}
.wrap{max-width:var(--maxw);margin:0 auto;background:var(--paper);min-height:100vh;box-shadow:0 0 60px rgba(0,0,0,.1);display:flex;flex-direction:column}
.main{flex:1;padding:14px 14px 28px}
body.admin .wrap{max-width:1080px}

/* header */
.ghd{position:sticky;top:0;z-index:40;background:linear-gradient(135deg,var(--mag),var(--mag-dk));color:#fff;padding:11px 16px;display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.ghd.adm{background:linear-gradient(135deg,var(--navy),var(--navy2))}
.brand{font-size:15px;font-weight:900;letter-spacing:.04em}
.brand .en,.brand b{letter-spacing:.14em}
.gnav{display:flex;gap:2px;flex-wrap:wrap}
.gnav a{font-size:11.5px;font-weight:800;padding:6px 10px;border-radius:8px;color:rgba(255,255,255,.92)}
.gnav a:hover{background:rgba(255,255,255,.14)}
.gnav .out{opacity:.75}

/* flash */
.flash{margin:12px 14px 0;padding:11px 14px;border-radius:11px;font-size:12.5px;font-weight:800;background:#e7f6ee;color:#186a43;border:1px solid #bfe5d0}
.flash.err{background:#fdeceb;color:#a32c22;border-color:#f3c8c4}

/* section heading */
.sec-h{display:flex;align-items:center;gap:8px;margin:16px 2px 10px}
.sec-h .bar{width:4px;height:17px;border-radius:3px;background:var(--mag)}
body.admin .sec-h .bar{background:var(--navy)}
.sec-h h1,.sec-h h2{font-size:16px;font-weight:900;color:var(--navy)}
.sec-h .more{margin-left:auto;font-size:11px;color:var(--ink-soft);font-weight:700}

/* card */
.card{background:#fff;border:1px solid var(--line);border-radius:15px;padding:16px;box-shadow:0 4px 14px rgba(20,35,57,.05);margin-bottom:12px}
.card .kicker{font-family:"Outfit",sans-serif;font-size:10.5px;font-weight:800;letter-spacing:.16em;color:var(--mag);margin-bottom:6px}
.muted{color:var(--ink-soft);font-size:11.5px}

/* forms */
.f{margin-bottom:13px}
.f label{display:block;font-size:12.5px;font-weight:800;color:var(--navy);margin-bottom:5px}
.f label .req{color:#fff;background:var(--red);font-size:9px;font-weight:800;padding:1px 6px;border-radius:4px;margin-left:6px;vertical-align:1px}
.f label .opt{color:var(--ink-soft);background:var(--paper);font-size:9px;font-weight:700;padding:1px 6px;border-radius:4px;margin-left:6px;vertical-align:1px;border:1px solid var(--line)}
.f input[type=text],.f input[type=tel],.f input[type=email],.f input[type=date],.f input[type=password],.f input[type=number],.f select,.f textarea{
  width:100%;font-size:16px;padding:11px 12px;border:1.5px solid var(--line);border-radius:10px;background:#fcfdff;color:var(--ink);outline:none;font-family:inherit}
.f textarea{min-height:96px;resize:vertical}
.f input:focus,.f select:focus,.f textarea:focus{border-color:var(--mag);background:#fff;box-shadow:0 0 0 3px rgba(228,0,127,.10)}
body.admin .f input:focus,body.admin .f select:focus,body.admin .f textarea:focus{border-color:var(--navy);box-shadow:0 0 0 3px rgba(20,35,57,.10)}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.hint{font-size:10.5px;color:var(--ink-soft);margin-top:4px}

/* buttons */
.btn{display:inline-block;text-align:center;padding:13px 20px;border:none;border-radius:11px;font-weight:900;font-size:14px;color:#fff;cursor:pointer;background:linear-gradient(135deg,var(--mag),var(--mag-dk));font-family:inherit}
.btn.w{width:100%}
.btn.navy{background:linear-gradient(135deg,var(--navy),var(--navy2))}
.btn.green{background:linear-gradient(135deg,var(--green),#1f8a55)}
.btn.ghost{background:#fff;color:var(--navy);border:1.5px solid var(--line)}
.btn.sm{padding:8px 13px;font-size:12px;border-radius:9px}
.btn:active{transform:scale(.99)}
.btn[disabled]{background:#c2cbd6;cursor:not-allowed}

/* home: shaken hero */
.shaken{background:linear-gradient(135deg,var(--navy2),var(--navy));color:#fff;border:none}
.shaken .carlbl{font-size:9.5px;font-weight:800;letter-spacing:.1em;color:var(--ice);border:1px solid rgba(255,255,255,.35);border-radius:3px;padding:2px 8px;margin-right:8px}
.shaken .cd{display:flex;align-items:baseline;gap:8px;margin:10px 0 4px}
.shaken .cd .v{font-family:"Outfit";font-weight:900;font-size:32px;color:#FF8AC4;line-height:1}
.shaken .date{font-size:12px;opacity:.85}
.shaken .warn{color:#ffd7ea;font-weight:800}

/* quick menu (番号+上罫線) */
.qm{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin:4px 0 6px}
.qm a{background:#fff;border:1px solid var(--line);border-radius:13px;padding:12px 4px 11px;text-align:center;border-top:3px solid var(--line)}
.qm .no{font-family:"Outfit",sans-serif;font-size:11px;font-weight:800;letter-spacing:.14em;margin-bottom:4px}
.qm .t{font-size:10.5px;font-weight:800;color:var(--navy);line-height:1.25}

/* list rows */
.list a,.list .row{display:flex;gap:11px;align-items:center;padding:12px 2px;border-bottom:1px dashed var(--line)}
.list a:last-child,.list .row:last-child{border-bottom:none}
.list .th{width:3px;align-self:stretch;border-radius:3px;flex:none;background:var(--line)}
.list .tt{font-size:13px;font-weight:800;color:var(--navy);line-height:1.35}
.list .mt{font-size:10.5px;color:var(--ink-soft);margin-top:2px}
.tag{font-size:9px;font-weight:800;color:#fff;padding:1px 7px;border-radius:20px;display:inline-block;margin-bottom:3px;background:var(--ink-soft)}
.tag.fair{background:var(--mag)}.tag.car{background:var(--blue)}.tag.seibi{background:var(--green)}.tag.info{background:var(--navy2)}
.badge{font-size:10px;font-weight:800;padding:2px 9px;border-radius:20px;border:1px solid var(--line);color:var(--ink-soft);background:#fff}
.badge.on{background:var(--green);border-color:var(--green);color:#fff}
.badge.warn{background:#fff4e5;border-color:#f0ce9a;color:#8a5a00}
.badge.mag{background:#FCE9F2;border-color:#f0bcd8;color:var(--mag-dk)}

/* reservation chips/slots */
.chips{display:flex;gap:7px;margin-bottom:13px;flex-wrap:wrap}
.chip{min-width:64px;border:1.5px solid var(--line);background:#fff;border-radius:11px;padding:8px 6px;text-align:center;cursor:pointer}
.chip .d{font-size:13.5px;font-weight:900;color:var(--navy);font-family:"Outfit"}
.chip .w{font-size:9px;color:var(--ink-soft)}
.chip.on{background:var(--green);border-color:var(--green)}
.chip.on .d,.chip.on .w{color:#fff}
.slots{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-bottom:14px}
.slot{border:1.5px solid var(--line);background:#fff;border-radius:10px;padding:10px 4px;text-align:center;font-family:"Outfit";font-weight:800;font-size:13px;color:var(--navy);cursor:pointer}
.slot.on{background:#FCE9F2;border-color:var(--mag);color:var(--mag)}
.slot.full{opacity:.35;cursor:not-allowed;text-decoration:line-through}

/* admin tables */
.tbl{width:100%;border-collapse:collapse;background:#fff;border:1px solid var(--line);border-radius:12px;overflow:hidden;font-size:12.5px}
.tbl th{background:var(--navy);color:#fff;font-size:11px;font-weight:800;text-align:left;padding:9px 10px;letter-spacing:.04em;white-space:nowrap}
.tbl td{padding:9px 10px;border-top:1px solid var(--line);vertical-align:middle}
.tbl tr:hover td{background:#f7fafd}
.tbl .num{font-family:"Outfit";font-weight:700}
.tblwrap{overflow-x:auto;border-radius:12px}

/* stat cards (admin dashboard) */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:6px}
.stat{background:#fff;border:1px solid var(--line);border-radius:13px;padding:13px 14px}
.stat .k{font-size:10.5px;font-weight:800;color:var(--ink-soft);letter-spacing:.04em}
.stat .v{font-family:"Outfit";font-weight:900;font-size:26px;color:var(--navy);line-height:1.2}
.stat .v small{font-size:12px;color:var(--ink-soft);font-weight:700}
@media(max-width:640px){.stats{grid-template-columns:repeat(2,1fr)}}

/* auth screens */
.auth{max-width:420px;margin:26px auto}
.auth .ttl{text-align:center;margin-bottom:18px}
.auth .ttl .orn{display:flex;align-items:center;justify-content:center;gap:10px;color:var(--mag);margin-bottom:6px}
.auth .ttl .orn::before,.auth .ttl .orn::after{content:"";width:36px;height:1px}
.auth .ttl .orn::before{background:linear-gradient(90deg,transparent,var(--mag))}
.auth .ttl .orn::after{background:linear-gradient(90deg,var(--mag),transparent)}
.auth .ttl .orn span{font-family:"Outfit",sans-serif;font-size:10px;letter-spacing:.34em;font-weight:800}
.auth h1{font-size:21px;font-weight:900;color:var(--navy)}
.auth .sub{font-size:11.5px;color:var(--ink-soft);margin-top:3px}

/* footer */
.gft{background:var(--navy);color:#9fb0c8;padding:18px 16px;font-size:11px;text-align:center;line-height:1.7}
.gft b{color:#fff}
