:root { --campaign-ink:#202c2b; --campaign-muted:#596862; --campaign-green:#156951; --campaign-line:#d8e2dd; --campaign-error:#9c2638; }
.campaign-public { margin:0; background:#f5f8f6; color:var(--campaign-ink); font-family:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",sans-serif; line-height:1.7; letter-spacing:0; }
.campaign-public * { box-sizing:border-box; }
.campaign-header { background:#fff; border-bottom:1px solid var(--campaign-line); padding:20px 24px; }
.campaign-header div { max-width:760px; margin:auto; color:var(--campaign-green); font-size:24px; font-weight:700; }
.campaign-header span { font-size:13px; color:var(--campaign-muted); margin-left:12px; display:inline-block; }
.campaign-main { max-width:760px; margin:auto; padding:36px 24px 64px; min-height:70vh; }
.campaign-main h1 { font-size:28px; margin:0 0 16px; overflow-wrap:anywhere; line-height:1.5; }
.eyebrow { font-size:13px; color:var(--campaign-green); font-weight:700; margin:0 0 8px; }
.intro { color:var(--campaign-muted); margin:0 0 30px; }
.campaign-main form { border-top:2px solid var(--campaign-green); }
.campaign-field { padding:20px 0; border-bottom:1px solid var(--campaign-line); }
.campaign-field label { display:block; font-weight:600; margin-bottom:8px; }
.campaign-field small { color:var(--campaign-error); font-size:12px; margin-left:6px; white-space:nowrap; }
.campaign-field input:not([type=checkbox]):not([type=hidden]), .campaign-field select { width:100%; min-width:0; padding:12px; border:1px solid #91a69b; border-radius:4px; background:#fff; color:var(--campaign-ink); font:inherit; }
.campaign-field .check-label { display:flex; gap:12px; font-weight:400; align-items:flex-start; }
.campaign-field input[type=checkbox] { width:20px; height:20px; margin-top:5px; flex-shrink:0; accent-color:var(--campaign-green); }
.campaign-main a { color:var(--campaign-green); text-underline-offset:3px; }
.campaign-main :focus-visible { outline:3px solid #e7af3a; outline-offset:2px; }
.campaign-main .primary { background:var(--campaign-green); color:#fff; width:100%; border:0; border-radius:4px; padding:15px 24px; font:inherit; font-weight:700; cursor:pointer; margin-top:28px; }
.campaign-main .primary:disabled { opacity:.6; cursor:wait; }
.muted { color:var(--campaign-muted); font-size:13px; margin:8px 0 0; }
.errorlist, .error-summary { color:var(--campaign-error); background:#fff0f1; padding:12px 20px; border-left:3px solid #b7394e; list-style:none; }
.receipt-data { border-top:2px solid var(--campaign-green); padding-top:24px; }
.receipt-data dt { color:var(--campaign-muted); font-size:13px; }
.receipt-data dd { margin:0 0 16px; overflow-wrap:anywhere; }
.receipt-number { font-weight:700; font-size:19px; }
.notice { padding:20px 0; border-top:2px solid #a47616; }
.campaign-footer { border-top:1px solid var(--campaign-line); text-align:center; padding:24px; font-size:13px; color:var(--campaign-muted); }
@media(max-width:480px) { .campaign-main { padding:28px 18px 48px; } .campaign-main h1 { font-size:24px; } }
.campaign-admin { padding:24px; max-width:1800px; letter-spacing:0; }
.campaign-admin h1 { font-size:26px; margin:0; }
.campaign-admin h2 { font-size:20px; margin:28px 0 16px; }
.campaign-toolbar { display:flex; align-items:center; justify-content:space-between; gap:16px; flex-wrap:wrap; margin-bottom:20px; }
.campaign-admin .filters { display:flex; flex-wrap:wrap; gap:12px; padding:16px 0; border-block:1px solid #d8e2dd; margin:16px 0; align-items:end; }
.campaign-admin .filters label { display:flex; flex-direction:column; font-size:13px; gap:4px; }
.campaign-admin input:not([type=checkbox]):not([type=hidden]), .campaign-admin select, .campaign-admin textarea { max-width:100%; min-height:38px; padding:6px 10px; border:1px solid #b8c7c0; border-radius:4px; }
.campaign-admin .table-scroll { overflow:auto; width:100%; border-block:1px solid #d8e2dd; }
.campaign-admin table { width:100%; border-collapse:collapse; font-size:13px; }
.campaign-admin th, .campaign-admin td { padding:12px 10px; text-align:left; vertical-align:top; border-bottom:1px solid #e4eae7; min-width:95px; }
.campaign-admin th { white-space:nowrap; background:#f5f8f6; }
.campaign-admin td.wrap { min-width:180px; max-width:240px; overflow-wrap:anywhere; }
.campaign-admin .status { display:inline-block; font-weight:600; color:#156951; white-space:nowrap; }
.campaign-admin .status.error, .campaign-admin .status.unknown { color:#a62535; }
.campaign-admin .status.review, .campaign-admin .status.hold { color:#886000; }
.campaign-admin .status.excluded { color:#62696a; }
.campaign-admin .admin-form { max-width:700px; border-top:2px solid #156951; padding-top:20px; }
.campaign-admin .admin-form p { display:flex; flex-direction:column; gap:8px; }
.campaign-admin .admin-form input[type=checkbox] { width:20px; height:20px; }
.campaign-admin .detail-grid { display:grid; grid-template-columns:150px minmax(0,1fr); max-width:1000px; gap:12px 20px; border-block:1px solid #d8e2dd; padding:20px 0; }
.campaign-admin .detail-grid dd { margin:0; overflow-wrap:anywhere; }
.campaign-admin .detail-grid dt { color:#596862; }
.campaign-admin .history-item { border-bottom:1px solid #d8e2dd; padding:12px 0; overflow-wrap:anywhere; }
.campaign-admin pre { white-space:pre-wrap; overflow-wrap:anywhere; }
.campaign-admin .pagination-bar { display:flex; justify-content:space-between; gap:12px; padding:20px 0; }
@media(max-width:600px) { .campaign-admin { padding:16px 10px; } .campaign-admin h1 { font-size:22px; } .campaign-admin .detail-grid { grid-template-columns:1fr; gap:4px; } .campaign-admin .detail-grid dd { margin-bottom:12px; } .campaign-admin .filters label { width:100%; } }