*,:before,:after{box-sizing:border-box}body{-webkit-font-smoothing:antialiased;background:#f8fafc;margin:0;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Hiragino Sans,Noto Sans JP,sans-serif}#root{min-height:100dvh}*{box-sizing:border-box;margin:0;padding:0}:root{--primary:#2563eb;--primary-dark:#1d4ed8;--danger:#dc2626;--amazon:#f90;--amazon-dark:#e68a00;--bg:#f8fafc;--surface:#fff;--border:#e2e8f0;--text:#1e293b;--text-muted:#64748b;--success-bg:#dcfce7;--success-text:#166534;--error-bg:#fee2e2;--error-text:#991b1b;--info-bg:#dbeafe;--info-text:#1e40af}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.6}.app{max-width:640px;min-height:100dvh;margin:0 auto}.app-header{background:var(--primary);color:#fff;z-index:10;padding:16px 20px;position:sticky;top:0;box-shadow:0 2px 8px #00000026}.app-header h1{font-size:1.4rem;font-weight:700}.app-subtitle{opacity:.85;margin-top:2px;font-size:.85rem}.app-main{flex-direction:column;gap:16px;padding:16px;display:flex}.toast{border-radius:8px;padding:12px 16px;font-size:.9rem;font-weight:500;animation:.2s fadeIn}.toast-success{background:var(--success-bg);color:var(--success-text)}.toast-error{background:var(--error-bg);color:var(--error-text)}.toast-info{background:var(--info-bg);color:var(--info-text)}@keyframes fadeIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.scan-section{background:var(--surface);border:1px solid var(--border);text-align:center;border-radius:12px;padding:20px}.loading-text{color:var(--text-muted);margin-top:8px;font-size:.9rem}.scanner-active{flex-direction:column;align-items:center;gap:12px;display:flex}.scanner-video{aspect-ratio:4/3;object-fit:cover;background:#000;border-radius:8px;width:100%;max-width:400px}.scanner-hint{color:var(--text-muted);font-size:.9rem}.error-text{color:var(--danger);margin-top:8px;font-size:.85rem}.btn{cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:10px 20px;font-size:.95rem;font-weight:600;transition:background .15s,opacity .15s;display:inline-flex}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:var(--primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--primary-dark)}.btn-secondary{color:var(--text);background:#e2e8f0}.btn-secondary:hover{background:#cbd5e1}.btn-scan{width:100%;max-width:300px;padding:14px 20px;font-size:1rem}.btn-amazon{background:var(--amazon);color:#000;padding:8px 14px;font-size:.85rem;text-decoration:none}.btn-amazon:hover{background:var(--amazon-dark)}.btn-danger{color:var(--danger);border:1px solid var(--danger);background:0 0;padding:7px 14px;font-size:.85rem}.btn-danger:hover{background:var(--error-bg)}.list-section h2{color:var(--text-muted);margin-bottom:12px;font-size:1rem;font-weight:600}.count{font-weight:400}.empty-message{text-align:center;color:var(--text-muted);background:var(--surface);border:1px dashed var(--border);border-radius:12px;padding:40px 20px;font-size:.9rem}.book-list{flex-direction:column;gap:12px;display:flex}.book-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;align-items:flex-start;gap:14px;padding:14px;display:flex}.book-cover{flex-shrink:0;width:70px}.book-cover img{border-radius:4px;width:70px;height:auto;display:block;box-shadow:0 2px 6px #00000026}.book-cover-placeholder{background:#f1f5f9;border-radius:4px;justify-content:center;align-items:center;width:70px;height:96px;font-size:2rem;display:flex}.book-info{flex:1;min-width:0}.book-title{margin-bottom:4px;font-size:.95rem;font-weight:700;line-height:1.4}.book-author,.book-publisher{color:var(--text-muted);white-space:nowrap;text-overflow:ellipsis;margin-bottom:2px;font-size:.82rem;overflow:hidden}.book-isbn{color:#94a3b8;margin-bottom:10px;font-family:monospace;font-size:.78rem}.book-actions{flex-wrap:wrap;gap:8px;display:flex}.tab-nav{background:var(--surface);border-bottom:1px solid var(--border);z-index:9;display:flex;position:sticky;top:64px}.tab-btn{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-bottom:3px solid #0000;flex:1;padding:12px 8px;font-size:.9rem;font-weight:600;transition:color .15s,border-color .15s}.tab-btn:hover{color:var(--primary)}.tab-active{color:var(--primary);border-bottom-color:var(--primary)}.receipt-desc{color:var(--text-muted);text-align:center;margin-bottom:16px;font-size:.88rem}.receipt-scanner{flex-direction:column;align-items:center;gap:16px;display:flex}.receipt-actions{flex-direction:column;gap:10px;width:100%;max-width:320px;display:flex}.receipt-preview-wrap{text-align:center;width:100%}.receipt-preview{object-fit:contain;border-radius:8px;max-width:100%;max-height:360px;box-shadow:0 2px 10px #00000026}.receipt-loading{color:var(--text-muted);flex-direction:column;align-items:center;gap:10px;font-size:.9rem;display:flex}.spinner{border:3px solid var(--border);border-top-color:var(--primary);border-radius:50%;width:32px;height:32px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.receipt-result{background:var(--surface);border:1px solid var(--border);border-radius:12px;width:100%;overflow:hidden}.receipt-result-header{border-bottom:1px solid var(--border);background:#f8fafc;justify-content:space-between;align-items:center;padding:10px 14px;display:flex}.receipt-result-label{color:var(--text-muted);font-size:.85rem;font-weight:600}.receipt-text{white-space:pre-wrap;word-break:break-all;color:var(--text);padding:14px;font-family:Hiragino Sans,Noto Sans JP,sans-serif;font-size:.88rem;line-height:1.8}.btn-sm{padding:6px 12px;font-size:.8rem}.btn-reset{width:100%;max-width:320px;margin-top:4px}.receipt-error{background:var(--error-bg);border:1px solid #fca5a5;border-radius:10px;width:100%;padding:14px 16px}.receipt-error-title{color:var(--error-text);margin-bottom:6px;font-size:.92rem;font-weight:700}.receipt-error-detail{color:var(--error-text);font-size:.83rem;line-height:1.6}.dog-comparison{flex-wrap:wrap;justify-content:center;gap:12px;width:100%;display:flex}.dog-img-wrap{text-align:center;flex:1;min-width:140px;max-width:260px}.dog-label{color:var(--text-muted);margin-bottom:6px;font-size:.82rem;font-weight:600}.dog-img{border-radius:10px;width:100%;display:block;box-shadow:0 2px 10px #00000026}
