:root{--color-bg: #f7f8fa;--color-card: #ffffff;--color-line: #06c755;--color-text: #1c1d1f;--color-muted: #6b7280;--color-border: #e5e7eb;--color-warn: #f59e0b;--color-error: #dc2626;--radius: 12px;font-family:-apple-system,BlinkMacSystemFont,Hiragino Sans,Hiragino Kaku Gothic ProN,Yu Gothic,Meiryo,sans-serif}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--color-bg);color:var(--color-text);-webkit-font-smoothing:antialiased;font-size:16px;line-height:1.5}.app{max-width:480px;margin:0 auto;padding:16px 16px 80px}.header{display:flex;align-items:center;gap:12px;padding:8px 0 16px}.header-avatar{width:40px;height:40px;border-radius:50%;object-fit:cover;background:#ddd}.header-name{font-weight:600}.header-points{font-size:14px;color:var(--color-muted)}.card{background:var(--color-card);border-radius:var(--radius);padding:16px;box-shadow:0 1px 3px #0000000f;margin-bottom:16px}.banner{background:linear-gradient(135deg,#fff7ed,#fed7aa);border:1px solid #fdba74;color:#9a3412;border-radius:var(--radius);padding:12px 16px;font-weight:600;font-size:14px;margin-bottom:16px}.stamp-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:8px}.stamp-cell{aspect-ratio:1;border:2px dashed var(--color-border);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:12px;color:var(--color-muted)}.stamp-cell.filled{background:var(--color-line);color:#fff;border-style:solid;border-color:var(--color-line);font-size:22px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:12px 20px;border-radius:999px;border:none;font-weight:600;font-size:16px;cursor:pointer;width:100%;text-decoration:none}.btn-primary{background:var(--color-line);color:#fff}.btn-primary:disabled{background:#9ca3af;cursor:not-allowed}.btn-secondary{background:#fff;color:var(--color-text);border:1px solid var(--color-border)}.tab-bar{position:fixed;bottom:0;left:0;right:0;background:#fff;border-top:1px solid var(--color-border);display:flex;z-index:10}.tab-bar a{flex:1;text-align:center;padding:10px 0;text-decoration:none;color:var(--color-muted);font-size:12px}.tab-bar a.active{color:var(--color-line);font-weight:600}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;display:flex;align-items:center;justify-content:center;z-index:50;padding:24px}.modal{background:#fff;border-radius:16px;padding:24px;width:100%;max-width:360px;text-align:center}.modal h2{margin:0 0 8px}.modal-points{font-size:48px;font-weight:700;color:var(--color-line);margin:16px 0}.coupon-card{display:flex;gap:12px;padding:12px;border:1px solid var(--color-border);border-radius:var(--radius);margin-bottom:12px;background:#fff}.coupon-card-img{width:80px;height:80px;border-radius:8px;background:linear-gradient(135deg,#fef3c7,#fde68a);display:flex;align-items:center;justify-content:center;font-size:32px}.coupon-card-body{flex:1}.coupon-title{font-weight:600;margin:0 0 4px}.coupon-meta{font-size:13px;color:var(--color-muted);margin-bottom:8px}.error-text{color:var(--color-error);font-size:14px}.muted{color:var(--color-muted)}.center{text-align:center}.spacer{height:16px}.loading-screen{display:flex;align-items:center;justify-content:center;min-height:100vh;font-size:14px;color:var(--color-muted)}select,input[type=text],input[type=email],input[type=password],textarea,input[type=number],input[type=date],input[type=datetime-local]{width:100%;padding:10px 12px;border:1px solid var(--color-border);border-radius:8px;font-size:16px;font-family:inherit;background:#fff}label{display:block;font-size:14px;margin:12px 0 4px;font-weight:500}
