*{box-sizing:border-box;margin:0;padding:0}@font-face{font-family:Knockout;src:url(https://s3.eu-west-2.amazonaws.com/moxy-hotels.com/fonts/Knockout-HTF49-Liteweight.woff)format("woff");font-weight:400;font-style:normal}body{color:#111;-webkit-font-smoothing:antialiased;background:#f0ebe6;min-height:100vh;font-family:Gill Sans,Arial,sans-serif}#root{min-height:100vh}.dashboard{min-height:100vh;display:flex}.sidebar{background:#5b0024;flex-direction:column;flex-shrink:0;width:220px;height:100vh;min-height:100vh;padding:32px 16px 24px;display:flex;position:sticky;top:0}.sidebar-logo{flex-direction:column;align-items:flex-start;margin-bottom:40px;padding:0 8px;display:flex}.sidebar-title{letter-spacing:5px;color:#f7efeb;text-transform:uppercase;font-family:Knockout,sans-serif;font-size:22px;font-weight:400}.sidebar-sub{letter-spacing:2px;text-transform:uppercase;color:#f7efeb73;margin-top:2px;font-size:12px}.sidebar-nav{flex-direction:column;flex:1;gap:4px;display:flex}.nav-item{color:#f7efebb3;cursor:pointer;text-align:left;background:0 0;border:none;border-radius:8px;justify-content:space-between;align-items:center;padding:10px 12px;font-family:Gill Sans,Arial,sans-serif;font-size:15px;transition:background .15s,color .15s;display:flex}.nav-item:hover{color:#fff;background:#ffffff14}.nav-item--active{color:#fff;background:#ffffff26}.nav-badge{color:#fff;background:#a1007d;border-radius:20px;padding:2px 7px;font-size:11px;font-weight:700}.logout-btn{color:#f7efeb99;cursor:pointer;background:0 0;border:1px solid #f7efeb40;border-radius:6px;padding:8px 12px;font-family:Gill Sans,Arial,sans-serif;font-size:13px;transition:background .15s,color .15s}.logout-btn:hover{color:#fff;background:#ffffff14}.main{flex:1;position:relative;overflow-y:auto}.loading-bar{background:linear-gradient(90deg,#a1007d,#5b0024);height:3px;animation:1.2s ease-in-out infinite loadingSlide;position:absolute;top:0;left:0;right:0}@keyframes loadingSlide{0%{transform:translate(-100%)}to{transform:translate(100%)}}.tab-content{max-width:1100px;padding:36px 40px}.page-title{letter-spacing:4px;text-transform:uppercase;color:#5b0024;margin-bottom:28px;font-family:Knockout,sans-serif;font-size:32px;font-weight:400}.login-screen{background:#5b0024;justify-content:center;align-items:center;min-height:100vh;display:flex}.login-card{text-align:center;background:#fff;border-radius:16px;width:100%;max-width:380px;padding:48px 40px}.login-title{letter-spacing:8px;color:#5b0024;text-transform:uppercase;margin-bottom:4px;font-family:Knockout,sans-serif;font-size:36px;font-weight:400}.login-sub{letter-spacing:2px;text-transform:uppercase;color:#999;margin-bottom:32px;font-size:13px}.login-form{flex-direction:column;gap:12px;display:flex}.login-input{border:1px solid #ddd;border-radius:8px;outline:none;padding:12px 14px;font-family:Gill Sans,Arial,sans-serif;font-size:15px;transition:border-color .2s}.login-input:focus{border-color:#a1007d}.login-btn{color:#fff;cursor:pointer;background:#5b0024;border:none;border-radius:8px;padding:13px;font-family:Gill Sans,Arial,sans-serif;font-size:15px;transition:background .2s}.login-btn:hover{background:#7a0030}.login-btn:disabled{opacity:.6;cursor:not-allowed}.login-error{color:#c0002a;background:#fff0f3;border:1px solid #c0002a;border-radius:6px;padding:8px 12px;font-size:14px}.stat-grid{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:28px;display:grid}.stat-card{background:#fff;border:1px solid #e8e1d9;border-radius:12px;flex-direction:column;gap:6px;padding:24px 20px;display:flex}.stat-card--warn{background:#fffbf0;border-color:#f0a500}.stat-value{color:#5b0024;letter-spacing:2px;font-family:Knockout,sans-serif;font-size:44px;font-weight:400;line-height:1}.stat-label{letter-spacing:1.5px;text-transform:uppercase;color:#888;font-size:12px}.alert-box{border-radius:8px;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:20px;padding:12px 16px;font-size:14px;display:flex}.alert-box--warn{color:#7a5000;background:#fffbf0;border:1px solid #f0a500}.alert-box--error{color:#7a0018;background:#fff0f3;border:1px solid #c0002a}.alert-link{cursor:pointer;color:#a1007d;background:0 0;border:none;padding:0;font-family:Gill Sans,Arial,sans-serif;font-size:14px;text-decoration:underline}.charts-grid{grid-template-columns:1fr 1fr;gap:20px;display:grid}.chart-card{background:#fff;border:1px solid #e8e1d9;border-radius:12px;padding:24px 20px 16px}.chart-title{letter-spacing:1.5px;text-transform:uppercase;color:#888;margin-bottom:16px;font-size:13px;font-weight:400}.bar-chart{width:100%}.bar-chart-bars{align-items:flex-end;gap:3px;height:120px;padding-bottom:24px;display:flex;position:relative}.bar-wrap{flex-direction:column;flex:1;justify-content:flex-end;align-items:center;height:100%;display:flex;position:relative}.bar{border-radius:3px 3px 0 0;width:100%;min-height:2px;transition:height .4s}.bar-value{color:#888;margin-bottom:2px;font-size:9px;line-height:1}.bar-label{color:#999;white-space:nowrap;font-size:9px;position:absolute;bottom:-20px}.members-header{justify-content:space-between;align-items:center;gap:20px;margin-bottom:20px;display:flex}.members-header .page-title{margin-bottom:0}.search-input{border:1px solid #ddd;border-radius:8px;outline:none;width:280px;padding:10px 14px;font-family:Gill Sans,Arial,sans-serif;font-size:14px;transition:border-color .2s}.search-input:focus{border-color:#a1007d}.members-layout{align-items:flex-start;gap:20px;display:flex}.members-list{flex-direction:column;flex:1;gap:6px;min-width:0;display:flex}.member-row{cursor:pointer;text-align:left;background:#fff;border:1px solid #e8e1d9;border-radius:10px;justify-content:space-between;align-items:center;width:100%;padding:14px 16px;font-family:Gill Sans,Arial,sans-serif;transition:border-color .15s,box-shadow .15s;display:flex}.member-row:hover{border-color:#a1007d;box-shadow:0 2px 8px #a1007d14}.member-row--selected{border-color:#a1007d;box-shadow:0 2px 12px #a1007d26}.member-row--inactive{opacity:.55}.member-row-main{flex-direction:column;gap:2px;min-width:0;display:flex}.member-row-name{color:#111;font-size:15px;font-weight:400}.member-row-email{color:#888;font-size:12px}.member-row-badges{flex-shrink:0;gap:6px;display:flex}.badge{letter-spacing:.5px;text-transform:uppercase;border-radius:20px;padding:3px 9px;font-size:11px}.badge--active{color:#1a7a3a;background:#e6f4ec}.badge--inactive{color:#666;background:#eee}.badge--warn{color:#7a5000;background:#fffbf0;border:1px solid #f0a500}.badge--expired{color:#c0002a;background:#fff0f3;border:1px solid #c0002a}.empty-state{color:#aaa;text-align:center;padding:24px;font-size:14px}.member-detail{background:#fff;border:1px solid #e8e1d9;border-radius:12px;flex-shrink:0;width:320px;padding:24px;position:sticky;top:36px}.member-detail-header{justify-content:space-between;align-items:flex-start;margin-bottom:20px;display:flex}.member-detail-name{letter-spacing:2px;color:#5b0024;text-transform:uppercase;margin-bottom:4px;font-family:Knockout,sans-serif;font-size:22px;font-weight:400}.member-detail-email,.member-detail-phone{color:#888;margin-top:2px;font-size:13px}.close-btn{color:#aaa;cursor:pointer;background:0 0;border:none;padding:4px;font-size:16px;line-height:1}.close-btn:hover{color:#333}.detail-grid{flex-direction:column;gap:12px;margin-bottom:20px;display:flex}.detail-item{border-bottom:1px solid #f0ebe6;justify-content:space-between;align-items:baseline;padding-bottom:10px;font-size:14px;display:flex}.detail-label{color:#999;text-transform:uppercase;letter-spacing:.8px;font-size:12px}.detail-value{color:#111;text-align:right;font-size:14px}.days-remaining{color:#888;font-size:12px}.text-active{color:#1a7a3a}.text-inactive{color:#888}.text-warn{color:#c07a00}.text-expired{color:#c0002a}.redemption-log{margin-bottom:20px}.log-title{text-transform:uppercase;letter-spacing:1.5px;color:#aaa;margin-bottom:8px;font-size:11px;font-weight:400}.log-entry{color:#555;border-bottom:1px solid #f5f0ec;padding:5px 0;font-size:13px}.deactivate-btn{cursor:pointer;border:none;border-radius:8px;width:100%;padding:11px;font-family:Gill Sans,Arial,sans-serif;font-size:14px;transition:opacity .2s}.deactivate-btn:hover{opacity:.85}.deactivate-btn--deactivate{color:#c0002a;background:#fff0f3;border:1px solid #c0002a}.deactivate-btn--reactivate{color:#1a7a3a;background:#e6f4ec;border:1px solid #1a7a3a}
