:root{font-family:"Yu Gothic","Hiragino Sans","Meiryo",sans-serif;color:#222}
*{box-sizing:border-box}
body{margin:0;background:#f3f4f6;font-size:15px}
header{background:#1f6f43;color:#fff;padding:12px 20px;display:flex;gap:16px;align-items:baseline}
header h1{margin:0;font-size:20px}.sub{opacity:.85;font-size:13px}
main{max-width:1100px;margin:0 auto;padding:16px}
.card{background:#fff;border:1px solid #d9dce1;border-radius:8px;padding:16px 20px;margin-bottom:16px}
.card h2{margin:0 0 8px;font-size:17px}
button{font:inherit;padding:8px 16px;border:0;border-radius:6px;background:#1f6f43;color:#fff;cursor:pointer}
button:disabled{background:#aaa;cursor:not-allowed}
button.secondary{background:#fff;color:#1f6f43;border:1px solid #1f6f43;margin-top:8px}
.bar{height:12px;background:#e5e7eb;border-radius:6px;overflow:hidden;margin-top:12px}
#barfill{height:100%;width:0;background:#1f6f43;transition:width .2s}
.errors{background:#fdecea;border:1px solid #e0a39c;color:#8a1c12;padding:8px 12px;border-radius:6px;margin-top:10px}
.banner{background:#fff4d6;border:1px solid #e3c26a;padding:8px 12px;border-radius:6px;margin-bottom:8px}
.banner.warn{background:#fde2e0;border-color:#e0a39c}
.notice{background:#eef6ff;border:1px solid #b6d4f2;padding:8px 12px;border-radius:6px}
.sheetwrap{overflow-x:auto}
table.sheet{border-collapse:collapse;font-family:"MS PGothic","Yu Gothic",sans-serif;font-size:15px}
table.sheet th,table.sheet td{border:1px solid #b9b9b9;padding:4px 10px;text-align:center;min-width:56px;height:28px}
table.sheet th{background:#c9c9c9;font-weight:600}
table.sheet td.date{text-align:center;min-width:100px}
table.sheet td.neg{color:#c00}
table.sheet tr.hasunmapped td.date{background:#fde2e0}
table.map,table.detail{border-collapse:collapse;width:100%;font-size:14px}
table.map th,table.map td,table.detail th,table.detail td{border:1px solid #d9dce1;padding:4px 8px;text-align:left}
table.map th,table.detail th{background:#f3f4f6}
table.map input[type=text]{width:100%}
input,select{font:inherit;padding:3px 6px}
input.qty{width:70px}
.tag{display:inline-block;padding:1px 8px;border-radius:10px;font-size:12px;background:#ffe9a8;border:1px solid #d9b441}
.tag.ok{background:#d9f2e2;border-color:#7cc49b}
tr.unmapped td{background:#fde2e0}
.unlabel{color:#a0201a;font-weight:700;margin-right:4px}
.slip{margin:12px 0 18px}
.slip h3{margin:0 0 4px;font-size:15px}
.copybar{margin-top:12px;display:flex;gap:16px;align-items:center;flex-wrap:wrap}
.status{color:#1f6f43}
textarea{width:100%;font-family:monospace;margin-top:8px}
.hint{color:#555;font-size:13px}
