/* 配色は tennis arena garden のロゴ（緑 #008742・こげ茶 #312221）に合わせています */
:root{
  --bg:#F3F6F2; --panel:#FFFFFF; --ink:#312221; --muted:#6B6361; --line:#DCE3DA; --line-strong:#B4BFB3;
  --accent:#008742; --accent-ink:#FFFFFF; --accent-soft:#E6F3EB; --accent-dark:#006633;
  --red:#C8332E; --blue:#2E5FBF; --danger:#B03A2E; --shadow:0 6px 24px rgba(30,40,30,.10);
  --font-ui:"Zen Kaku Gothic New","Noto Sans JP",system-ui,sans-serif;
  --font-body:"Noto Sans JP","Hiragino Sans","Yu Gothic",system-ui,sans-serif;
}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:14px;line-height:1.5}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.btn{padding:7px 14px;border-radius:6px;border:1px solid var(--line-strong);background:var(--panel);font-family:var(--font-ui);font-weight:700;white-space:nowrap}
.btn:hover{background:var(--accent-soft)}
.btn.primary{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}
.btn.primary:hover{background:var(--accent-dark)}
.btn.small{padding:4px 9px;font-size:12px;font-weight:500}
.btn.danger{color:var(--danger)}
.btn:disabled{opacity:.5;cursor:default}
.seg{display:inline-flex;border:1px solid var(--line-strong);border-radius:8px;overflow:hidden;flex-wrap:wrap}
.seg button{border:0;background:var(--panel);padding:7px 14px;font-family:var(--font-ui);font-weight:700;border-right:1px solid var(--line)}
.seg button:last-child{border-right:0}
.seg button.on{background:var(--accent);color:#fff}
.logo{height:34px;width:auto;display:block}

/* ── 印刷用シート（プレビューと共通） ── */
.sheet{width:210mm;min-height:297mm;background:#fff;color:#111;padding:9mm 12mm 8mm;box-shadow:var(--shadow);font-family:var(--font-body);font-size:9.5pt;line-height:1.4;position:relative}
.sheet *{box-sizing:border-box}
.s-top{display:grid;grid-template-columns:1fr auto;align-items:start;margin-bottom:2.5mm;gap:4mm}
.s-titlebox{display:flex;align-items:center;gap:4mm}
.s-titlebox img{height:15mm;width:auto}
.s-title{font-family:var(--font-ui);font-weight:900;font-size:16pt;letter-spacing:.06em;color:#312221}
.s-right{display:grid;gap:2mm;justify-items:end}
.s-rec{display:grid;grid-template-columns:auto auto;border:1px solid #000;font-size:9pt}
.s-rec span{padding:1mm 3mm}
.s-rec span:first-child{border-right:1px solid #000;background:#eee}
.s-rec span:last-child{min-width:26mm}
.s-appr{display:grid;grid-template-columns:repeat(3,22mm);border:1px solid #000;text-align:center;font-size:8.5pt}
.s-appr div{border-right:1px solid #000;border-bottom:1px solid #000;padding:.8mm 0}
.s-appr div:nth-child(3n){border-right:0}
.s-appr .sig{height:12mm;border-bottom:0;display:grid;place-items:center;font-size:15pt;font-family:var(--font-ui);font-weight:700}
.s-band{display:grid;grid-template-columns:1fr 18mm 26mm 16mm 24mm;border:1px solid #000;border-bottom:0;text-align:center;font-size:9.5pt}
.s-band>div{padding:1mm 2mm;border-right:1px solid #000}
.s-band>div:last-child{border-right:0}
.s-band .wk{font-weight:700;text-align:left}
.s-main{border:1px solid #000;border-bottom:0;display:grid;grid-template-columns:26mm 1fr;font-size:9.5pt}
.s-main div:first-child{background:#008742;color:#fff;font-weight:700;padding:1mm 2mm;font-size:8.5pt;display:flex;align-items:center}
.s-main div:last-child{padding:1mm 3mm;font-weight:700}
.s-theme{border:1px solid #000;padding:2mm 3mm;font-size:12.5pt;font-weight:900;font-family:var(--font-ui);display:flex;gap:4mm;align-items:baseline}
.s-theme small{font-size:9pt;font-weight:500}
.s-cols{display:grid;grid-template-columns:40mm 1fr 56mm;border:1px solid #000;border-top:0;font-size:9pt;font-weight:700;background:#E6F3EB}
.s-cols div{padding:1mm 2mm;border-right:1px solid #000}
.s-cols div:last-child{border-right:0}
.s-drill{display:grid;grid-template-columns:40mm 1fr 56mm;border:1px solid #000;border-top:0;min-height:31mm;break-inside:avoid}
.s-drill>div{padding:1.2mm 2mm;border-right:1px solid #000}
.s-drill>div:last-child{border-right:0}
.s-drill .dc{font-family:var(--font-ui);font-weight:700;font-size:10pt;margin-bottom:1mm}
.s-drill .dc b{font-size:12pt;margin-right:1mm}
.s-drill svg{display:block;margin:0 auto}
.s-legend{margin-top:1.2mm;display:grid;grid-template-columns:1fr;gap:.3mm 1mm;font-size:6.3pt;line-height:1.25;color:#333}
.s-legend span{display:flex;align-items:center;gap:.8mm;white-space:nowrap}
.s-legend svg{width:7mm;height:2.8mm;margin:0;flex:none}
.s-drill .dt{font-weight:900;font-size:10pt;font-family:var(--font-ui);margin-bottom:1mm}
.s-drill .dt b{font-size:12pt;margin-right:1.5mm}
.s-drill p{margin:0;white-space:pre-wrap;font-size:8.5pt;line-height:1.38}
.s-drill .vid{display:inline-block;margin-top:1.5mm;font-size:8.5pt;color:#2E5FBF;text-decoration:none;font-weight:700}
.ln-r{color:#C8332E}.ln-b{color:#2E5FBF}.ln-s{font-weight:700}
.s-foot{margin-top:3mm;font-size:8.5pt;display:flex;justify-content:space-between}
.s-blank{color:#bbb}
.vwrap{position:relative;width:100%;aspect-ratio:16/9;background:#000;border-radius:8px;overflow:hidden}
.vwrap iframe,.vwrap video{position:absolute;inset:0;width:100%;height:100%;border:0}

/* カリキュラム表 */
.c-head{display:flex;align-items:center;gap:5mm;margin-bottom:3mm}
.c-head img{height:16mm}
.c-head h1{margin:0;font-family:var(--font-ui);font-size:18pt;font-weight:900;color:#312221;flex:1}
.c-meta{display:grid;grid-template-columns:repeat(3,auto);border:1px solid #000;font-size:9pt;text-align:center}
.c-meta div{padding:1mm 3mm;border-right:1px solid #000}
.c-meta div:last-child{border-right:0}
.c-meta b{display:block;font-size:12pt}
.c-mainlabel{background:#008742;color:#fff;font-weight:700;padding:1mm 3mm;border:1px solid #000;border-bottom:0;font-size:9.5pt}
.c-main{border:1px solid #000;padding:3mm;text-align:center;font-family:var(--font-ui);font-weight:900;font-size:16pt;margin-bottom:3mm}
.c-table{width:100%;border-collapse:collapse;font-size:8.8pt}
.c-table th{background:#E6F3EB;border:1px solid #000;padding:1mm 2mm;text-align:left}
.c-table td{border:1px solid #000;padding:1.2mm 2mm;vertical-align:top;white-space:pre-wrap;line-height:1.4}
.c-table td.wk{text-align:center;font-weight:900;font-size:12pt;width:10mm;vertical-align:middle}
.c-table .wt{font-weight:900;color:#008742;font-size:10pt;display:block;margin-bottom:.5mm}
.c-table td.note{width:52mm;font-size:8.3pt}
.c-table tr.cur td{background:#FFFBE6}
.sub-table td{font-size:8.5pt;white-space:pre-wrap}
.sub-table td:nth-child(1){white-space:nowrap}
