:root{--bg: #f6f7f9;--panel: #ffffff;--border: #e2e5e9;--text: #1f2430;--muted: #6b7280;--primary: #2563eb;--primary-ink: #ffffff;--danger: #dc2626;font-family:system-ui,-apple-system,Hiragino Sans,Noto Sans JP,sans-serif}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text)}.app{max-width:none;margin:0 auto;padding:0 24px 48px}.topbar{display:flex;align-items:center;gap:16px;padding:16px 0;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--bg);z-index:5}.topbar h1{margin:0;font-size:20px}.topbar nav{display:flex;gap:8px;flex:1}.topbar nav button.active{background:var(--primary);color:var(--primary-ink);border-color:var(--primary)}button{border:1px solid var(--border);background:var(--panel);color:var(--text);border-radius:8px;padding:6px 12px;cursor:pointer;font-size:14px}button:hover:not(:disabled){border-color:var(--primary)}button:disabled{opacity:.5;cursor:not-allowed}button.primary{background:var(--primary);color:var(--primary-ink);border-color:var(--primary)}button.ghost{background:transparent}button.link{border:none;background:none;color:var(--primary);padding:0;text-decoration:underline}button.toggle{min-width:48px}button.toggle.active{background:var(--primary);color:var(--primary-ink);border-color:var(--primary)}.ratio-presets{display:flex;gap:4px;align-items:center;flex-wrap:nowrap}input,select{border:1px solid var(--border);border-radius:6px;padding:5px 8px;font-size:14px;background:var(--panel);color:var(--text)}input.num{width:88px;text-align:right}.filters{display:flex;gap:8px;flex-wrap:wrap;align-items:center;margin:16px 0}.error{color:var(--danger)}.table-scroll{overflow-x:auto}table.receipts{width:100%;min-width:1560px;border-collapse:collapse;font-size:13px;background:var(--panel);border:1px solid var(--border);border-radius:8px;overflow:hidden}table.receipts input,table.receipts select{transition:border-color .12s ease}table.receipts input:hover:not(:disabled),table.receipts select:hover:not(:disabled){border-color:var(--primary)}table.receipts input::placeholder{color:var(--muted)}table.receipts input:focus-visible,table.receipts select:focus-visible{outline:2px solid var(--primary);outline-offset:1px;border-color:var(--primary)}table.receipts th,table.receipts td{padding:6px 8px;border-bottom:1px solid var(--border);text-align:left;vertical-align:middle}table.receipts th{background:#fafbfc;font-weight:600;color:var(--muted);white-space:nowrap}table.receipts button,td.actions{white-space:nowrap}td.empty,.empty{text-align:center;color:var(--muted);padding:24px}img.thumb{display:block;width:44px;height:44px;object-fit:cover;border-radius:4px;border:1px solid var(--border);cursor:zoom-in}.thumb-loading{display:block;width:44px;height:44px;border-radius:4px;background:#f1f5f9}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;display:flex;align-items:center;justify-content:center;background:#0f172abf;cursor:zoom-out;padding:24px}.lightbox img{max-width:100%;max-height:100%;border-radius:8px;box-shadow:0 8px 32px #0006}.badge{display:inline-block;padding:2px 8px;border-radius:999px;background:#eef2ff;color:var(--primary);font-size:12px;white-space:nowrap}.badge.muted{background:#f1f5f9;color:var(--muted);margin-left:4px}.muted{color:var(--muted)}tr.status-confirmed{background:#f5fbf6}tr.status-failed{background:#fdf3f3}.summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:16px}.panel{background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:16px}.panel h2{display:flex;justify-content:space-between;align-items:baseline;margin:0 0 4px;font-size:16px}.panel .total{font-size:22px;font-weight:700}.panel .count{color:var(--muted);margin:0 0 12px}.panel table{width:100%;border-collapse:collapse;font-size:13px}.panel td,.panel th{padding:5px 4px;border-bottom:1px solid var(--border)}.num{text-align:right}.panel.totals{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px;margin-bottom:16px}.panel.totals .total-main{display:flex;flex-direction:column}.panel.totals .total-main .label{color:var(--muted);font-size:13px}.panel.totals .total-sub{display:flex;gap:20px;flex-wrap:wrap;color:var(--muted);font-size:14px}.gate{display:grid;place-items:center;min-height:100vh}.gate form,.login-card{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:32px;width:320px;display:flex;flex-direction:column;align-items:center;gap:16px}.login-card h1{margin:0}.login-card .login-icon{width:64px;height:64px}.login-card .tagline{color:var(--muted);font-size:13px;line-height:1.7;text-align:center;margin:0}.login-card .hint{color:var(--muted);font-size:13px;margin:0}.apple-btn{width:100%;height:40px;display:flex;align-items:center;justify-content:center;gap:10px;background:#000;color:#fff;border:none;border-radius:4px;font-size:14px}.apple-btn svg{width:14px;height:17px}.apple-btn:hover:not(:disabled){background:#111}.topbar .user{color:var(--muted);font-size:13px}.celebration-stamp{align-self:center;border:3px double #dc2626;color:#dc2626;border-radius:50%;width:64px;height:64px;display:grid;place-items:center;font-weight:800;font-size:16px;transform:rotate(-12deg);opacity:.85}.celebration{position:fixed;top:0;right:0;bottom:0;left:0;z-index:100;overflow:hidden;display:grid;place-items:center;background:#0f121c8c;animation:celebration-fade .3s ease;cursor:pointer}@keyframes celebration-fade{0%{opacity:0}to{opacity:1}}.confetti{position:absolute;top:-20px;border-radius:2px;animation-name:confetti-fall;animation-timing-function:ease-in;animation-iteration-count:infinite;will-change:transform}.confetti.round{border-radius:50%}@keyframes confetti-fall{0%{transform:translate3d(0,-10vh,0) rotate(0) rotateY(0)}to{transform:translate3d(var(--sway, 0px),110vh,0) rotate(660deg) rotateY(540deg)}}.celebration-rays{position:absolute;width:140vmax;height:140vmax;background:conic-gradient(from 0deg,rgb(250 204 21 / .16) 0deg 12deg,transparent 12deg 30deg,rgb(250 204 21 / .16) 30deg 42deg,transparent 42deg 60deg,rgb(250 204 21 / .16) 60deg 72deg,transparent 72deg 90deg,rgb(250 204 21 / .16) 90deg 102deg,transparent 102deg 120deg,rgb(250 204 21 / .16) 120deg 132deg,transparent 132deg 150deg,rgb(250 204 21 / .16) 150deg 162deg,transparent 162deg 180deg,rgb(250 204 21 / .16) 180deg 192deg,transparent 192deg 210deg,rgb(250 204 21 / .16) 210deg 222deg,transparent 222deg 240deg,rgb(250 204 21 / .16) 240deg 252deg,transparent 252deg 270deg,rgb(250 204 21 / .16) 270deg 282deg,transparent 282deg 300deg,rgb(250 204 21 / .16) 300deg 312deg,transparent 312deg 330deg,rgb(250 204 21 / .16) 330deg 342deg,transparent 342deg 360deg);border-radius:50%;animation:rays-spin 14s linear infinite}@keyframes rays-spin{to{transform:rotate(360deg)}}.celebration-card{position:relative;background:var(--panel);border-radius:16px;padding:36px 48px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:8px;box-shadow:0 24px 64px #00000059;animation:celebration-pop .55s cubic-bezier(.22,1.4,.36,1)}@keyframes celebration-pop{0%{transform:scale(.4) translateY(30px);opacity:0}70%{transform:scale(1.06) translateY(0);opacity:1}to{transform:scale(1)}}.celebration-emoji{font-size:56px;animation:emoji-bounce 1.1s ease infinite}@keyframes emoji-bounce{0%,to{transform:translateY(0) scale(1)}40%{transform:translateY(-14px) scale(1.15)}}.celebration-card h2{margin:0;font-size:28px}.celebration-card p{margin:0;font-size:16px}.celebration-stamp{width:88px;height:88px;font-size:24px;border-width:4px;margin-top:8px;animation:stamp-slam .5s .35s cubic-bezier(.3,1.2,.4,1) both}@keyframes stamp-slam{0%{transform:scale(3.2) rotate(-30deg);opacity:0}60%{transform:scale(.92) rotate(-10deg);opacity:1}to{transform:scale(1) rotate(-12deg);opacity:.9}}.celebration-hint{color:var(--muted);font-size:13px}@media (prefers-reduced-motion: reduce){.confetti,.celebration-rays,.celebration-emoji{animation:none}table.receipts input,table.receipts select{transition:none}}.app-footer{margin-top:24px;padding:16px 0;border-top:1px solid var(--border);display:flex;gap:10px;justify-content:center;flex-wrap:wrap;color:var(--muted);font-size:13px}.gate-legal{margin-top:20px;display:flex;gap:10px;justify-content:center;flex-wrap:wrap;font-size:13px}.app-footer a,.gate-legal a{color:var(--muted);text-decoration:none}.app-footer a:hover,.gate-legal a:hover{color:var(--primary);text-decoration:underline}.landing{--lp-paper: #f7f3e9;--lp-ink: #26231c;--lp-green: #2f6b54;--lp-green-deep: #1f4a3a;--lp-vermilion: #c8442e;--lp-rule: #ddd5c3;background:var(--lp-paper);color:var(--lp-ink);min-height:100vh}.landing main{display:block;padding:0}.landing button{font:inherit}.landing button:focus-visible,.landing summary:focus-visible{outline:2px solid var(--lp-green-deep);outline-offset:2px}.lp-cta{background:var(--lp-green-deep);color:#fff;border:1px solid var(--lp-green-deep);border-radius:8px;padding:12px 24px;font-size:16px;font-weight:700;cursor:pointer}.lp-cta:hover{background:var(--lp-green);border-color:var(--lp-green)}.lp-appstore{display:flex;flex-direction:column;align-items:flex-start;gap:2px;background:transparent;border:1px dashed var(--lp-rule);border-radius:8px;padding:8px 18px;color:var(--lp-ink);opacity:.7;cursor:not-allowed}.lp-appstore-eyebrow{font-size:11px;letter-spacing:.04em;color:var(--lp-green)}.lp-appstore-main{font-size:14px;font-weight:600}.lp-topbar{display:flex;align-items:center;justify-content:space-between;max-width:1080px;margin:0 auto;padding:20px 24px}.lp-brand,.lp-footer{display:flex;align-items:center;gap:10px}.lp-mark{width:32px;height:32px;flex:none}.lp-brand-name{font-size:18px;font-weight:800;letter-spacing:-.01em}.lp-login-link{background:transparent;border:1px solid var(--lp-rule);border-radius:8px;padding:8px 18px;color:var(--lp-ink);font-weight:600;cursor:pointer}.lp-login-link:hover{border-color:var(--lp-green);color:var(--lp-green-deep)}.lp-hero{max-width:1080px;margin:0 auto;padding:40px 24px 72px;display:grid;gap:40px;align-items:center}.lp-eyebrow{margin:0 0 12px;font-size:13px;font-weight:700;letter-spacing:.08em;color:var(--lp-green);text-transform:uppercase}.lp-hero-title{margin:0 0 20px;font-size:clamp(38px,6vw,60px);line-height:1.1;font-weight:800;letter-spacing:-.02em}.lp-hero-sub{margin:0 0 28px;font-size:17px;line-height:1.75;max-width:34em;color:color-mix(in srgb,var(--lp-ink) 82%,var(--lp-paper))}.lp-hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:16px}.lp-transform{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:12px}.lp-receipt{background:#fff;border-radius:4px;padding:20px 18px 22px;font-variant-numeric:tabular-nums;font-size:14px;color:var(--lp-ink);box-shadow:0 10px 30px #26231c1f;clip-path:polygon(0 4px,4% 0,8% 4px,12% 0,16% 4px,20% 0,24% 4px,28% 0,32% 4px,36% 0,40% 4px,44% 0,48% 4px,52% 0,56% 4px,60% 0,64% 4px,68% 0,72% 4px,76% 0,80% 4px,84% 0,88% 4px,92% 0,96% 4px,100% 0,100% calc(100% - 4px),96% 100%,92% calc(100% - 4px),88% 100%,84% calc(100% - 4px),80% 100%,76% calc(100% - 4px),72% 100%,68% calc(100% - 4px),64% 100%,60% calc(100% - 4px),56% 100%,52% calc(100% - 4px),48% 100%,44% calc(100% - 4px),40% 100%,36% calc(100% - 4px),32% 100%,28% calc(100% - 4px),24% 100%,20% calc(100% - 4px),16% 100%,12% calc(100% - 4px),8% 100%,4% calc(100% - 4px),0 100%)}.lp-receipt-head{font-weight:700;text-align:center;padding-bottom:10px;margin-bottom:10px;border-bottom:1px dashed var(--lp-rule)}.lp-receipt-line,.lp-receipt-total{display:flex;justify-content:space-between;padding:3px 0}.lp-receipt-total{margin-top:8px;padding-top:8px;border-top:1px solid var(--lp-ink);font-weight:700}.lp-receipt-date{margin-top:10px;text-align:center;font-size:12px;color:var(--lp-green)}.lp-arrow{font-size:28px;color:var(--lp-green);text-align:center}.lp-extract{position:relative;background:var(--lp-green-deep);color:#fff;border-radius:12px;padding:20px 18px;display:flex;flex-direction:column;gap:12px}.lp-field{display:flex;flex-direction:column;gap:2px;padding-bottom:10px;border-bottom:1px solid rgb(255 255 255 / .14)}.lp-field-key{font-size:11px;letter-spacing:.06em;color:#ffffffa6}.lp-field-val{font-size:15px;font-weight:600}.lp-num{font-variant-numeric:tabular-nums}.lp-stamp{position:absolute;right:14px;bottom:14px;width:62px;height:62px;display:grid;place-items:center;border:3px double var(--lp-vermilion);border-radius:50%;color:var(--lp-vermilion);font-weight:800;font-size:15px;transform:rotate(-12deg);opacity:.92}.lp-section{max-width:1080px;margin:0 auto;padding:64px 24px}.lp-section-title{margin:0 0 12px;font-size:clamp(26px,3.4vw,32px);font-weight:700;letter-spacing:-.01em}.lp-section-lead{margin:0 0 32px;font-size:16px;line-height:1.7;max-width:40em;color:color-mix(in srgb,var(--lp-ink) 78%,var(--lp-paper))}.lp-feature-grid{margin-top:32px;display:grid;gap:20px;grid-template-columns:1fr}.lp-feature{background:#fff;border:1px solid var(--lp-rule);border-radius:12px;padding:24px}.lp-feature-title{margin:0 0 8px;font-size:18px;font-weight:700}.lp-feature-body{margin:0;font-size:15px;line-height:1.7;color:color-mix(in srgb,var(--lp-ink) 80%,var(--lp-paper))}.lp-steps{list-style:none;margin:32px 0 0;padding:0;display:grid;gap:20px}.lp-step{display:flex;gap:16px;align-items:flex-start}.lp-step-num{flex:none;width:36px;height:36px;display:grid;place-items:center;border-radius:50%;background:var(--lp-green-deep);color:#fff;font-weight:700;font-variant-numeric:tabular-nums}.lp-step-label{margin:4px 0;font-size:17px;font-weight:700}.lp-step-body{margin:0;font-size:15px;line-height:1.7;color:color-mix(in srgb,var(--lp-ink) 80%,var(--lp-paper))}.lp-mock-frame{border:1px solid var(--lp-rule);border-radius:12px;overflow:hidden;background:var(--bg);box-shadow:0 12px 40px #26231c1a}.lp-mock-bar{display:flex;gap:6px;padding:12px 16px;background:#fff;border-bottom:1px solid var(--lp-rule)}.lp-mock-dot{width:10px;height:10px;border-radius:50%;background:var(--lp-rule)}.lp-mock-body{padding:20px;overflow-x:auto}.lp-mock-table{width:100%;min-width:420px;border-collapse:collapse;font-size:14px;background:#fff}.lp-mock-table th,.lp-mock-table td{padding:10px 12px;border-bottom:1px solid var(--lp-rule);text-align:left}.lp-mock-table th{font-size:12px;color:var(--lp-green);font-weight:700}.lp-mock-table .lp-num{text-align:right}.lp-pill{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;font-weight:600}.lp-pill-ok{background:color-mix(in srgb,var(--lp-green) 16%,#fff);color:var(--lp-green-deep)}.lp-pill-wait{background:color-mix(in srgb,var(--lp-vermilion) 12%,#fff);color:var(--lp-vermilion)}.lp-mock-total{display:flex;justify-content:space-between;align-items:baseline;margin-top:8px;padding:14px 12px 4px;font-weight:700;font-size:18px;font-variant-numeric:tabular-nums}.lp-price-card{background:#fff;border:1px solid var(--lp-rule);border-radius:16px;padding:40px;display:flex;flex-direction:column;align-items:flex-start;gap:16px;max-width:480px}.lp-price{font-size:48px;font-weight:800;letter-spacing:-.02em}.lp-price-body{margin:0;font-size:16px;line-height:1.7;color:color-mix(in srgb,var(--lp-ink) 80%,var(--lp-paper))}.lp-faq-list{margin-top:24px;border-top:1px solid var(--lp-rule)}.lp-faq-item{border-bottom:1px solid var(--lp-rule)}.lp-faq-q{cursor:pointer;padding:18px 0;font-size:16px;font-weight:600;list-style:none}.lp-faq-q::-webkit-details-marker{display:none}.lp-faq-q:before{content:"＋";color:var(--lp-green);margin-right:12px;font-weight:700}.lp-faq-item[open] .lp-faq-q:before{content:"−"}.lp-faq-a{margin:0;padding:0 0 18px 28px;font-size:15px;line-height:1.7;color:color-mix(in srgb,var(--lp-ink) 80%,var(--lp-paper))}.lp-final{text-align:center}.lp-final-title{margin:0 0 28px;font-size:clamp(26px,3.6vw,34px);font-weight:800;letter-spacing:-.01em}.lp-final-actions{justify-content:center}.lp-footer{max-width:1080px;margin:0 auto;padding:32px 24px 48px;border-top:1px solid var(--lp-rule);flex-wrap:wrap}.lp-footer-name{font-weight:800}.lp-footer-note{color:color-mix(in srgb,var(--lp-ink) 65%,var(--lp-paper));font-size:14px}@media (min-width: 860px){.lp-hero{grid-template-columns:1.05fr .95fr;padding-top:56px;padding-bottom:96px}.lp-feature-grid{grid-template-columns:repeat(2,1fr)}}@media (prefers-reduced-motion: no-preference){.lp-field,.lp-stamp{opacity:0}.lp-field{animation:lp-field-rise .5s ease forwards}.lp-field-1{animation-delay:.15s}.lp-field-2{animation-delay:.35s}.lp-field-3{animation-delay:.55s}.lp-stamp{animation:lp-stamp-slam .4s .85s cubic-bezier(.3,1.2,.4,1) forwards}@keyframes lp-field-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes lp-stamp-slam{0%{opacity:0;transform:scale(2.6) rotate(-30deg)}60%{opacity:.92;transform:scale(.9) rotate(-10deg)}to{opacity:.92;transform:scale(1) rotate(-12deg)}}}
