:root{--primary:#1a2238;--accent:#6366f1;--accent-2:#8b5cf6;--accent-3:#ec4899;--success:#10b981;--error:#ef4444;--warning:#f59e0b;--bg-1:#eef2ff;--bg-2:#fdf4ff;--bg-3:#f0f9ff;--text:#0f172a;--text-muted:#64748b;--border:rgba(15,23,42,0.08);--shadow-sm:0 1px 2px rgba(15,23,42,0.04);--shadow-md:0 8px 24px rgba(15,23,42,0.08);--shadow-lg:0 24px 60px rgba(15,23,42,0.12);--shadow-glow:0 8px 32px rgba(99,102,241,0.35);--radius:16px;--radius-sm:10px}*{box-sizing:border-box}body,html{margin:0;padding:0}body{font-family:Inter,Hiragino Sans,Noto Sans JP,system-ui,-apple-system,sans-serif;color:var(--text);min-height:100vh;padding:24px 16px 48px;background:radial-gradient(1000px 600px at -10% -20%,rgba(139,92,246,.18),transparent 60%),radial-gradient(800px 500px at 110% 10%,rgba(236,72,153,.15),transparent 60%),radial-gradient(900px 700px at 50% 120%,rgba(99,102,241,.18),transparent 60%),linear-gradient(180deg,#f8fafc,#eef2ff);background-attachment:fixed;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@keyframes float-blob{0%,to{transform:translate(0) scale(1)}50%{transform:translate(20px,-30px) scale(1.05)}}@keyframes fade-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes pop-in{0%{transform:scale(.6);opacity:0}60%{transform:scale(1.1);opacity:1}to{transform:scale(1)}}@keyframes spin{to{transform:rotate(1turn)}}.card{max-width:720px;margin:0 auto;background:rgba(255,255,255,.75);backdrop-filter:blur(20px) saturate(140%);-webkit-backdrop-filter:blur(20px) saturate(140%);padding:32px 28px;border-radius:24px;border:1px solid rgba(255,255,255,.6);box-shadow:var(--shadow-lg);animation:fade-up .5s ease}h2{text-align:center;margin:0 0 24px;font-size:26px;font-weight:800;letter-spacing:-.02em;background:linear-gradient(135deg,var(--accent) 0,var(--accent-2) 50%,var(--accent-3) 100%);-webkit-background-clip:text;background-clip:text;color:transparent}h3{margin:0 0 16px;font-size:20px;font-weight:700;color:var(--primary);letter-spacing:-.01em}label{display:block;font-size:13px;font-weight:600;color:var(--text-muted);margin:14px 0 6px;letter-spacing:.02em}input,select{width:100%;padding:13px 14px;margin:0 0 4px;border:1.5px solid var(--border);border-radius:var(--radius-sm);font-size:15px;font-family:inherit;color:var(--text);background:rgba(255,255,255,.85);transition:border-color .18s ease,box-shadow .18s ease,background .18s ease}input:focus,select:focus{outline:none;border-color:var(--accent);background:#fff;box-shadow:0 0 0 4px rgba(99,102,241,.15)}select{-moz-appearance:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8' fill='none'%3E%3Cpath d='M1 1.5L6 6.5L11 1.5' stroke='%2364748b' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 14px center;padding-right:38px}input[type=file]{padding:10px;cursor:pointer}input[type=file]::-webkit-file-upload-button{margin-right:12px;padding:8px 14px;border:none;border-radius:8px;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;font-weight:600;font-size:13px;cursor:pointer;-webkit-transition:transform .15s ease,box-shadow .15s ease;transition:transform .15s ease,box-shadow .15s ease}input[type=file]::file-selector-button{margin-right:12px;padding:8px 14px;border:none;border-radius:8px;background:linear-gradient(135deg,var(--accent),var(--accent-2));color:#fff;font-weight:600;font-size:13px;cursor:pointer;transition:transform .15s ease,box-shadow .15s ease}input[type=file]::-webkit-file-upload-button:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(99,102,241,.35)}input[type=file]::file-selector-button:hover{transform:translateY(-1px);box-shadow:0 4px 12px rgba(99,102,241,.35)}button{width:100%;padding:14px;margin:10px 0 0;border:none;border-radius:var(--radius-sm);font-size:15px;font-weight:700;font-family:inherit;color:#fff;background:linear-gradient(135deg,var(--accent) 0,var(--accent-2) 100%);cursor:pointer;letter-spacing:.02em;box-shadow:0 6px 20px rgba(99,102,241,.3);transition:transform .15s ease,box-shadow .18s ease,filter .18s ease;position:relative;overflow:hidden}button:after{content:"";position:absolute;inset:0;background:linear-gradient(120deg,transparent 30%,rgba(255,255,255,.25) 50%,transparent 70%);transform:translateX(-100%);transition:transform .5s ease}button:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 10px 28px rgba(99,102,241,.4);filter:brightness(1.05)}button:hover:not(:disabled):after{transform:translateX(100%)}button:active:not(:disabled){transform:translateY(0)}button:disabled{opacity:.55;cursor:not-allowed;box-shadow:none}.secondary-button{background:rgba(15,23,42,.06);color:var(--primary);box-shadow:none;border:1.5px solid var(--border)}.secondary-button:hover:not(:disabled){background:rgba(15,23,42,.09);box-shadow:0 4px 12px rgba(15,23,42,.06)}.help-text{font-size:12px;color:var(--text-muted);margin-top:4px;display:block}.brand{text-align:center;margin-bottom:22px}.brand-logo{width:64px;height:64px;margin:0 auto 12px;border-radius:18px;display:flex;align-items:center;justify-content:center;font-size:32px;font-weight:900;color:#fff;background:linear-gradient(135deg,var(--accent) 0,var(--accent-2) 50%,var(--accent-3) 100%);box-shadow:var(--shadow-glow);transform:rotate(-4deg);transition:transform .3s ease}.brand-logo:hover{transform:rotate(0deg) scale(1.05)}.brand h2{margin-bottom:6px}.brand-sub{margin:0;font-size:13px;color:var(--text-muted);font-weight:500}.spinner{width:48px;height:48px;margin:0 auto 16px;border-radius:50%;background:conic-gradient(from 0deg,transparent 0deg,var(--accent) 90deg,var(--accent-2) 180deg,var(--accent-3) 270deg,transparent 1turn);-webkit-mask:radial-gradient(circle,transparent 16px,black 17px);mask:radial-gradient(circle,transparent 16px,black 17px);animation:spin 1s linear infinite}.loading{text-align:center;padding:28px 0 16px;animation:fade-up .4s ease}.loading h3{font-size:22px;background:linear-gradient(135deg,var(--accent),var(--accent-2));-webkit-background-clip:text;background-clip:text;color:transparent}.progress-container{width:100%;background:rgba(15,23,42,.06);border-radius:999px;height:8px;margin:18px 0 12px;overflow:hidden;position:relative}.progress-bar{height:100%;background:linear-gradient(90deg,var(--accent),var(--accent-2),var(--accent-3));background-size:200% 100%;border-radius:999px;transition:width .4s ease;animation:shimmer 2s linear infinite;box-shadow:0 0 12px rgba(99,102,241,.5)}.loading p{color:var(--text-muted);font-size:14px;font-weight:500;margin:0}.wait-msg{margin-top:14px;padding:10px 14px;font-size:13px;color:var(--warning);font-weight:600;background:rgba(245,158,11,.1);border:1px solid rgba(245,158,11,.25);border-radius:10px;display:inline-block}.done-screen{text-align:center;padding:40px 0 20px;animation:fade-up .4s ease}.check-icon{width:88px;height:88px;margin:0 auto 18px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:44px;font-weight:900;color:#fff;background:linear-gradient(135deg,var(--success),#34d399);box-shadow:0 12px 32px rgba(16,185,129,.4);animation:pop-in .5s cubic-bezier(.34,1.56,.64,1)}.done-screen h2{background:linear-gradient(135deg,var(--success),#34d399)!important;-webkit-background-clip:text;background-clip:text}.done-screen p{color:var(--text-muted);font-size:14px}.receipt-card{background:rgba(255,255,255,.9);border:1px solid var(--border);border-radius:var(--radius);padding:18px;margin-bottom:16px;box-shadow:var(--shadow-md);animation:fade-up .4s ease both;transition:transform .18s ease,box-shadow .18s ease}.receipt-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.receipt-header{display:inline-block;font-weight:700;font-size:12px;letter-spacing:.08em;text-transform:uppercase;margin-bottom:14px;padding:4px 10px;border-radius:999px;color:#fff;background:linear-gradient(135deg,var(--accent),var(--accent-2));box-shadow:0 4px 10px rgba(99,102,241,.3)}.receipt-preview{margin-bottom:14px;text-align:center;background:linear-gradient(135deg,var(--bg-1),var(--bg-2));border-radius:var(--radius-sm);padding:10px;border:1px solid var(--border)}.receipt-preview img{max-width:100%;max-height:320px;border-radius:8px;cursor:zoom-in;display:inline-block;box-shadow:var(--shadow-sm);transition:transform .2s ease}.receipt-preview img:hover{transform:scale(1.01)}.receipt-row{margin-bottom:12px}.receipt-row label{margin:0 0 5px;font-size:12px;color:var(--text-muted);font-weight:600}.card-input{width:100%;padding:11px 12px;border:1.5px solid var(--border);border-radius:var(--radius-sm);font-size:15px;background:#fff;font-family:inherit;color:var(--text);transition:border-color .18s,box-shadow .18s}.card-input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 4px rgba(99,102,241,.15)}.accent-border{border-color:var(--accent);background:linear-gradient(135deg,rgba(99,102,241,.04),rgba(139,92,246,.04));font-weight:700}.divider{margin-top:28px;padding-top:22px;border-top:1px dashed var(--border);text-align:center}.divider p{font-size:12px;color:var(--text-muted);margin:0 0 10px}.history-card{background:rgba(255,255,255,.9);border:1px solid var(--border);border-radius:var(--radius);padding:16px;margin-bottom:14px;box-shadow:var(--shadow-md);animation:fade-up .35s ease both;transition:transform .18s ease,box-shadow .18s ease}.history-card:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.history-row{display:flex;font-size:14px;padding:6px 0;border-bottom:1px solid rgba(15,23,42,.04)}.history-row:last-of-type{border-bottom:none}.history-label{width:72px;color:var(--text-muted);font-size:12px;font-weight:600;letter-spacing:.04em;flex-shrink:0}.history-actions{display:flex;gap:8px;margin-top:12px;align-items:center}.history-actions .link-btn{flex:1 1;text-align:center;padding:10px;background:linear-gradient(135deg,var(--bg-1),var(--bg-3));border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--primary);text-decoration:none;font-size:13px;font-weight:600;transition:transform .15s,box-shadow .15s}.history-actions .link-btn:hover{transform:translateY(-1px);box-shadow:var(--shadow-md)}.history-actions .delete-btn{flex:0 0 auto;width:auto;margin:0;padding:10px 18px;background:linear-gradient(135deg,var(--error),#f87171);color:#fff;border:none;border-radius:var(--radius-sm);font-size:13px;font-weight:700;cursor:pointer;box-shadow:0 4px 12px rgba(239,68,68,.3);transition:transform .15s,box-shadow .15s}.history-actions .delete-btn:hover:not(:disabled){transform:translateY(-1px);box-shadow:0 6px 18px rgba(239,68,68,.4)}.history-actions .delete-btn:disabled{background:#cbd5e1;box-shadow:none;cursor:not-allowed}@media (max-width:480px){body{padding:16px 12px 32px}.card{padding:24px 18px;border-radius:20px}h2{font-size:22px}}