.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000;animation:fadeIn .3s}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.modal-content{background:#fff;border-radius:12px;max-width:600px;width:90%;max-height:80vh;overflow-y:auto;box-shadow:0 10px 40px #0003;animation:slideUp .3s}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem 2rem;border-bottom:2px solid #f0f0f0}.modal-header h2{color:#000;font-size:1.5rem;font-weight:700;margin:0}.modal-close-btn{background:none;border:none;font-size:2rem;color:#999;cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background .3s,color .3s}.modal-close-btn:hover{background:#f0f0f0;color:#333}.modal-body{padding:2rem}.claim-notice{padding:1rem 0}.claim-notice p{margin:0;color:#333;font-size:1rem;line-height:1.6}.claim-notice p:first-child{margin-bottom:.75rem}.claim-notice .notice-hint{font-size:.95rem;color:#666}.modal-footer{padding:1.5rem 2rem;border-top:2px solid #f0f0f0;display:flex;justify-content:flex-end}.modal-confirm-btn{padding:.75rem 2rem;font-size:1rem;background:#da291c;color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:background .3s,transform .2s,box-shadow .2s}.modal-confirm-btn:hover{background:#b82218;transform:translateY(-2px);box-shadow:0 4px 8px #da291c4d}@media (max-width: 768px){.modal-content{width:95%;max-height:90vh}.modal-header,.modal-body,.modal-footer{padding:1rem 1.5rem}}.claim-button{position:fixed;bottom:12px;left:50%;transform:translate(-50%);width:auto;max-width:calc(100% - 2rem);min-width:200px;padding:1rem 2rem;font-size:1rem;background:#da291c;color:#fff;border:none;border-radius:999px;font-weight:600;cursor:pointer;transition:background .3s,transform .2s,box-shadow .2s;box-shadow:0 2px 8px #da291c4d;z-index:1000}.claim-button:hover:not(:disabled){background:#b82218;box-shadow:0 4px 12px #da291c66}.claim-button:disabled{opacity:.6;cursor:not-allowed}.status-available{background:#ffc72c;color:#333;font-weight:600}.status-unavailable{background:#9e9e9e;color:#fff}.single-claim-btn{width:100%;padding:.75rem 1rem;font-size:1rem;margin-top:auto;background:#da291c;color:#fff;border:none;border-radius:6px;font-weight:600;cursor:pointer;transition:background .3s,transform .2s,box-shadow .2s}.single-claim-btn:hover:not(:disabled){background:#b82218;transform:translateY(-2px);box-shadow:0 4px 8px #da291c4d}.single-claim-btn:disabled{opacity:.6;cursor:not-allowed}@media (max-width: 768px){.claim-button{padding:1rem 1.5rem;font-size:1rem;max-width:calc(100% - 1rem);min-width:160px}}.coupon-price{color:#ff6b6b;font-size:1.2rem;font-weight:600;margin-bottom:.75rem}.coupon-validity{color:#666;font-size:.95rem;margin-bottom:.75rem}.coupon-tags{display:flex;flex-wrap:wrap;gap:.5rem}.no-token-prompt{text-align:center;padding:4rem 2rem;color:#666}.no-token-prompt h2{color:#da291c;font-size:1.8rem;margin-bottom:1rem;font-weight:700}.no-token-prompt p{color:#666;font-size:1.1rem;line-height:1.8;margin-bottom:.5rem}.no-token-prompt .hint{color:#999;font-size:.95rem;margin-top:1rem;font-style:italic}.token-setup{width:100%;max-width:100%;padding:1rem}.token-setup-card{width:100%;margin-bottom:40px}.token-setup-card h2{color:#000;margin-bottom:1rem;font-size:1.8rem;font-weight:700}.description{color:#666;margin-bottom:2rem;line-height:1.6}.link{color:#da291c;text-decoration:none;font-weight:600;transition:color .3s,text-decoration .3s;cursor:pointer}.link:hover{color:#b82218;text-decoration:underline}.token-form{margin-bottom:2rem}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:.5rem;color:#333;font-weight:500}.token-input{width:100%;padding:.875rem 1rem;border:1px solid #e0e0e0;font-size:1rem;transition:border-color .3s;border-radius:999px}.token-input:focus{outline:none;border-color:#ffc72c}.token-input:disabled{background-color:#f5f5f5;cursor:not-allowed}.submit-button{width:100%;padding:1rem;font-size:1.1rem;background:#da291c;color:#fff;border:none;border-radius:999px;font-weight:600;cursor:pointer;transition:background .3s,transform .2s,box-shadow .2s}.submit-button:hover:not(:disabled){background:#b82218;transform:translateY(-2px);box-shadow:0 4px 12px #da291c66}.submit-button:disabled{opacity:.6;cursor:not-allowed}.help-section{background:#f8f9fa;padding:1.5rem;border-radius:16px;margin-top:2rem}.help-section h3{color:#333;margin-bottom:1rem;font-size:1.2rem}.help-section ol{margin-left:1.5rem;color:#666;line-height:1.8}.help-section li{margin-bottom:.5rem}.dashboard{max-width:1200px;width:100%;margin:0 auto}.dashboard-header{width:100%;padding:1rem;background:#fff;display:flex;justify-content:space-between;align-items:center}.site-title{color:#000;font-size:1.5rem;font-weight:700;margin:0}.header-actions{display:flex;align-items:center;gap:1rem}.clear-token-btn{padding:.5rem 1rem;background:#fff;color:#000;border:1px solid #eee;border-radius:999px;cursor:pointer;font-size:.9rem;transition:background .3s,color .3s}.clear-token-btn:hover{background:#333;color:#fff}.tabs{width:100%;display:flex;gap:8px;padding:0 1rem}.tab{flex:1;padding:1rem;background:#fff;border-radius:999px;cursor:pointer;transition:all .3s;display:flex;align-items:center;justify-content:center;font-size:1rem;color:#000;font-weight:600;position:relative;border:1px solid #f1f1f1}.tab:hover:not(.active){background:#00000005}.tab.active{background:#fff;font-weight:600;border:1px solid #DA291C;color:#da291c}.tab-content{background:#fff;min-height:400px;width:100%;overflow-x:hidden;padding:1rem;margin-top:2rem}@media (max-width: 768px){.dashboard-header{padding:1rem;flex-direction:row;justify-content:space-between;align-items:center}.header-actions{width:auto;flex-wrap:nowrap}.site-title{font-size:1.2rem}.tab{padding:.875rem 1rem;font-size:.9rem}.clear-token-btn{font-size:.85rem;padding:.5rem .75rem}}.app-footer{text-align:center;padding:6rem 1rem;color:#666;font-size:.9rem}.app-footer p{margin:0}.footer-link{color:#da291c;text-decoration:none;transition:color .3s}.footer-link:hover{color:#b82218;text-decoration:underline}*{margin:0;padding:0;box-sizing:border-box}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;min-height:100vh}.app{min-height:100vh;display:flex;flex-direction:column}.loading-container{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:60vh;color:#fff}.spinner{width:50px;height:50px;border:4px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin 1s linear infinite;margin-bottom:1rem}@keyframes spin{to{transform:rotate(360deg)}}.coupon-card{background:#fff;border-radius:16px;overflow:hidden;transition:border-color .3s;border:1px solid #f1f1f1;display:flex;flex-direction:column}.coupon-card:hover{border-color:#ffc72c}.coupon-image{width:100%;height:180px;object-fit:contain;object-position:center;display:block;flex-shrink:0;padding:12px;border-bottom:1px solid #f1f1f1}.coupon-info{padding:1rem;display:flex;flex-direction:column;flex:1}.coupon-title{color:#333;font-size:1.2rem;margin-bottom:.75rem;font-weight:600;flex-shrink:0}.error-message{background:#fee;color:#c33;padding:1rem;border-radius:8px;margin-bottom:1.5rem;border-left:4px solid #c33}.loading,.empty-state{text-align:center;padding:3rem;color:#999;font-size:1.1rem}.coupons-container{width:100%;max-width:100%;overflow-x:hidden}.coupons-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem;width:100%}@media (max-width: 1024px){.coupons-grid{grid-template-columns:repeat(2,1fr);gap:1.25rem}}@media (max-width: 768px){.coupons-grid{grid-template-columns:1fr;gap:1rem}}.btn-primary{background:#da291c;color:#fff;border:none;border-radius:8px;font-weight:600;cursor:pointer;transition:background .3s,transform .2s,box-shadow .2s}.btn-primary:hover:not(:disabled){background:#b82218;transform:translateY(-2px);box-shadow:0 4px 12px #da291c66}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.tag,.coupon-status{display:inline-block;padding:.4rem .8rem;color:#666;border:1px solid #f1f1f1;border-radius:20px;font-size:.85rem}.coupon-status{padding:.5rem 1rem;font-size:.9rem;font-weight:500;margin-top:auto;align-self:flex-start}
