:root{--ink:#222;--muted:#666;--line:#ccc;--bg:#f6f7f9;--card:#fff;--accent:#b4441d}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,"Hiragino Sans","Yu Gothic UI",Meiryo,sans-serif;line-height:1.7}
main{max-width:1200px;margin:0 auto;padding:16px}
main.doc{max-width:760px}
h1{font-size:1.6rem;line-height:1.35;margin:.4em 0}
h2{font-size:1.2rem;margin-top:1.8em}
a{color:#2b5d8f;overflow-wrap:anywhere}
.small{font-size:.85rem;color:var(--muted)}
.pr-notice{font-size:.8rem;color:var(--muted);margin:0}
.lead{margin-top:0}
.tool{display:grid;grid-template-columns:300px minmax(0,1fr);gap:20px;align-items:start}
form{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:14px;min-width:0}
fieldset{border:0;margin:0 0 12px;padding:0;min-width:0}
.t{display:block;font-weight:700;font-size:.92rem;margin-bottom:4px}
select,input[type=text],input[type=number]{font:inherit;font-size:1rem;padding:7px;border:1px solid #bbb;border-radius:6px;background:#fff;color:var(--ink);max-width:100%}
#title,#days,#season{width:100%}
.ppl{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;align-items:end}
.ppl label{font-size:.88rem}
.ppl input{width:100%}
#print{width:100%;font-size:1.05rem;font-weight:700;padding:12px;border:0;border-radius:8px;background:var(--accent);color:#fff;cursor:pointer;margin-top:6px}
#reset{font:inherit;font-size:.9rem;padding:6px 10px;border:1px solid #bbb;border-radius:6px;background:#fff;cursor:pointer}
.preview{min-width:0}
.sheet{background:#fff;border:1px solid var(--line);border-radius:8px;padding:12px;margin-bottom:16px;overflow-x:auto}
.sh{margin:0 0 2px;font-size:1.15rem}
.meta{font-size:.82rem;color:var(--muted);margin:0 0 8px}
table.list{border-collapse:collapse;width:100%;font-size:.86rem;min-width:520px}
table.list th,table.list td{border:1px solid #9aa3ad;padding:3px 6px;text-align:left;vertical-align:top}
table.list thead th{background:#f3f4f6;font-size:.8rem}
table.list tr.g th{background:#fbe9e2;font-size:.85rem}
table.list .ck{width:2.2em;text-align:center}
table.list .q{white-space:nowrap;font-weight:700}
table.list .have{width:6.5em}table.list .exp{width:5.5em}
table.list .note{font-size:.76rem;color:#444}
.src{font-size:.72rem;color:var(--muted);margin:6px 0 0}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px}
.card{border:1px solid #9aa3ad;border-radius:6px;padding:6px 10px;break-inside:avoid}
.card h3{font-size:.95rem;margin:0 0 4px}
.card ul{list-style:none;margin:0;padding:0;font-size:.84rem;line-height:1.5}
.empty{padding:24px;color:var(--muted);text-align:center}
.pr ul{padding-left:1.2em}.pr-label{font-size:.8rem;color:var(--muted);margin-bottom:0}
footer{border-top:1px solid var(--line);padding:16px;text-align:center;color:var(--muted);font-size:.85rem}
footer a{margin:0 8px}
table.doc{border-collapse:collapse;width:100%;font-size:.92rem}
table.doc th,table.doc td{border:1px solid var(--line);padding:6px 8px;text-align:left}
.doc .wrapt{overflow-x:auto}
@media (max-width:780px){.tool{grid-template-columns:minmax(0,1fr)}}
@media print{
 @page{size:A4 portrait;margin:9mm}
 body{background:#fff}
 body>*:not(main),main>*:not(.tool),.tool>form{display:none!important}
 main{padding:0;max-width:none}.tool{display:block}
 .sheet{border:0;padding:0;margin:0;overflow:visible}
 .sheet.bags{break-before:page}
 table.list{min-width:0;font-size:8.6pt}
 table.list th,table.list td{padding:1.2mm 1.6mm}
 table.list tr{break-inside:avoid}
 .cards{grid-template-columns:repeat(2,1fr);gap:4mm}
 .card ul{font-size:8.6pt;line-height:1.45}
 input[type=checkbox]{width:3.4mm;height:3.4mm;margin:0 1mm 0 0}
 *{-webkit-print-color-adjust:exact;print-color-adjust:exact}
}
