:root{color:#1f2933;background:#f7f8fa;font-family:Arial,Helvetica,sans-serif}*{box-sizing:border-box}body{margin:0}a{color:inherit}button,input{font:inherit}img{max-width:100%}.page-shell{max-width:1040px;margin:0 auto;padding:32px 20px}.page-header{justify-content:space-between;align-items:center;gap:16px;margin-bottom:24px;display:flex}.page-back-link{margin:0 0 8px;font-size:.95rem}.page-back-link a{color:#1f6feb;text-decoration:none}.page-back-link a:hover{text-decoration:underline}.actions{align-items:center;gap:12px;display:flex}.form-actions{justify-content:space-between;align-items:center;gap:12px;display:flex}.form-actions-primary{justify-content:flex-end;align-items:center;gap:12px;display:flex}.button{color:#1f2933;cursor:pointer;background:#fff;border:1px solid #c6ccd2;border-radius:6px;justify-content:center;align-items:center;min-height:40px;padding:0 14px;text-decoration:none;display:inline-flex}.button-primary{color:#fff;background:#1f6feb;border-color:#1f6feb}.button-template{color:#fff;background:#f59e0b;border-color:#d97706}.button-icon{width:40px;padding:0}.button-download{color:#fff;background:#f59e0b;border-color:#d97706;width:30px;min-height:30px}.data-table-scroll{background:#fff;border:1px solid #d9dee3;max-height:482px;overflow:auto}.data-table{border-collapse:collapse;background:#fff;width:100%}.data-table th,.data-table td{text-align:left;border-bottom:1px solid #e5e8eb;padding:14px 16px}.data-table th{z-index:1;background:#eef2f6;font-weight:700;position:sticky;top:0}.data-table tr:last-child td{border-bottom:0}.number-cell{text-align:right}.reward-list-table{font-size:.82rem}.reward-list-table th,.reward-list-table td{white-space:nowrap;padding:7px 10px}.reward-list-table .button-download{width:22px;min-height:22px;font-size:.82rem}.form-panel{background:#fff;border:1px solid #d9dee3;border-radius:6px;gap:18px;max-width:560px;padding:24px;display:grid}.modal-dialog{color:#1f2933;background:#fff;border:1px solid #d9dee3;border-radius:8px;width:min(640px,100vw - 32px);padding:0}.modal-dialog::backdrop{background:#0f172a8c}.modal-dialog .form-panel{border:0;border-top:1px solid #e5e8eb;border-radius:0;max-width:none}.modal-header{padding:20px 24px}.modal-header h2{margin:0 0 6px}.field{gap:8px;display:grid}.field label{font-weight:700}.field input{background:#fff;border:1px solid #b8c0c8;border-radius:6px;width:100%;min-height:42px;padding:8px 10px}.field input::placeholder{color:#9aa5b1}.status-text{color:#52616f;margin:0}.reward-lists-intro{max-width:760px;font-size:.9rem;line-height:1.45}.admin-login-page{justify-content:center;padding-top:72px;display:flex}.admin-login-panel{width:min(420px,100%)}.admin-login-form{gap:18px;display:grid}.admin-error-text{min-height:1.5rem}.admin-home-header{align-items:flex-start}.admin-home-brand{align-items:center;gap:14px;display:flex}.admin-home-brand h1{margin:0 0 6px}.admin-home-logo{width:auto;height:4.5rem;display:block}.admin-option-grid{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;display:grid}.admin-option-card{background:#fff;border:1px solid #d9dee3;border-radius:8px;padding:24px;text-decoration:none;display:block}.admin-option-card-content{align-items:center;gap:14px;display:flex}.admin-option-icon{object-fit:contain;flex:0 0 44px;width:44px;height:44px}.admin-option-card h2{margin:0;font-size:1.1rem}.single-use-campaign-table-scroll{max-height:none}.single-use-campaign-table td,.single-use-campaign-table th{white-space:nowrap;padding:7px 10px;font-size:.82rem}.campaign-name-cell{align-items:center;gap:8px;display:flex}.campaign-kind-icon{object-fit:contain;flex:0 0 22px;width:22px;height:22px}.campaign-status-badge{color:#fff;border-radius:0;justify-content:center;align-items:center;min-width:74px;min-height:24px;padding:0 10px;font-size:.8rem;font-weight:700;display:inline-flex}.campaign-status-active{background:#24c043}.campaign-status-ended{background:#ff9b03}.pagination-bar{justify-content:flex-end;align-items:center;gap:12px;margin-top:16px;display:flex}.coupon-page{background:#f3f4f6;min-height:100vh;padding:32px 20px}.coupon-page-inner{max-width:860px;margin:0 auto}.coupon-status{color:#52616f;margin:0}.coupon-message-card,.coupon-details,.coupon-card{background:#fff;border:1px solid #d9dee3;border-radius:8px}.coupon-message-card{max-width:560px;margin:40px auto 0;padding:24px}.coupon-message-card h1{margin:0 0 10px}.coupon-message-card p{color:#52616f;margin:0}.coupon-shell{gap:20px;display:grid}.coupon-card{gap:20px;padding:20px;display:grid}.coupon-image-wrap{background:#f8fafc;border-radius:6px;overflow:hidden}.coupon-image-marquee{border:4px dashed #dc2626;box-shadow:inset 0 0 0 2px #fff}.coupon-image{width:100%;height:auto;display:block}.coupon-code-panel{justify-items:center;gap:10px;padding-top:8px;display:grid}.coupon-barcode{width:min(100%,360px);height:auto;display:block}.coupon-code-label{color:#52616f;margin:0;font-size:.9rem}.coupon-code-value{letter-spacing:0;margin:0;font-size:1.6rem;font-weight:700}.coupon-send-button{min-width:180px}.coupon-send-button:disabled{opacity:.6;cursor:default}.coupon-details{padding:24px}.coupon-details h2{margin:0 0 12px;font-size:1.1rem}.coupon-details p{color:#334155;white-space:pre-line;margin:0;line-height:1.6}@media (min-width:720px){.coupon-card{grid-template-columns:minmax(0,1fr) 260px;align-items:start}}.oreward-page{color:#444;text-align:center;background:#fff;width:100%;margin-top:10px;padding:0 12px 24px;font-family:Arial,Helvetica,sans-serif;overflow-x:hidden}.oreward-content{width:100%;max-width:600px;margin:0 auto}.oreward-logo{width:50%;margin-bottom:10px}.oreward-header-image,.oreward-footer-image{width:100%;height:auto;display:block}.oreward-coupon{color:#888;text-align:left;background-image:url("data:image/svg+xml,%3csvg width='100%25' height='100%25' xmlns='http://www.w3.org/2000/svg'%3e%3crect width='100%25' height='100%25' fill='none' stroke='gray' stroke-width='4' stroke-dasharray='6%2c 14' stroke-dashoffset='0' stroke-linecap='square'/%3e%3c/svg%3e");background-repeat:no-repeat;margin:5px;padding:10px;font-size:14px}.oreward-coupon p{margin-top:0;margin-bottom:1rem}.oreward-coupon-head{display:flex}.oreward-amount,.oreward-barcode-panel{width:50%;margin-bottom:10px}.oreward-amount-price{color:#444;font-size:clamp(16px,8vw,48px);font-weight:600}.oreward-amount-sub{font-size:12px}.oreward-barcode-panel{color:#333;text-align:center;font-family:Courier New,Courier,monospace}.oreward-barcode-image{width:100%;height:auto;display:block}.oreward-barcode-value{margin-top:6px}.oreward-footer-copy{text-align:left;padding:10px}.oreward-instructions{font-size:22px}.oreward-thank-you{color:#000;font-size:18px;font-weight:600}.oreward-terms{color:#888;font-size:12px}@media (max-width:400px){.oreward-coupon-head{flex-direction:column}.oreward-amount,.oreward-barcode-panel{width:100%}.oreward-amount{text-align:center}}
