:root{--bg:#fff;--surface:#fff;--panel:#f7f7f7;--text:#0d0d0d;--muted:#5f5f5f;--border:#e3e3e3;--accent:#d41111;--accent-dark:#b50e0e;--soft:#fbeaea;--input:#fff;--ok:#1f6e3a;--ink:#0d0d0d;--sm:.9rem;--xs:.8rem;--r:4px}
*{box-sizing:border-box}html,body{margin:0}body{font-family:Montserrat,Arial,sans-serif;font-size:15px;line-height:1.6;background:var(--bg);color:var(--text);min-height:100vh;display:flex;flex-direction:column}main{flex:1}
button,input{font:inherit;color:inherit}button{cursor:pointer;border:1px solid var(--ink);background:var(--surface);border-radius:var(--r);padding:12px 18px;min-height:44px;font-weight:600;font-size:.9rem}button:hover{border-color:var(--accent);color:var(--accent)}button:disabled{cursor:not-allowed;opacity:.55}button.primary{background:var(--accent);color:#fff;border-color:var(--accent)}button.primary:hover{background:var(--accent-dark);color:#fff}button.link{border:0;background:none;color:var(--accent);padding:0;min-height:0;text-decoration:underline;font-weight:500;font-size:inherit}
:focus-visible{outline:3px solid var(--accent);outline-offset:3px}input{width:100%;min-height:46px;padding:8px 12px;background:var(--input);border:1px solid #bdbdbd;border-radius:var(--r)}
h1,h2,h3{font-family:"Bebas Neue",Impact,sans-serif;font-weight:400;letter-spacing:.03em;color:var(--ink)}h1{font-size:clamp(2.2rem,3.4vw,3rem);line-height:1;margin:0 0 12px}h2{font-size:1.55rem;line-height:1.1;margin:0 0 14px}h3{font-size:1.25rem;margin:0 0 8px}p{margin:0 0 16px}.muted{color:var(--muted)}.small{font-size:var(--sm)}.hint{font-size:var(--sm);color:var(--muted);margin-top:8px}
.wordmark{font-family:"Bebas Neue",Impact,sans-serif;font-size:1.7rem;letter-spacing:.08em;line-height:1;color:#fff;display:block}.wordmark em{font-style:normal;color:var(--accent)}.paper .wordmark{color:var(--ink);font-size:1.5rem}
.top{display:flex;justify-content:space-between;align-items:center;padding:14px 32px;background:#0d0d0d;color:#fff;gap:16px;border-bottom:3px solid var(--accent)}.brand{display:flex;align-items:center;gap:16px}.brand img{width:52px;height:52px;background:#fff;border-radius:2px}.brand .tag{display:block;font-size:var(--xs);letter-spacing:.18em;text-transform:uppercase;color:#cfcfcf;margin-top:4px}.top #who{display:block;color:#9a9a9a;margin-top:2px}
.top button{background:transparent;color:#fff;border-color:#6b6b6b}.top button:hover{border-color:#fff;color:#fff}.top button.helpbtn{border-color:var(--accent);color:#fff}
main{max-width:1100px;margin:auto;padding:36px 24px;min-height:70vh}.narrow{max-width:460px;margin:48px auto}
.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--r);padding:28px;margin:0 0 24px}label{display:block;font-weight:600;margin-bottom:16px;font-size:var(--sm)}label input{display:block;margin-top:8px;font-weight:400;font-size:1rem}
.actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px;align-items:center}.badge{font-size:var(--xs);padding:4px 10px;border:1px solid var(--border);border-radius:var(--r);white-space:nowrap;font-weight:600}.badge.ok{border-color:var(--ok);color:var(--ok)}
.alert{padding:12px 16px;border-radius:var(--r);border:1px solid var(--border);background:var(--soft);margin-bottom:16px}.alert.ok{background:#eef7f0;border-color:#bfe0c8}
.row{display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap}
.paper{background:var(--surface);padding:44px 48px;border:1px solid var(--border);max-width:860px;margin:auto}.paper-head{border-bottom:3px solid var(--accent);padding-bottom:22px;margin-bottom:26px}
.money{font-weight:700;font-size:clamp(1.9rem,3vw,2.6rem);color:var(--accent);font-variant-numeric:tabular-nums;letter-spacing:-.01em}.numbers{font-variant-numeric:tabular-nums}
table{width:100%;border-collapse:collapse}td,th{padding:12px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}th{font-size:var(--xs);color:var(--muted);font-weight:600;letter-spacing:.06em;text-transform:uppercase;background:var(--panel)}td:last-child,th:last-child{text-align:right}tbody th{text-transform:none;letter-spacing:0;font-size:inherit;color:var(--text)}
.list{display:grid;gap:12px}.card{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 22px;background:var(--surface);border:1px solid var(--border);border-radius:var(--r);flex-wrap:wrap}
ul.plain{padding-left:20px;margin:0 0 16px}code{background:var(--panel);padding:2px 6px;border-radius:3px;font-size:.95em;word-break:break-all}#qr{display:block;margin:12px 0;background:#fff;padding:8px;border:1px solid var(--border);width:220px}#qr svg{display:block;width:100%;height:auto}details{margin:8px 0 16px}summary{cursor:pointer;min-height:36px}
footer{font-size:var(--xs);color:#bdbdbd;background:#0d0d0d;margin-top:48px;padding:22px;text-align:center;letter-spacing:.04em}
@media(max-width:650px){.top{padding:12px 16px}.brand img{width:40px;height:40px}.wordmark{font-size:1.3rem}main{padding:16px}.paper{padding:20px}.panel{padding:16px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}

.steps{display:flex;align-items:center;gap:8px;margin-bottom:16px}.steps span:not(.small){width:28px;height:28px;border-radius:50%;border:2px solid var(--border);display:inline-flex;align-items:center;justify-content:center;font-size:var(--sm);font-weight:700;color:var(--muted)}.steps .now{border-color:var(--accent);color:var(--accent)}.steps .done{background:var(--accent);border-color:var(--accent);color:#fff}
.first{margin-top:24px;padding:16px 20px;border:1px solid var(--border);border-radius:var(--r);background:var(--panel)}.first h2{font-size:1.3rem;margin-bottom:8px}
ol.plain li{margin-bottom:8px}ol.checklist li{margin-bottom:14px}
a{color:var(--accent)}a.button{display:inline-block;text-decoration:none;border:1px solid var(--ink);border-radius:var(--r);padding:12px 18px;min-height:44px;color:inherit;background:var(--surface);font-weight:600;font-size:.9rem}a.button.primary{background:var(--accent);color:#fff;border-color:var(--accent)}
.help-wrap{position:fixed;inset:0;z-index:50}.help-back{position:absolute;inset:0;background:rgba(0,0,0,.45)}.help{position:absolute;top:0;right:0;bottom:0;width:min(440px,100%);background:var(--surface);padding:24px;overflow:auto;box-shadow:-8px 0 30px rgba(0,0,0,.2)}.help details{border-bottom:1px solid var(--border);padding:8px 0}.help summary{font-weight:600}
label.sr{font-weight:400}
.welcome{max-width:760px;margin:0 auto 28px;text-align:center}.welcome h1{margin-bottom:8px}
.twoup{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:20px;max-width:900px;margin:0 auto}.choice{margin:0;display:flex;flex-direction:column}.choice form{margin-top:4px}.pill{display:inline-block;font-size:var(--xs);font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent);background:var(--soft);border-radius:var(--r);padding:4px 10px;margin-bottom:10px;align-self:flex-start}
.center{text-align:center;margin:28px 0 0}.helpbig{font-size:.9rem;padding:14px 22px;border:2px solid var(--accent);color:var(--accent);background:var(--surface)}.helpbtn{border:2px solid var(--accent);color:var(--accent);font-weight:700}
.helpfloat{position:fixed;right:20px;bottom:20px;z-index:40;background:var(--accent);color:#fff;border-color:var(--accent);border-radius:999px;padding:12px 20px;font-weight:700;box-shadow:0 6px 20px rgba(0,0,0,.25)}.helpfloat:hover{background:var(--accent-dark);color:#fff}
@media(max-width:650px){#who{display:none}.top button{padding:8px 10px;min-height:40px;white-space:nowrap}#topActions{display:flex;gap:8px}}
select,textarea{font:inherit;color:inherit;width:100%;min-height:46px;padding:8px 12px;background:var(--input);border:1px solid #bdbdbd;border-radius:var(--r)}label select,label textarea{display:block;margin-top:8px;font-weight:400;font-size:1rem}textarea{min-height:200px;line-height:1.5}
fieldset{border:1px solid var(--border);border-radius:var(--r);padding:12px 16px;margin:0 0 16px}legend{font-weight:600;padding:0 6px;font-size:var(--sm)}label.check{display:flex;align-items:center;gap:10px;font-weight:400;margin:6px 0;font-size:1rem}label.check input{width:20px;height:20px;min-height:0;margin:0}
.card.off{opacity:.6}
.invoice-guide{margin-top:28px;padding:20px;border:1px solid var(--border);border-left:4px solid var(--accent);background:var(--panel)}.invoice-guide h2{margin-bottom:8px}.invoice-guide .twoup{gap:24px}
.draft-banner{background:#fff4e5;border:1px solid #f0c27a;border-left:4px solid #d97706;padding:12px 16px;margin-bottom:20px;border-radius:var(--r);font-size:14px}
.inv-box{border:1px solid var(--border);padding:16px;background:#fff;border-radius:var(--r)}.inv-box h3{margin:0 0 6px}

.scroll{overflow-x:auto}table.grid th,table.grid td{text-align:right;white-space:nowrap}table.grid th:first-child,table.grid td:first-child,table.grid th:nth-child(2),table.grid td:nth-child(2){text-align:left}
details.month{border:1px solid var(--border);border-radius:var(--r);margin-bottom:8px;background:#fff}details.month>summary{padding:12px 14px;cursor:pointer;display:flex;gap:12px;align-items:center;list-style:none;font-weight:600}details.month>summary::-webkit-details-marker{display:none}details.month>summary::before{content:"▸";color:var(--accent);font-size:14px}details[open].month>summary::before{content:"▾"}
details.concert{border-top:1px solid var(--border)}details.concert>summary{padding:10px 14px 10px 28px;cursor:pointer;display:flex;gap:10px;align-items:center;list-style:none;font-size:14px}details.concert>summary::-webkit-details-marker{display:none}
.c-date{min-width:92px;color:var(--muted)}.c-venue{flex:1}.c-num{min-width:110px;text-align:right;font-variant-numeric:tabular-nums}.c-body{padding:4px 14px 14px 28px;background:var(--panel)}.c-body table{background:#fff}
.adj{display:flex;justify-content:space-between;gap:12px;padding:10px 14px 10px 28px;border-top:1px solid var(--border);font-size:14px}.badge.warn{background:#fff4e5;color:#92400e;border-color:#f0c27a}
@media (max-width:640px){.c-date{min-width:70px;font-size:12px}.c-num{min-width:80px}}
table.numbers td:last-child,table.numbers th:last-child{white-space:nowrap}
td.basis{white-space:normal!important;text-align:left!important;line-height:1.5}
table.grid{font-size:.9rem}table.grid th,table.grid td{padding:10px 8px}
.inv-box td:last-child,.inv-box th:last-child{white-space:nowrap;width:1%;padding-left:16px}.inv-box td:first-child{min-width:0}
.paper{max-width:900px}
.inv-stack{display:grid;gap:16px}
