
:root{--lime:#caff12;--ink:#121212;--muted:#737373;--line:#ececea}
*{box-sizing:border-box}html,body{margin:0;background:#eef1f3;font-family:Inter,-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Arial,sans-serif;color:var(--ink)}
.phone{width:min(100%,430px);margin:auto;min-height:100vh;background:#fff;position:relative;overflow:hidden;box-shadow:0 0 45px #0002}.screen{display:none;padding-bottom:94px}.screen.active{display:block}
.header{display:flex;align-items:center;justify-content:space-between;padding:20px 20px 18px}.brand{display:flex;align-items:center;gap:12px}.logo{width:45px;height:45px;border-radius:13px;background:linear-gradient(145deg,#d8ff27,#aef000);display:grid;place-items:center;font-size:26px;font-weight:950}.brand-text strong{display:block;font-size:25px;letter-spacing:-.7px}.brand-text small{color:var(--muted);font-size:13px}.bell{width:46px;height:46px;border-radius:50%;border:0;background:#f6f6f3;font-size:17px;font-weight:900;position:relative}.badge-dot{position:absolute;right:0;top:-3px;background:var(--lime);width:20px;height:20px;border-radius:50%;font-size:11px;font-weight:900;display:grid;place-items:center}
.hero{margin:0 18px;min-height:190px;border-radius:26px;background:radial-gradient(circle at 90% 5%,#ffffff40 0 18%,transparent 19%),radial-gradient(circle at 12% 98%,#ffffff35 0 25%,transparent 26%),linear-gradient(135deg,#d8ff12,#b7ff00);position:relative;overflow:hidden;padding:28px 175px 26px 24px}.hero h1{margin:0 0 10px;font-size:29px;line-height:1.08;letter-spacing:-1px}.hero p{margin:0 0 16px;color:#454545;font-size:14px;line-height:1.45}.cta{border:0;background:#1b1b1b;color:#fff;border-radius:999px;padding:12px 16px;font-weight:850}
.student{position:absolute;right:8px;bottom:0;width:160px;height:180px}.head{position:absolute;left:52px;top:20px;width:58px;height:58px;background:#efb28c;border-radius:50%;z-index:3}.hair{position:absolute;left:46px;top:8px;width:70px;height:30px;background:#5a321f;border-radius:50% 50% 35% 35%;transform:rotate(-8deg);z-index:4}.glasses{position:absolute;left:47px;top:33px;width:72px;height:17px;z-index:5}.glasses:before,.glasses:after{content:"";position:absolute;width:29px;height:16px;background:#202020;border-radius:7px}.glasses:after{right:0}.body{position:absolute;left:30px;bottom:0;width:100px;height:112px;background:#b6e600;border-radius:45px 45px 18px 18px}.body:after{content:"";position:absolute;right:-18px;top:22px;width:38px;height:80px;background:#252525;border-radius:22px;z-index:-1}.arm{position:absolute;left:8px;top:88px;width:65px;height:24px;background:#efb28c;border-radius:20px;transform:rotate(-45deg);z-index:2}.mini-phone{position:absolute;left:20px;top:66px;width:23px;height:42px;background:#171717;border-radius:6px;transform:rotate(-16deg);z-index:6}.offer-bubble{position:absolute;right:87px;top:8px;width:48px;height:48px;background:#fff;border-radius:12px;display:grid;place-items:center;font-size:26px;font-weight:950;transform:rotate(7deg);box-shadow:0 8px 18px #0001}
.search-wrap{margin:20px 18px 10px;display:flex;gap:10px}.search{flex:1;height:58px;border-radius:30px;background:#fff;border:1px solid #eee;box-shadow:0 10px 25px #00000012;display:flex;align-items:center;padding:0 18px;gap:11px}.search span{font-size:23px}.search input{flex:1;border:0;outline:0;font-size:16px;background:transparent}.filter{width:58px;height:58px;border-radius:50%;border:0;background:var(--lime);font-size:23px;box-shadow:0 10px 22px #0001}
.section{padding:16px 18px}.section-head{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}.section-head h2{margin:0;font-size:21px;letter-spacing:-.5px}.see-all{border:0;background:transparent;color:#aada00;font-weight:800;font-size:15px}.category-row{display:grid;grid-template-columns:repeat(5,1fr);gap:10px}.category-card{height:92px;border-radius:20px;background:#fff;border:1px solid #f0f0ed;box-shadow:0 8px 18px #0000000f;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;font-size:10px;font-weight:800;text-align:center;padding:6px}.category-card .icon{font-size:31px}
.trending{display:grid;grid-auto-flow:column;grid-auto-columns:68%;gap:12px;overflow-x:auto;padding-bottom:4px;scroll-snap-type:x mandatory}.trending::-webkit-scrollbar{display:none}.deal-card{scroll-snap-align:start;border-radius:21px;overflow:hidden;position:relative;min-height:245px;color:#fff;box-shadow:0 12px 25px #0002}.deal-bg{position:absolute;inset:0;background-size:cover;background-position:center}.deal-card:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 30%,#000c)}.heart{position:absolute;right:12px;top:12px;z-index:2;font-size:23px}.deal-info{position:absolute;z-index:3;left:14px;right:14px;bottom:14px}.discount{display:inline-block;background:var(--lime);color:#111;padding:5px 10px;border-radius:999px;font-weight:950;font-size:12px;margin-bottom:8px}.deal-info h3{font-size:20px;margin:0 0 3px}.deal-info p{margin:0;color:#e5e5e5;font-size:12px}.deal-meta{display:flex;justify-content:space-between;margin-top:10px;font-size:12px}.nearby-card{display:flex;align-items:center;gap:14px;background:#fff;border:1px solid #efefec;border-radius:22px;padding:12px;box-shadow:0 9px 22px #0000000f}.nearby-img{width:90px;height:90px;border-radius:18px;background:radial-gradient(circle at 32% 38%,#f36a47 0 10%,#f4efe3 11% 20%,#283 21% 23%,transparent 24%),radial-gradient(circle at 67% 60%,#ff8c55 0 10%,#f4efe3 11% 20%,#283 21% 23%,transparent 24%),linear-gradient(135deg,#242424,#767676);flex:none}.nearby-copy{flex:1}.nearby-copy h3{margin:0 0 6px;font-size:19px}.nearby-copy p{margin:3px 0;color:#444;font-size:14px}.nearby-copy small{color:var(--muted)}.viewdeal{border:0;background:var(--lime);border-radius:999px;padding:11px 15px;font-weight:900;white-space:nowrap}
.bottom-nav{position:fixed;z-index:30;bottom:0;left:50%;transform:translateX(-50%);width:min(430px,100%);height:78px;background:#fffffff8;backdrop-filter:blur(18px);border-top:1px solid #efefef;display:grid;grid-template-columns:repeat(4,1fr);align-items:center;padding:5px 12px calc(5px + env(safe-area-inset-bottom))}.bottom-nav button{border:0;background:transparent;font-size:10px;color:#646464;font-weight:700}.bottom-nav button b{display:block;font-size:22px;margin-bottom:4px}.bottom-nav .active{color:#89b900}.subpage{padding:16px 18px}.back{border:0;background:#f4f4f2;border-radius:13px;padding:10px 12px;font-weight:800}.offer-panel{margin-top:18px;background:linear-gradient(135deg,#d8ff12,#b5f700);border-radius:24px;padding:22px}.offer-panel h1{margin:0 0 8px;font-size:31px}.offer-panel p{margin:0 0 16px;color:#3f3f3f}.action{border:0;background:#151515;color:#fff;border-radius:999px;padding:12px 16px;font-weight:900}.action:disabled{background:#d7d8d3;color:#777;cursor:not-allowed;box-shadow:none}.deal-primary-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.deal-save-button{border:1px solid #111;background:#fff;color:#111;border-radius:999px;padding:11px 15px;font-weight:900;cursor:pointer}.deal-save-button.saved{background:#111;color:#fff}.deal-save-button[hidden]{display:none!important}.qr{width:210px;height:210px;margin:24px auto;background:repeating-conic-gradient(#111 0 25%,#fff 0 50%) 50%/24px 24px;border:14px solid white;box-shadow:0 10px 30px #0002;border-radius:20px}.center{text-align:center}.saved-list{display:grid;gap:12px}.saved-item{padding:15px;border-radius:18px;background:#fff;border:1px solid #eee;box-shadow:0 8px 20px #0000000d}.toast{position:fixed;z-index:100;bottom:90px;left:50%;transform:translateX(-50%) translateY(15px);opacity:0;background:#111;color:white;padding:10px 14px;border-radius:12px;font-size:12px;font-weight:800;transition:.2s}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
@media(max-width:370px){.hero{padding-right:145px}.student{transform:scale(.86);transform-origin:right bottom}.category-card{font-size:9px}.category-card .icon{font-size:26px}}

.map-page{padding:14px 14px 96px}
.map-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}
.map-top h1{margin:0;font-size:27px;letter-spacing:-.7px}
.map-sub{margin:3px 0 0;color:var(--muted);font-size:13px}
.map-wrap{position:relative;border-radius:24px;overflow:hidden;border:1px solid #ecece8;background:#e8ecef;box-shadow:0 10px 26px #00000012}
.map-canvas{height:500px;width:100%;z-index:1;background:#e8ecef}
.map-search{position:absolute;z-index:500;left:12px;right:12px;top:12px;display:flex;gap:8px}
.map-search input{flex:1;height:46px;border:0;border-radius:999px;padding:0 17px;font-size:14px;box-shadow:0 6px 18px #0002;outline:none}
.map-centre-button{
  width:46px;
  height:46px;
  flex:0 0 46px;
  display:grid;
  place-items:center;
  border:1px solid #e7e7e2;
  border-radius:15px;
  background:#fff;
  color:#171717;
  box-shadow:0 6px 16px #00000018;
  cursor:pointer;
  transition:background .16s ease,border-color .16s ease,box-shadow .16s ease,transform .08s ease;
}
.map-centre-button svg{width:21px;height:21px;display:block}
.map-centre-button .centre-dot{fill:var(--lime);stroke:#171717;stroke-width:1.5}
.map-centre-button:hover{background:#f8ffe2;border-color:#c9ea4d;box-shadow:0 7px 18px #00000020}
.map-centre-button:active{transform:scale(.96);box-shadow:0 3px 10px #00000018}
.map-centre-button:focus-visible{outline:3px solid #c9f329;outline-offset:2px}
.locate-btn{}
.map-legend{position:absolute;z-index:500;left:12px;top:70px;bottom:auto;background:#fff;padding:9px 12px;border-radius:14px;font-size:11px;font-weight:800;box-shadow:0 6px 18px #0002}
.business-sheet{margin-top:14px;background:#fff;border:1px solid #efefec;border-radius:22px;padding:15px;box-shadow:0 9px 22px #0000000f}
.business-sheet h3{margin:0 0 4px;font-size:20px}
.business-sheet p{margin:3px 0;color:#555;font-size:13px}
.business-sheet .offer{display:inline-block;margin-top:9px;background:var(--lime);padding:6px 10px;border-radius:999px;font-weight:900;font-size:12px}
.map-actions{display:flex;gap:9px;margin-top:12px}
.map-actions button{flex:1;border:0;border-radius:999px;padding:11px 12px;font-weight:900}
.map-actions .primary{background:#151515;color:#fff}
.map-actions .secondary{background:#f2f3ef;color:#222}
.uni-pin{position:relative;background:var(--lime);border:3px solid #111;width:30px;height:30px;border-radius:50% 50% 50% 0;transform:rotate(-45deg);box-shadow:0 3px 8px #0004}
.uni-pin:after{content:'%';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(45deg);font-size:11px;font-weight:950;color:#111}
.leaflet-control-attribution{font-size:8px!important}
.leaflet-popup-content-wrapper{border-radius:16px}
.leaflet-popup-content{margin:11px 13px}
.leaflet-container{font-family:inherit}
.map-error{height:500px;display:grid;place-items:center;text-align:center;padding:30px;color:#666}


.all-page{padding:16px 18px 100px}
.all-page-head{display:flex;align-items:center;gap:13px;margin-bottom:18px}
.all-page-head h1{margin:0;font-size:27px;letter-spacing:-.7px}
.all-page-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.all-category{min-height:135px;border:1px solid #efefec;border-radius:22px;background:#fff;box-shadow:0 8px 20px #0000000d;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:15px;font-weight:850}
.all-category .big-icon{font-size:38px;margin-bottom:10px}
.all-category small{display:block;color:var(--muted);font-weight:600;margin-top:5px}
.all-deals{display:grid;gap:14px}
.full-deal{min-height:205px;border-radius:22px;overflow:hidden;position:relative;color:#fff;box-shadow:0 10px 24px #0002}
.full-deal:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,transparent 25%,#000d)}
.full-deal .deal-info{z-index:3}


.saved-row{display:flex;align-items:center;gap:12px}
.saved-copy{flex:1;min-width:0}
.saved-copy p{margin:5px 0 0;color:var(--muted);font-size:13px}
.unsave-btn{border:0;background:#f5f5f2;border-radius:50%;width:42px;height:42px;padding:0;font-size:20px;font-weight:900;color:#222;white-space:nowrap;cursor:pointer}
.unsave-btn span{font-size:12px}
.heart{cursor:pointer;user-select:none}


.unsave-btn.unsaved-pending{background:#f5f5f2;color:#8a8a8a;opacity:.75}


.whats-page{padding:16px 18px 100px}
.whats-head{display:flex;align-items:center;gap:13px;margin-bottom:8px}
.whats-head h1{margin:0;font-size:28px;letter-spacing:-.8px}
.whats-intro{margin:0 0 18px;color:var(--muted);font-size:14px;line-height:1.45}
.today-strip{display:flex;gap:8px;overflow-x:auto;padding-bottom:5px;margin-bottom:18px}
.today-strip::-webkit-scrollbar{display:none}
.today-chip{border:0;border-radius:999px;padding:10px 14px;background:#f3f4f1;font-weight:850;white-space:nowrap}
.today-chip.active{background:var(--lime);color:#111}
.whats-grid{display:grid;gap:14px}
.whats-card{position:relative;overflow:hidden;border-radius:24px;min-height:180px;padding:20px;color:#fff;box-shadow:0 10px 24px #0002}
.whats-card:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,#0001 15%,#000c 100%)}
.whats-card>*{position:relative;z-index:2}
.whats-card .tag{display:inline-block;background:var(--lime);color:#111;border-radius:999px;padding:6px 10px;font-size:11px;font-weight:950;margin-bottom:36px}
.whats-card h3{margin:0 0 5px;font-size:22px}
.whats-card p{margin:0 0 10px;font-size:13px;color:#eee}
.whats-meta{display:flex;justify-content:space-between;align-items:center;font-size:12px}
.whats-meta button{border:0;background:#fff;color:#111;border-radius:999px;padding:9px 12px;font-weight:900}
.bg-food{background:linear-gradient(135deg,#864f2d,#d59b57)}
.bg-drinks{background:linear-gradient(135deg,#42201f,#a24357)}
.bg-coffee{background:linear-gradient(135deg,#7c5742,#d1ae85)}
.bg-fun{background:linear-gradient(135deg,#28305d,#6f57b5)}
.whats-note{margin-top:16px;padding:14px 16px;border-radius:18px;background:#f5f6f2;color:#555;font-size:12px;line-height:1.5}


.filter-page{padding:16px 18px 110px}
.filter-head{display:flex;align-items:center;gap:13px;margin-bottom:8px}
.filter-head h1{margin:0;font-size:28px;letter-spacing:-.8px}
.filter-sub{margin:0 0 20px;color:var(--muted);font-size:14px}
.filter-section{margin-bottom:22px}
.filter-section h3{margin:0 0 11px;font-size:17px}
.filter-options{display:flex;flex-wrap:wrap;gap:9px}
.filter-chip{border:1px solid #e7e7e3;background:#fff;border-radius:999px;padding:10px 13px;font-weight:800;font-size:13px;cursor:pointer}
.filter-chip.active{background:var(--lime);border-color:var(--lime)}
.distance-row{display:grid;grid-template-columns:repeat(3,1fr);gap:9px}
.distance-btn{border:1px solid #e7e7e3;background:#fff;border-radius:16px;padding:13px 8px;font-weight:850}
.distance-btn.active{background:#111;color:#fff;border-color:#111}
.filter-toggle{display:flex;align-items:center;justify-content:space-between;padding:14px 0;border-bottom:1px solid #efefec}
.filter-toggle strong{font-size:14px}
.switch{position:relative;width:48px;height:28px;border-radius:999px;background:#ddd;cursor:pointer;transition:.2s}
.switch:after{content:"";position:absolute;width:22px;height:22px;left:3px;top:3px;background:#fff;border-radius:50%;transition:.2s;box-shadow:0 2px 5px #0002}
.switch.on{background:var(--lime)}
.switch.on:after{left:23px}
.filter-actions{position:fixed;z-index:40;bottom:78px;left:50%;transform:translateX(-50%);width:min(430px,100%);display:flex;gap:10px;padding:12px 18px 14px;background:#fffffff7;backdrop-filter:blur(15px);border-top:1px solid #eee}
.filter-actions button{flex:1;border:0;border-radius:999px;padding:13px 14px;font-weight:900}
.filter-reset{background:#f1f2ef}
.filter-apply{background:#111;color:#fff}
.filter-summary{margin:10px 18px 0;padding:10px 13px;border-radius:14px;background:#f4f6ef;font-size:12px;color:#555;display:none}
.filter-summary.show{display:block}


.distance-title{display:flex;align-items:center;justify-content:space-between;margin-bottom:13px}
.distance-title h3{margin:0}
.distance-title strong{font-size:13px;background:var(--lime);padding:7px 11px;border-radius:999px}
.distance-slider-wrap{padding:5px 2px 0}
.distance-slider{width:100%;height:7px;appearance:none;-webkit-appearance:none;touch-action:none;cursor:pointer;border-radius:999px;background:linear-gradient(to right,var(--lime) 0%,var(--lime) 100%,#e5e5e2 100%,#e5e5e2 100%);outline:none}
.distance-slider::-webkit-slider-thumb{-webkit-appearance:none;appearance:none;width:25px;height:25px;border-radius:50%;background:#fff;border:3px solid #111;box-shadow:0 2px 7px #0003;cursor:pointer}
.distance-slider::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:#fff;border:3px solid #111;box-shadow:0 2px 7px #0003;cursor:pointer}
.distance-scale{display:flex;justify-content:space-between;margin-top:9px;color:var(--muted);font-size:11px;font-weight:750}













#trending .deal-card{
  box-shadow:none!important;
}


#trending .deal-card{
  box-shadow:0 10px 22px rgba(0,0,0,.08), 0 3px 8px rgba(0,0,0,.035)!important;
}


#trending .deal-card{
  box-shadow:
    0 5px 8px rgba(0,0,0,.055),
    0 12px 20px rgba(0,0,0,.035),
    0 22px 34px rgba(0,0,0,.015)!important;
}
#trending .trending{
  padding-bottom:30px!important;
  margin-bottom:-18px;
}


/* Soft horizontal + bottom fade for Trending Deals shadow */
#trending .trending{
  position:relative;
  overflow-x:auto;
  overflow-y:visible;
}
#trending .deal-card{
  box-shadow:
    0 5px 8px rgba(0,0,0,.05),
    0 12px 20px rgba(0,0,0,.03),
    0 22px 34px rgba(0,0,0,.012)!important;
}
#trending{
  position:relative;
}
#trending:after{
  content:"";
  pointer-events:none;
  position:absolute;
  left:18px;
  right:18px;
  bottom:2px;
  height:30px;
  background:radial-gradient(
    ellipse at center,
    rgba(0,0,0,.045) 0%,
    rgba(0,0,0,.025) 38%,
    rgba(0,0,0,.010) 62%,
    rgba(0,0,0,0) 82%
  );
  filter:blur(7px);
  opacity:.65;
}


.notifications-page{padding:16px 18px 105px}
.notifications-head{display:flex;align-items:center;gap:13px;margin-bottom:8px}
.notifications-head h1{margin:0;font-size:28px;letter-spacing:-.8px}
.notifications-sub{margin:0 0 20px;color:var(--muted);font-size:14px}
.notification-list{display:grid;gap:11px}
.notification-item{display:flex;gap:13px;align-items:flex-start;padding:15px;background:#fff;border:1px solid #ededeb;border-radius:19px}
.notification-item.unread{background:#fbfff0;border-color:#e3f5a6}
.notification-dot{width:9px;height:9px;border-radius:50%;background:var(--lime);border:1px solid #9fc300;flex:none;margin-top:7px}
.notification-item.read .notification-dot{background:#ddd;border-color:#ddd}
.notification-copy{flex:1;min-width:0}
.notification-copy strong{display:block;font-size:15px;margin-bottom:4px}
.notification-copy p{margin:0;color:#555;font-size:13px;line-height:1.4}
.notification-copy small{display:block;color:#999;margin-top:7px;font-size:11px}
.notification-action{margin-top:10px;border:0;background:#111;color:#fff;border-radius:999px;padding:8px 11px;font-size:11px;font-weight:900}
.notifications-tools{display:flex;justify-content:flex-end;margin-bottom:13px}
.mark-read{border:0;background:transparent;color:#8caf00;font-weight:850;font-size:13px}


.notification-actions-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:10px}
.notification-read-btn{border:1px solid #deded9;background:#fff;color:#555;border-radius:999px;padding:8px 11px;font-size:11px;font-weight:850}
.notification-delete-btn{border:1px solid #f0d2d2;background:#fff7f7;color:#a32020;border-radius:999px;padding:8px 11px;font-size:11px;font-weight:850;cursor:pointer}
.notification-delete-btn:active{transform:scale(.97)}
.notification-item.read .notification-read-btn{display:none}


.notification-actions-row{
  display:grid!important;
  grid-template-columns:1fr 1fr;
  gap:8px;
  align-items:stretch;
}
.notification-actions-row .notification-read-btn,
.notification-actions-row .notification-action,
.notification-actions-row .notification-delete-btn{
  width:100%;
  min-height:34px;
  margin:0!important;
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
  white-space:nowrap;
}
.notification-item.read .notification-actions-row{
  display:flex!important;
}
.notification-item.read .notification-action{
  width:auto;
}


.notification-actions-row{
  display:flex!important;
  gap:8px;
  align-items:center;
  justify-content:flex-start;
}
.notification-actions-row .notification-read-btn,
.notification-actions-row .notification-action,
.notification-actions-row .notification-delete-btn{
  width:auto!important;
  min-width:0!important;
  flex:0 0 auto!important;
  padding-left:12px!important;
  padding-right:12px!important;
}


.deal-card,.full-deal{cursor:pointer}

.admin-page{padding:16px 18px 110px}
.admin-head{display:flex;align-items:center;gap:13px;margin-bottom:18px}
.admin-head h1{margin:0;font-size:27px;letter-spacing:-.7px}
.admin-card{background:#fff;border:1px solid #ecece8;border-radius:22px;padding:18px;box-shadow:0 8px 20px #0000000d}
.admin-card h2{margin:0 0 14px;font-size:20px}
.admin-field{margin-bottom:13px}
.admin-field label{display:block;font-size:12px;font-weight:850;margin-bottom:6px;color:#444}
.admin-field input,.admin-field select,.admin-field textarea{
  width:100%;border:1px solid #deded9;border-radius:14px;padding:12px 13px;font:inherit;background:#fff;outline:none
}
.admin-field textarea{min-height:84px;resize:vertical}
.admin-field input:focus,.admin-field select:focus,.admin-field textarea:focus{border-color:#b8dc28;box-shadow:0 0 0 3px #caff1226}
.admin-btn{border:0;border-radius:999px;padding:12px 16px;font-weight:900;cursor:pointer}
.admin-btn.primary{background:#111;color:#fff}
.admin-btn.secondary{background:#f2f3ef;color:#222}
.admin-btn.danger{background:#fff0f0;color:#b42318}
.admin-actions{display:flex;gap:9px;flex-wrap:wrap}
.admin-note{font-size:12px;color:#777;line-height:1.45;margin-top:10px}
.admin-error{display:none;background:#fff0f0;color:#a61b1b;border-radius:12px;padding:10px 12px;margin-bottom:12px;font-size:12px;font-weight:800}
.admin-error.show{display:block}
.admin-toolbar{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:15px}
.admin-toolbar h2{margin:0}
.admin-list{display:grid;gap:11px}
.admin-listing{background:#fff;border:1px solid #ecece8;border-radius:18px;padding:14px}
.admin-listing-top{display:flex;justify-content:space-between;gap:12px;align-items:flex-start}
.admin-listing h3{margin:0 0 4px;font-size:16px}
.admin-listing p{margin:3px 0;color:#555;font-size:12px}
.admin-badge{display:inline-block;background:var(--lime);padding:4px 8px;border-radius:999px;font-size:10px;font-weight:900;margin-top:7px}
.admin-login-logo{width:60px;height:60px;border-radius:18px;background:linear-gradient(145deg,#d8ff27,#aef000);display:grid;place-items:center;font-size:32px;font-weight:950;margin:8px auto 16px}
.admin-login-title{text-align:center;margin-bottom:18px}
.admin-login-title h1{margin:0 0 6px}
.admin-login-title p{margin:0;color:#777;font-size:13px}
.admin-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:16px}
.admin-stat{background:#f7f8f4;border-radius:16px;padding:14px}
.admin-stat strong{display:block;font-size:22px}
.admin-stat small{color:#777}
.dynamic-deal-card{position:relative}
.dynamic-deal-card .deal-bg{background-size:cover;background-position:center}


.admin-location-picker{
  width:100%;
  border:1px solid #deded9;
  background:#fff;
  border-radius:16px;
  padding:12px 13px;
  display:flex;
  align-items:center;
  gap:11px;
  text-align:left;
  cursor:pointer;
}
.admin-location-pin{
  width:38px;
  height:38px;
  border-radius:50%;
  background:var(--lime);
  display:grid;
  place-items:center;
  font-size:21px;
  font-weight:900;
  flex:none;
}
.admin-location-copy{flex:1;min-width:0}
.admin-location-copy strong{display:block;font-size:14px}
.admin-location-copy small{display:block;color:#777;margin-top:3px;font-size:11px}
.admin-location-arrow{font-size:25px;color:#888}
.admin-map-page{padding:16px 18px 110px}
.admin-map-head{display:flex;align-items:center;gap:13px;margin-bottom:8px}
.admin-map-head h1{margin:0;font-size:27px;letter-spacing:-.7px}
.admin-map-help{margin:0 0 14px;color:#666;font-size:13px;line-height:1.45}
.admin-map-wrap{
  position:relative;
  border-radius:22px;
  overflow:hidden;
  border:1px solid #e7e7e3;
  background:#e7ebee;
}
#adminLocationMap{height:500px;width:100%;background:#e7ebee}
.admin-map-centre{
  position:absolute;
  z-index:500;
  top:12px;
  right:12px;
}
.admin-map-status{
  margin-top:12px;
  padding:12px 14px;
  background:#f6f7f3;
  border-radius:15px;
  font-size:12px;
  color:#555;
}
.admin-map-actions{
  display:flex;
  gap:9px;
  margin-top:13px;
}
.admin-map-actions button{flex:1}
.admin-map-pin{
  position:relative;
  width:32px;
  height:32px;
  border:3px solid #111;
  border-radius:50% 50% 50% 0;
  background:var(--lime);
  transform:rotate(-45deg);
  box-shadow:0 4px 10px #0003;
}
.admin-map-pin:after{
  content:"";
  position:absolute;
  width:8px;
  height:8px;
  border-radius:50%;
  background:#111;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
}


.deal-where-head{display:flex;align-items:center;justify-content:space-between;gap:12px}
.deal-where-head p{margin:5px 0 0}
.deal-map-toggle{
  border:0;
  background:var(--lime);
  border-radius:999px;
  padding:8px 11px;
  font-size:11px;
  font-weight:900;
  white-space:nowrap;
}
.deal-location-map-wrap{
  display:none;
  margin-top:12px;
  border-radius:16px;
  overflow:hidden;
  border:1px solid #e7e7e3;
  background:#e8ecef;
}
.deal-location-map-wrap.show{display:block}
#dealLocationMap{height:220px;width:100%;background:#e8ecef}
.deal-map-pin{
  position:relative;
  width:30px;
  height:30px;
  border:3px solid #111;
  border-radius:50% 50% 50% 0;
  background:var(--lime);
  transform:rotate(-45deg);
  box-shadow:0 4px 10px #0003;
}
.deal-map-pin:after{
  content:"";
  position:absolute;
  width:7px;
  height:7px;
  border-radius:50%;
  background:#111;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
}


.top-cat-actions{display:flex;align-items:center;gap:6px}
.clear-cat-filter{
  display:none;
  border:0;
  background:#f2f3ef;
  color:#555;
  border-radius:999px;
  padding:7px 10px;
  font-size:11px;
  font-weight:850;
}
.clear-cat-filter.show{display:inline-block}


.deal-card,
.full-deal,
.dynamic-deal-card,
.saved-item[data-deal],
.notification-item{
  cursor:pointer;
  -webkit-tap-highlight-color:rgba(0,0,0,0);
}
.deal-card,
.full-deal,
.dynamic-deal-card{
  touch-action:manipulation;
}


section .deal-card,
section .near-deal,
section .full-deal{
  cursor:pointer;
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
}


.deal-card .deal-bg,
.full-deal .deal-bg,
.dynamic-deal-card .deal-bg,
.near-deal .deal-bg,
.deal-card img,
.full-deal img,
.dynamic-deal-card img,
.near-deal img{
  cursor:pointer;
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
  pointer-events:auto;
}


.nearby-card{
  cursor:pointer;
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
}
.nearby-card .nearby-img,
.nearby-card .nearby-copy{
  pointer-events:none;
}
.nearby-card .viewdeal{
  pointer-events:auto;
}


/* Commercially polished bottom navigation */
.bottom-nav button{
  color:#8a8a8a!important;
  font-size:10px!important;
  font-weight:700!important;
  letter-spacing:.01em;
  gap:4px!important;
  transition:color .16s ease,transform .16s ease;
}
.bottom-nav button:active{transform:scale(.96)}
.bottom-nav button.active{color:#111!important}
.polished-nav-icon{
  width:27px;
  height:27px;
  display:flex;
  align-items:center;
  justify-content:center;
  margin:0 auto 1px;
}
.polished-nav-icon svg{
  width:25px;
  height:25px;
  fill:none;
  stroke:currentColor;
  stroke-width:2.15;
  stroke-linecap:round;
  stroke-linejoin:round;
  overflow:visible;
}
#nav-home .polished-nav-icon svg{width:26px;height:26px}
#nav-nearby .polished-nav-icon svg{width:25px;height:25px}
#nav-saved .polished-nav-icon svg{width:25px;height:25px}
#nav-account .polished-nav-icon svg{width:26px;height:26px}


.empty-listings{
  padding:22px 16px;
  border:1px dashed #d9dad4;
  border-radius:18px;
  color:#8a8a84;
  text-align:center;
  font-size:13px;
  background:#fafbf8;
}

.empty-listings strong{display:block;color:#444;font-size:14px;margin-bottom:5px}
.empty-state-action{
  margin-top:12px;
  border:0;
  border-radius:999px;
  background:#111;
  color:#fff;
  padding:9px 14px;
  font:inherit;
  font-weight:800;
  cursor:pointer;
}
.empty-state-action.secondary{background:#eceee8;color:#222}
.redeem-qr-error{
  display:none;
  margin:12px auto 0;
  max-width:300px;
  padding:13px 15px;
  border-radius:14px;
  background:#fff4e8;
  border:1px solid #f2d3ad;
  color:#7a4b14;
  font-size:12px;
  line-height:1.45;
  text-align:center;
}


.location-permission-card{
  margin:14px 0;
  padding:16px;
  border-radius:18px;
  background:#f7f8f4;
  border:1px solid #e8e9e4;
}
.location-permission-card h3{margin:0 0 6px;font-size:17px}
.location-permission-card p{margin:0 0 12px;color:#666;font-size:13px;line-height:1.45}
.location-permission-actions{display:flex;gap:8px;flex-wrap:wrap}
.location-permission-actions button{
  border:0;
  border-radius:999px;
  padding:10px 13px;
  font-weight:900;
}
.location-enable{background:#111;color:#fff}
.location-retry{background:var(--lime);color:#111}
.location-status{
  margin-top:10px;
  font-size:12px;
  color:#666;
}
.user-location-marker{
  width:18px;
  height:18px;
  border-radius:50%;
  background:#fff;
  border:5px solid #111;
  box-shadow:0 0 0 4px #ffffffaa,0 3px 10px #0003;
}
.nearby-distance{
  font-size:12px;
  color:#666;
  margin-top:4px;
}




.deal-detail-image{
  display:none;
  width:100%;
  height:210px;
  border-radius:22px;
  margin-bottom:14px;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  border:1px solid #ecece8;
}
.deal-detail-image.has-image{display:block}
.nearby-img{
  background-size:cover!important;
  background-position:center!important;
  background-repeat:no-repeat!important;
}
.selected-business-image{
  display:none;
  width:100%;
  height:130px;
  border-radius:15px;
  margin-bottom:11px;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
}
.admin-listing-image{
  width:100%;
  height:120px;
  border-radius:14px;
  margin-bottom:12px;
  background-size:cover;
  background-position:center;
  background-repeat:no-repeat;
  border:1px solid #ecece8;
}


.nearby-save-heart{
  position:absolute;
  right:10px;
  top:10px;
  z-index:3;
  width:34px;
  height:34px;
  border:0;
  border-radius:50%;
  background:#fffffff0;
  color:#111;
  font-size:21px;
  line-height:1;
  display:grid;
  place-items:center;
  box-shadow:0 3px 10px #0002;
}
.saved-listing-thumb{
  width:58px;
  height:58px;
  border-radius:13px;
  background-size:cover;
  background-position:center;
  flex:none;
}


/* Keep Deals Near You save heart and View Deal button separated */
.nearby-card{
  position:relative;
}
.nearby-card .nearby-save-heart{
  top:10px!important;
  right:10px!important;
}
.nearby-card .viewdeal{
  position:relative!important;
  right:auto!important;
  top:auto!important;
  bottom:auto!important;
  flex:0 0 auto;
  margin-right:10px!important;
  margin-left:6px!important;
  white-space:nowrap;
}
.nearby-card .nearby-copy{
  min-width:0;
  padding-right:2px;
}


.availability-time-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
.availability-time-grid small{
  display:block;
  margin-bottom:5px;
  color:#666;
  font-size:11px;
  font-weight:800;
}
.availability-time-grid input.invalid{
  border-color:#d92d20!important;
  box-shadow:0 0 0 3px #d92d2018!important;
}
.availability-error{
  display:none;
  margin-top:8px;
  padding:9px 11px;
  border-radius:11px;
  background:#fff0f0;
  color:#b42318;
  font-size:11px;
  font-weight:800;
  line-height:1.35;
}
.availability-error.show{display:block}
.admin-field input.invalid,.admin-field select.invalid,.admin-field textarea.invalid{
  border-color:#d92d20!important;
  box-shadow:0 0 0 3px #d92d2018!important;
}
.admin-location-picker.invalid{
  border-color:#d92d20!important;
  box-shadow:0 0 0 3px #d92d2018!important;
}
.admin-form-error-summary{
  display:none;
  margin:0 0 16px;
  padding:11px 13px;
  border-radius:12px;
  background:#fff0f0;
  color:#a61b1b;
  font-size:12px;
  font-weight:800;
  line-height:1.4;
}
.admin-form-error-summary.show{display:block}
.admin-btn[disabled]{opacity:.5;cursor:not-allowed;filter:saturate(.55)}


.admin-notification-tabs{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin-bottom:16px;
}
.admin-notification-tab{
  border:1px solid #e2e2dd;
  background:#f7f8f4;
  border-radius:999px;
  padding:10px 12px;
  font-weight:850;
}
.admin-notification-tab.active{
  background:#111;
  color:#fff;
  border-color:#111;
}
.admin-notification-preview{
  margin:16px 0;
  border:1px solid #e8e8e4;
  border-radius:18px;
  padding:14px;
  background:#fbfcf8;
}
.admin-notification-preview small{
  display:block;
  color:#999;
  font-size:9px;
  font-weight:900;
  letter-spacing:.08em;
  margin-bottom:7px;
}
.admin-notification-preview strong{
  display:block;
  font-size:15px;
  margin-bottom:5px;
}
.admin-notification-preview p{
  margin:0;
  color:#555;
  font-size:12px;
  line-height:1.4;
}


.admin-schedule-card{
  background:#fafbf8;
  border-color:#e8e9e4;
  box-shadow:none;
}
.weekday-picker{
  display:grid;
  grid-template-columns:repeat(7,1fr);
  gap:6px;
}
.weekday-picker button{
  border:1px solid #deded9;
  background:#fff;
  border-radius:10px;
  padding:9px 3px;
  font-size:10px;
  font-weight:850;
}
.weekday-picker button.active{
  background:var(--lime);
  border-color:var(--lime);
  color:#111;
}
.scheduled-notification{
  background:#fff;
  border:1px solid #ecece8;
  border-radius:16px;
  padding:13px;
}
.scheduled-notification h3{
  margin:0 0 4px;
  font-size:15px;
}
.scheduled-notification p{
  margin:4px 0;
  color:#666;
  font-size:12px;
}
.scheduled-meta{
  display:inline-block;
  margin-top:6px;
  background:#f3f4f0;
  border-radius:999px;
  padding:5px 8px;
  font-size:10px;
  font-weight:850;
}


.deal-image-upload{
  display:flex;
  align-items:center;
  gap:9px;
  flex-wrap:wrap;
}
.deal-image-upload input[type="file"]{
  position:absolute;
  width:1px;
  height:1px;
  opacity:0;
  pointer-events:none;
}
.image-file-name{
  font-size:11px;
  color:#777;
  min-width:0;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.listing-image-preview{
  display:none;
  width:100%;
  height:180px;
  margin-top:11px;
  border-radius:16px;
  overflow:hidden;
  border:1px solid #e5e5e0;
  background:#f5f6f2;
  background-size:cover;
  background-position:center;
  align-items:center;
  justify-content:center;
  color:#999;
  font-size:12px;
}
.listing-image-preview.has-image{
  display:flex;
}
.admin-help{
  display:block;
  margin-top:7px;
  color:#888;
  font-size:10px;
}


.image-source-tabs{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin-bottom:12px;
}
.image-source-tab{
  border:1px solid #deded9;
  background:#f7f8f4;
  border-radius:999px;
  padding:10px 12px;
  font-size:12px;
  font-weight:850;
  cursor:pointer;
}
.image-source-tab.active{
  background:#111;
  color:#fff;
  border-color:#111;
}
.image-source-status{
  margin-top:8px;
  color:#777;
  font-size:10px;
  font-weight:700;
}


.admin-check-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  min-height:46px;
  margin-bottom:0!important;
  padding:10px 0;
  border-bottom:1px solid #efefec;
}
.admin-check-row label{
  margin:0!important;
  font-size:13px!important;
  font-weight:800!important;
  color:#333!important;
  line-height:1.25;
  flex:1;
}
.admin-check-row input[type="checkbox"]{
  width:20px!important;
  height:20px!important;
  margin:0!important;
  flex:0 0 20px;
  accent-color:#111;
  cursor:pointer;
}
.admin-check-row + .admin-check-row{
  margin-top:0!important;
}


.confirm-modal-backdrop{
  position:fixed;
  inset:0;
  z-index:9999;
  background:rgba(0,0,0,.42);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:20px;
}
.confirm-modal{
  width:min(100%,360px);
  background:#fff;
  border-radius:24px;
  padding:22px;
  box-shadow:0 24px 70px rgba(0,0,0,.22);
  text-align:center;
}
.confirm-modal-icon{
  width:42px;
  height:42px;
  border-radius:50%;
  margin:0 auto 12px;
  display:grid;
  place-items:center;
  background:#fff1f1;
  color:#b42318;
  font-size:22px;
  font-weight:900;
}
.confirm-modal h2{
  margin:0 0 8px;
  font-size:19px;
  line-height:1.25;
}
.confirm-modal p{
  margin:0 0 18px;
  color:#666;
  font-size:12px;
}
.confirm-modal-actions{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px;
}
.confirm-modal-actions .admin-btn{
  width:100%;
}

.claim-confirm-icon{
  background:#efffd6;
  color:#4f7200;
}
.redeem-status-pill{
  display:inline-flex;
  align-items:center;
  gap:7px;
  margin:8px auto 14px;
  padding:7px 11px;
  border-radius:999px;
  background:#e9ffd0;
  color:#345500;
  font-size:11px;
  font-weight:900;
  letter-spacing:.04em;
}
.redeem-status-dot{
  width:8px;
  height:8px;
  border-radius:50%;
  background:#79b900;
  box-shadow:0 0 0 4px rgba(121,185,0,.12);
}
.redeem-instruction{
  max-width:320px;
  margin:0 auto 14px;
  color:#555;
  line-height:1.5;
}
.redeem-activation-meta{
  max-width:320px;
  margin:16px auto 0;
  padding:12px 14px;
  border:1px solid #e6e6e2;
  border-radius:16px;
  background:#fafaf8;
  font-size:12px;
  color:#555;
}
.redeem-activation-meta strong{
  color:#111;
}
.redeem-no-qr{
  max-width:280px;
  margin:20px auto;
}

.qr-option-block{
  margin-top:4px;
}
.listing-qr-preview{
  display:none;
  width:150px;
  height:150px;
  margin-top:11px;
  border-radius:14px;
  overflow:hidden;
  border:1px solid #e5e5e0;
  background:#fff;
  background-size:contain;
  background-repeat:no-repeat;
  background-position:center;
  align-items:center;
  justify-content:center;
  color:#999;
  font-size:11px;
}
.listing-qr-preview.has-image{
  display:flex;
}
.deal-qr-section{
  margin-top:20px;
  padding:16px;
  border:1px solid #ecece7;
  border-radius:18px;
  background:#fafbf8;
  text-align:center;
}
.deal-qr-section h2{
  margin:0 0 5px;
}
.deal-qr-section p{
  margin:0 0 12px;
  color:#666;
  font-size:12px;
}
.deal-qr-section img{
  width:180px;
  height:180px;
  max-width:100%;
  object-fit:contain;
  background:#fff;
  border-radius:14px;
  border:1px solid #e5e5e0;
  padding:8px;
}


.qr{display:none!important}
.redeem-qr-wrap{
  width:230px;
  height:230px;
  margin:24px auto;
  padding:12px;
  border-radius:22px;
  background:#fff;
  border:1px solid #e7e7e2;
  box-shadow:0 10px 30px #0002;
  align-items:center;
  justify-content:center;
}
.redeem-qr-image{
  width:100%;
  height:100%;
  object-fit:contain;
  display:block;
}
.redeem-no-qr{
  margin:24px auto;
  max-width:280px;
  padding:16px;
  border-radius:16px;
  background:#f4f5f1;
  color:#666;
  font-size:13px;
  font-weight:750;
}


.listing-status-chip{
  display:inline-flex;
  align-items:center;
  margin-left:6px;
  padding:4px 7px;
  border-radius:999px;
  font-size:9px;
  font-weight:900;
  letter-spacing:.03em;
  background:#eef0eb;
  color:#555;
}
.listing-status-chip.listed{
  background:#edffd0;
  color:#365600;
}
.listing-status-chip.unlisted{
  background:#fff0f0;
  color:#a32020;
}
.listing-status-chip.trending{
  background:#fff3c4;
  color:#765500;
}
.listing-status-chip.scheduled{
  background:#eef4ff;
  color:#315b9a;
}
.listing-status-chip.expired{
  background:#f1f1f1;
  color:#666;
}




.admin-subsection-divider{
  height:1px;
  background:#ecece7;
  margin:18px 0;
}
.trending-order-builder{
  display:flex;
  flex-direction:column;
  gap:8px;
}
.trending-order-item{
  display:grid;
  grid-template-columns:28px 1fr auto;
  align-items:center;
  gap:10px;
  padding:10px 11px;
  border:1px solid #e8e8e3;
  border-radius:14px;
  background:#fafbf8;
}
.trending-order-number{
  width:28px;
  height:28px;
  border-radius:50%;
  display:grid;
  place-items:center;
  background:#111;
  color:#fff;
  font-size:11px;
  font-weight:900;
}
.trending-order-copy strong{
  display:block;
  font-size:12px;
  margin-bottom:2px;
}
.trending-order-copy span{
  display:block;
  color:#777;
  font-size:10px;
}
.trending-order-buttons{
  display:flex;
  gap:5px;
}
.trending-order-buttons button{
  width:30px;
  height:30px;
  border-radius:9px;
  border:1px solid #deded9;
  background:#fff;
  font-weight:900;
  cursor:pointer;
}
.trending-schedule-card{
  border:1px solid #ecece7;
  border-radius:15px;
  padding:12px;
  background:#fff;
}
.trending-schedule-card h3{
  margin:0 0 4px;
  font-size:14px;
}
.trending-schedule-card p{
  margin:3px 0;
  color:#666;
  font-size:11px;
  line-height:1.4;
}


.auth-page{
  min-height:calc(100vh - 10px);
  display:flex;
  align-items:center;
  justify-content:center;
  padding:28px 18px 36px;
  background:linear-gradient(180deg,#f7f9f1 0%,#ffffff 70%);
}
.auth-card{
  width:100%;
  max-width:390px;
  background:#fff;
  border:1px solid #ecece7;
  border-radius:28px;
  padding:24px 20px;
  box-shadow:0 18px 50px rgba(0,0,0,.08);
}
.auth-logo{
  width:54px;
  height:54px;
  display:grid;
  place-items:center;
  margin:0 auto 14px;
  border-radius:17px;
  background:var(--lime);
  color:#111;
  font-size:25px;
  font-weight:950;
}
.auth-title{
  text-align:center;
  margin-bottom:22px;
}
.auth-title h1{
  margin:0 0 7px;
  font-size:24px;
}
.auth-title p{
  margin:0;
  color:#666;
  font-size:12px;
  line-height:1.5;
}
.auth-primary,
.auth-secondary{
  width:100%;
  min-height:46px;
}
.auth-divider{
  display:flex;
  align-items:center;
  gap:10px;
  margin:18px 0 12px;
  color:#999;
  font-size:10px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.05em;
}
.auth-divider:before,
.auth-divider:after{
  content:"";
  height:1px;
  flex:1;
  background:#e9e9e5;
}
.auth-note{
  margin:14px 0 0;
  color:#777;
  font-size:10px;
  line-height:1.45;
  text-align:center;
}
.auth-back{
  border:0;
  background:transparent;
  padding:0;
  margin:0 0 18px;
  font-size:12px;
  font-weight:850;
  cursor:pointer;
}


.auth-link-row{
  display:flex;
  justify-content:flex-end;
  margin:-4px 0 14px;
}
.auth-link{
  border:0;
  background:transparent;
  color:#6d8e00;
  padding:0;
  font:inherit;
  font-size:11px;
  font-weight:900;
  cursor:pointer;
}
.auth-status-icon{
  width:58px;
  height:58px;
  display:grid;
  place-items:center;
  margin:0 auto 14px;
  border-radius:50%;
  background:#f1f7d8;
  color:#111;
  font-size:25px;
  font-weight:950;
}
.auth-status-icon.error{
  background:#fff0f0;
  color:#b42318;
}
.auth-status-icon.success{
  background:#edffd0;
  color:#365600;
}
.auth-info-card{
  margin:0 0 16px;
  padding:13px 14px;
  border-radius:15px;
  background:#f7f8f4;
  color:#555;
  font-size:11px;
  line-height:1.5;
  text-align:center;
}
.auth-info-card strong{color:#222}
.auth-actions-stack{
  display:grid;
  gap:9px;
}
.auth-dev-tools{
  display:none;
  margin-top:18px;
  padding-top:14px;
  border-top:1px dashed #d9dad4;
  text-align:center;
}

html.prototype-test-mode .auth-dev-tools{display:block}
.auth-dev-tools small{
  display:block;
  margin-bottom:8px;
  color:#999;
  font-size:9px;
  font-weight:800;
  text-transform:uppercase;
  letter-spacing:.05em;
}
.auth-dev-tools button{
  border:0;
  background:transparent;
  color:#777;
  padding:5px 7px;
  font-size:10px;
  font-weight:850;
  cursor:pointer;
}

.admin-count-badge{
  min-width:32px;
  height:32px;
  padding:0 9px;
  display:grid;
  place-items:center;
  border-radius:999px;
  background:#111;
  color:#fff;
  font-size:11px;
  font-weight:900;
}
.student-account-card{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:13px;
  border:1px solid #ecece7;
  border-radius:16px;
  background:#fff;
}
.student-account-card + .student-account-card{
  margin-top:8px;
}
.student-account-copy{
  min-width:0;
  flex:1;
}
.student-account-copy strong{
  display:block;
  font-size:13px;
  word-break:break-word;
}
.student-account-copy span{
  display:block;
  margin-top:4px;
  color:#777;
  font-size:10px;
}
.student-account-verified{
  display:inline-flex!important;
  width:max-content;
  margin-top:6px!important;
  padding:4px 7px;
  border-radius:999px;
  background:#edffd0;
  color:#365600!important;
  font-size:9px!important;
  font-weight:900;
}
.student-account-card .admin-btn{
  flex:0 0 auto;
}

/* Admin Student Accounts dashboard button + dedicated searchable page */
.admin-accounts-button{
  width:100%;
  border:1px solid #ecece8;
  background:#fff;
  border-radius:22px;
  padding:17px 18px;
  display:flex;
  align-items:center;
  gap:14px;
  text-align:left;
  cursor:pointer;
  box-shadow:0 8px 20px #0000000d;
  font:inherit;
  color:inherit;
}
.admin-accounts-button:active{transform:scale(.99)}
.admin-accounts-button-copy{flex:1;min-width:0}
.admin-accounts-button-copy strong{display:block;font-size:18px;margin-bottom:4px}
.admin-accounts-button-copy span{display:block;color:#777;font-size:11px;line-height:1.4}
.admin-accounts-button-side{display:flex;align-items:center;gap:10px;flex:none}
.admin-accounts-chevron{font-size:25px;line-height:1;color:#8a8a84;font-weight:500}

.admin-student-accounts-page{padding:16px 18px 110px}
.admin-student-accounts-head{display:flex;align-items:center;gap:13px;margin-bottom:8px}
.admin-student-accounts-head h1{margin:0;font-size:27px;letter-spacing:-.7px}
.admin-student-accounts-intro{margin:0 0 16px;color:#777;font-size:12px;line-height:1.45}
.admin-account-search-wrap{
  position:relative;
  margin-bottom:12px;
}
.admin-account-search-icon{
  position:absolute;
  left:15px;
  top:50%;
  transform:translateY(-50%);
  color:#888;
  font-size:17px;
  pointer-events:none;
}
.admin-account-search{
  width:100%;
  height:50px;
  border:1px solid #deded9;
  border-radius:999px;
  padding:0 44px 0 43px;
  font:inherit;
  font-size:14px;
  background:#fff;
  outline:none;
}
.admin-account-search:focus{border-color:#b8dc28;box-shadow:0 0 0 3px #caff1226}
.admin-account-search-clear{
  position:absolute;
  right:7px;
  top:50%;
  transform:translateY(-50%);
  width:36px;
  height:36px;
  border:0;
  border-radius:50%;
  background:#f2f3ef;
  color:#555;
  font-size:18px;
  cursor:pointer;
}
.admin-account-summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:10px;
  margin:0 2px 12px;
  color:#777;
  font-size:11px;
}
.admin-account-summary strong{color:#333;font-size:12px}
.student-account-no-results{
  padding:24px 16px;
  border:1px dashed #d9dad4;
  border-radius:18px;
  color:#8a8a84;
  text-align:center;
  font-size:13px;
  background:#fafbf8;
}





#deal .back{
  margin-bottom:7px;
}
#deal #dealDetailImage{
  margin-top:4px;
}


#account .offer-panel{
  margin-bottom:16px!important;
}

#account .saved-list{
  display:flex;
  flex-direction:column;
  gap:16px!important;
  margin-top:0!important;
}

#account .saved-item{
  margin:0!important;
  padding-top:16px!important;
  padding-bottom:16px!important;
}

#account .saved-item strong{
  display:block;
  margin:0 0 6px!important;
  line-height:1.25;
}

#account .saved-item p{
  margin:0!important;
  line-height:1.35;
}


.guest-continue-btn{
  width:100%;
  margin-top:10px;
}
.guest-deal-lock{
  display:inline-flex;
  align-items:center;
  gap:5px;
  margin-top:7px;
  padding:5px 8px;
  border-radius:999px;
  background:#f1f2ee;
  color:#555;
  font-size:9px;
  font-weight:900;
  letter-spacing:.02em;
}
.guest-business-card{
  cursor:pointer;
}
.guest-business-card .deal-offer,
.guest-business-card .offer-copy,
.guest-business-card [data-offer-text]{
  display:none!important;
}
.guest-lock-screen{
  text-align:center;
  padding:38px 20px;
}
.guest-lock-screen h2{
  margin:0 0 8px;
}
.guest-lock-screen p{
  color:#666;
  line-height:1.5;
  margin:0 0 16px;
}


#categoryResultsList{
  display:flex;
  flex-direction:column;
  gap:10px;
}
.category-result-card{
  display:grid;
  grid-template-columns:78px 1fr auto;
  align-items:center;
  gap:12px;
  padding:10px;
  border:1px solid #ecece7;
  border-radius:17px;
  background:#fff;
  cursor:pointer;
  box-shadow:0 6px 16px rgba(0,0,0,.04);
}
.category-result-image{
  width:78px;
  height:78px;
  border-radius:14px;
  background:#eef0eb;
  background-size:cover;
  background-position:center;
}
.category-result-copy{
  min-width:0;
}
.category-result-copy strong{
  display:block;
  margin:0 0 4px;
  font-size:13px;
  line-height:1.25;
}
.category-result-copy p{
  margin:0 0 4px;
  color:#89b900;
  font-size:12px;
  font-weight:850;
  line-height:1.3;
}
.category-result-copy small{
  display:block;
  color:#777;
  font-size:10px;
  line-height:1.3;
}
.category-result-action{
  max-width:78px;
  text-align:right;
  color:#111;
  font-size:10px;
  font-weight:900;
  line-height:1.25;
}


/* Point 5: complete listing/deal data model */
.listing-date-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.listing-date-grid small{display:block;margin-bottom:5px;color:#666;font-size:11px;font-weight:800}
.listing-weekday-help{display:block;margin-top:7px;color:#888;font-size:10px}
.deal-extra-row[hidden]{display:none!important}
.deal-extra-row p{white-space:pre-line}

/* Point 11: notification integrity and unavailable deal history */
.notification-unavailable{opacity:.82}
.notification-unavailable-note{display:block;color:#a44;font-weight:800;margin:2px 0 5px}
.notification-action:disabled{opacity:.5;cursor:not-allowed}


/* Point 12: complete student account experience */
.account-section-label{margin:22px 2px 9px;color:#777;font-size:11px;font-weight:900;letter-spacing:.5px;text-transform:uppercase}
.account-action-card{display:flex;align-items:center;gap:12px;cursor:pointer;text-align:left;width:100%}
.account-action-card .account-action-copy{flex:1;min-width:0}
.account-action-card .account-action-copy strong{display:block;margin:0 0 5px!important}
.account-action-card .account-action-copy p{margin:0!important;color:#666;font-size:13px}
.account-action-arrow{font-size:20px;color:#aaa;font-weight:900;flex:none}
.account-danger{border-color:#f2d7d7!important;background:#fffafa!important}
.account-danger strong{color:#a62828}
.account-detail-grid{display:grid;gap:12px;margin-top:18px}
.account-detail-card{padding:15px;border:1px solid #eee;border-radius:18px;background:#fff;box-shadow:0 8px 20px #0000000d}
.account-detail-card small{display:block;margin-bottom:5px;color:#777;font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.4px}
.account-detail-card strong{display:block;font-size:15px;word-break:break-word}
.account-subpage{padding:16px 18px 105px}
.account-subpage h1{margin:18px 0 6px;font-size:28px;letter-spacing:-.7px}
.account-subpage .account-intro{margin:0 0 20px;color:#666;font-size:13px;line-height:1.5}
.account-pref-list{display:grid;gap:12px}
.account-pref-row{display:flex;align-items:center;gap:14px;padding:16px;border:1px solid #eee;border-radius:18px;background:#fff;box-shadow:0 8px 20px #0000000d}
.account-pref-copy{flex:1;min-width:0}
.account-pref-copy strong{display:block;margin-bottom:4px;font-size:15px}
.account-pref-copy p{margin:0;color:#666;font-size:12px;line-height:1.4}
.account-switch{position:relative;width:48px;height:28px;flex:none}
.account-switch input{position:absolute;opacity:0;pointer-events:none}
.account-switch span{position:absolute;inset:0;border-radius:999px;background:#d9d9d5;transition:.18s;cursor:pointer}
.account-switch span:after{content:'';position:absolute;width:22px;height:22px;left:3px;top:3px;border-radius:50%;background:#fff;box-shadow:0 2px 6px #0003;transition:.18s}
.account-switch input:checked + span{background:#b9ef00}
.account-switch input:checked + span:after{transform:translateX(20px)}
.account-note{margin-top:14px;padding:12px 14px;border-radius:14px;background:#f5f6f2;color:#666;font-size:11px;line-height:1.5}
.account-form-card{padding:17px;border:1px solid #eee;border-radius:20px;background:#fff;box-shadow:0 8px 20px #0000000d}
.account-form-card .admin-field:last-of-type{margin-bottom:0}
.account-form-actions{display:grid;gap:10px;margin-top:16px}
.account-text-page{padding:17px;border:1px solid #eee;border-radius:20px;background:#fff;box-shadow:0 8px 20px #0000000d;color:#444;font-size:13px;line-height:1.6}
.account-text-page h2{margin:18px 0 6px;color:#111;font-size:16px}
.account-text-page h2:first-child{margin-top:0}
.account-text-page p{margin:0 0 10px}
.account-text-page ul{margin:6px 0 12px;padding-left:20px}
.account-text-page li{margin:5px 0}
.account-delete-warning{padding:16px;border:1px solid #f0d0d0;border-radius:18px;background:#fff8f8;color:#6f3030;font-size:13px;line-height:1.5;margin-bottom:14px}
.account-delete-warning strong{display:block;color:#991f1f;margin-bottom:5px}
.account-link-button{border:0;background:transparent;padding:7px 0;color:#6e9000;font-weight:900;text-align:left;cursor:pointer}



/* ===== Point 16: responsive visual polish ===== */
html,body{min-width:0;min-height:100%;}
body{min-height:100dvh;}
.phone{min-height:100dvh;}
.screen,.nearby-copy,.deal-info,.notification-copy,.account-action-copy,.admin-location-copy,.student-account-copy{min-width:0;}
.deal-info h3,.nearby-copy h3,.notification-copy strong,.notification-copy p,.account-action-copy strong,.account-action-copy p,.admin-listing h3,.admin-listing p,.scheduled-notification h3,.scheduled-notification p,.trending-schedule-card h3,.trending-schedule-card p{overflow-wrap:anywhere;word-break:normal;}
.deal-meta,.whats-meta{gap:8px;flex-wrap:wrap;}
.deal-meta span,.whats-meta span{min-width:0;}
.deal-meta span:last-child{margin-left:auto;text-align:right;}
.confirm-modal{max-height:calc(100dvh - 32px);overflow-y:auto;overscroll-behavior:contain;}
.back,.action,.viewdeal,.admin-btn,.cta,.location-permission-actions button{min-height:44px;}
.admin-listing-top,.admin-toolbar{min-width:0;}

@media (max-width:430px){
  input,select,textarea,.admin-account-search{font-size:16px!important;}
  .map-canvas,#adminLocationMap,.map-error{height:clamp(360px,58dvh,500px)!important;}
  .admin-field input,.admin-field select,.admin-field textarea{max-width:100%;}
}

@media (max-width:370px){
  .header{padding:16px 14px 14px;gap:10px;}
  .logo{width:41px;height:41px;border-radius:12px;font-size:24px;}
  .brand{gap:9px;min-width:0;}
  .brand-text{min-width:0;}
  .brand-text strong{font-size:22px;}
  .brand-text small{font-size:11px;white-space:nowrap;}
  .bell{width:42px;height:42px;flex:none;}

  .hero{margin:0 12px;min-height:180px;padding:24px 138px 22px 20px;}
  .hero h1{font-size:25px;letter-spacing:-.7px;}
  .hero p{font-size:13px;line-height:1.4;}
  .student{right:2px;transform:scale(.82);transform-origin:right bottom;}
  .offer-bubble{right:77px;}

  .search-wrap{margin:18px 12px 8px;gap:8px;}
  .search{height:54px;padding:0 14px;gap:8px;min-width:0;}
  .search span{font-size:20px;}
  .filter{width:54px;height:54px;flex:none;}

  .section,.subpage,.all-page,.whats-page,.filter-page,.notifications-page,.account-subpage,.admin-page,.admin-student-accounts-page,.admin-map-page,.map-page{padding-left:12px!important;padding-right:12px!important;}
  .section-head h2{font-size:20px;}
  .section-head{gap:8px;}
  .see-all{font-size:13px;white-space:nowrap;}

  .category-row{gap:6px;}
  .category-card{height:84px;border-radius:16px;padding:4px;font-size:9px;}
  .category-card .icon{font-size:25px;}
  .trending{grid-auto-columns:78%;gap:10px;}
  .deal-card{min-height:230px;}
  .deal-info h3{font-size:18px;}
  .deal-meta{font-size:11px;}

  .nearby-card{display:grid;grid-template-columns:72px minmax(0,1fr);gap:10px;align-items:center;padding:10px;}
  .nearby-card .nearby-img{width:72px;height:72px;border-radius:14px;}
  .nearby-card .nearby-copy{padding-right:30px;}
  .nearby-copy h3{font-size:17px;margin-bottom:4px;}
  .nearby-copy p{font-size:13px;}
  .nearby-card .viewdeal{grid-column:1/-1;width:100%;margin:0!important;min-height:42px;}
  .nearby-card .nearby-save-heart{top:8px!important;right:8px!important;}

  .offer-panel{padding:18px;border-radius:20px;}
  .offer-panel h1{font-size:27px;}
  .deal-primary-actions{align-items:stretch;}
  .deal-primary-actions .action,.deal-save-button{flex:1 1 125px;text-align:center;}
  .deal-detail-image{height:185px;}
  .deal-where-head{align-items:flex-start;flex-wrap:wrap;}

  .all-page-head,.whats-head,.filter-head,.notifications-head,.admin-head,.admin-map-head,.admin-student-accounts-head{gap:9px;align-items:center;}
  .all-page-head h1,.whats-head h1,.filter-head h1,.notifications-head h1,.admin-head h1,.admin-map-head h1,.admin-student-accounts-head h1{font-size:24px;letter-spacing:-.5px;}
  .all-page-grid{gap:8px;}
  .all-category{min-height:118px;padding:10px;border-radius:18px;font-size:13px;}
  .all-category .big-icon{font-size:32px;margin-bottom:7px;}
  .all-category small{font-size:10px;}
  .whats-card{padding:16px;min-height:170px;}
  .whats-card h3{font-size:20px;}
  .whats-meta{align-items:flex-start;}

  .availability-time-grid,.listing-date-grid{grid-template-columns:1fr!important;}
  .weekday-picker{gap:6px;}
  .weekday-picker button{min-width:42px;}
  .admin-toolbar,.admin-listing-top{align-items:flex-start;flex-wrap:wrap;}
  .admin-toolbar .admin-btn{flex:none;}
  .admin-stats{gap:8px;}
  .admin-stat{padding:11px;}
  .admin-stat strong{font-size:20px;}
  .admin-listing{padding:12px;}
  .student-account-card{align-items:flex-start;flex-wrap:wrap;}
  .student-account-card .admin-btn{width:100%;}
  .admin-account-summary{align-items:flex-start;flex-direction:column;gap:3px;}
  .admin-map-actions,.map-actions{flex-direction:column;}
  .admin-map-actions button,.map-actions button{width:100%;}
  .admin-notification-tabs{gap:6px;}
  .admin-notification-tab{padding:10px 8px;font-size:12px;}
  .trending-order-item{align-items:flex-start;flex-wrap:wrap;}
  .trending-order-buttons{width:100%;justify-content:flex-end;}

  .account-pref-row{padding:14px;gap:10px;}
  .account-switch{width:46px;}
  .account-subpage h1{font-size:26px;}
  .confirm-modal{width:calc(100% - 24px);padding:20px 16px;border-radius:20px;}
  .confirm-modal-actions{flex-direction:column-reverse;}
  .confirm-modal-actions .admin-btn{width:100%;}
  .qr,.redeem-qr-wrap{max-width:100%;}
  .redeem-qr-image{max-width:100%;height:auto;}
}

/* Keep the student experience phone-sized on desktop, but let the Admin CMS use the screen. */
@media (max-width:430px) and (max-height:600px){
  .auth-page{align-items:flex-start;padding-top:16px;padding-bottom:24px;}
}

@media (min-width:760px){
  .phone.admin-shell{width:min(1180px,calc(100% - 40px));max-width:none;margin:20px auto;min-height:calc(100dvh - 40px);border-radius:26px;overflow:hidden;box-shadow:0 18px 60px #0002;}
  .phone.admin-shell .screen.active{min-height:calc(100dvh - 40px);}
  .phone.admin-shell #adminDashboard .admin-page{max-width:1100px;margin:0 auto;padding:30px 32px 48px;}
  .phone.admin-shell #adminDashboard .admin-stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;}
  .phone.admin-shell #adminDashboard #adminListings{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;}
  .phone.admin-shell #adminDashboard .admin-card{padding:20px;}
  .phone.admin-shell #adminDashboard .admin-head h1{font-size:32px;}
  .phone.admin-shell #adminStudentAccounts .admin-student-accounts-page{max-width:900px;margin:0 auto;padding:30px 32px 48px;}
  .phone.admin-shell #adminListingForm .admin-page,
  .phone.admin-shell #adminNotifications .admin-page,
  .phone.admin-shell #adminTrendingSchedule .admin-page{max-width:820px;margin:0 auto;padding:30px 32px 48px;}
  .phone.admin-shell #adminMapPicker .admin-map-page{max-width:980px;margin:0 auto;padding:30px 32px 48px;}
  .phone.admin-shell #adminMapPicker #adminLocationMap{height:min(620px,66dvh)!important;}
  .phone.admin-shell .admin-field input,
  .phone.admin-shell .admin-field select,
  .phone.admin-shell .admin-field textarea{font-size:16px;}
  .phone.admin-shell .availability-time-grid,
  .phone.admin-shell .listing-date-grid{gap:14px;}
}


/* Production app shell */
[hidden]{display:none!important}.api-loading{opacity:.55;pointer-events:none}.desktop-admin-grid{display:grid;gap:16px}.field-help{font-size:11px;color:#777;margin-top:5px}.admin-login-note{font-size:11px;color:#777;margin-top:12px}.top-actions{display:flex;gap:8px;align-items:center}.plain-link{border:0;background:transparent;color:#6d8e00;font-weight:900;cursor:pointer}.upload-preview{width:100%;height:170px;background:#f2f3ef center/cover no-repeat;border-radius:16px;border:1px solid #e7e7e3;margin-top:10px}.offer-image{height:170px;background:#eee center/cover no-repeat;border-radius:18px;margin-bottom:10px}.notification-badge-inline{display:inline-grid;place-items:center;min-width:22px;height:22px;padding:0 6px;border-radius:999px;background:var(--lime);font-size:10px;font-weight:900}.admin-section-title{display:flex;justify-content:space-between;align-items:center;gap:10px;margin:24px 0 12px}.modal-sheet{position:fixed;inset:0;background:#0007;z-index:200;display:grid;place-items:center;padding:20px}.modal-card{width:min(100%,560px);max-height:90vh;overflow:auto;background:#fff;border-radius:24px;padding:20px}.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:16px}.weekday-checkboxes{display:flex;flex-wrap:wrap;gap:8px}.weekday-checkboxes label{display:flex;align-items:center;gap:5px;background:#f5f5f2;border-radius:999px;padding:8px 10px;font-size:12px;font-weight:800}.admin-shell .bottom-nav{display:none!important}@media(min-width:760px){.desktop-admin-grid{grid-template-columns:1fr 1fr}.admin-form-two{display:grid;grid-template-columns:1fr 1fr;gap:12px}.admin-shell .admin-page{max-width:1100px;margin:auto;padding:30px}.admin-shell .admin-list{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Admin address-to-map search */
.admin-address-search{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:9px;align-items:stretch}
.admin-address-search .admin-btn{min-height:48px;white-space:nowrap}
#listingGeocodeStatus.is-error{color:#b42318;font-weight:800}
#listingGeocodeStatus.is-success{color:#4f7200;font-weight:800}
@media(max-width:560px){.admin-address-search{grid-template-columns:1fr}.admin-address-search .admin-btn{width:100%}}

/* ===== UniLocal Admin Portal v2 ===== */
.admin-sidebar{background:#151515;color:#fff;padding:22px 14px;display:flex;flex-direction:column;gap:20px;min-width:0}
.admin-sidebar-brand{display:flex;align-items:center;gap:11px;padding:0 8px 8px}.admin-sidebar-logo{width:42px;height:42px;border-radius:13px;background:var(--lime);color:#111;display:grid;place-items:center;font-size:22px;font-weight:950;flex:none}.admin-sidebar-brand strong{display:block;font-size:18px;line-height:1.1}.admin-sidebar-brand small{display:block;color:#9a9a9a;font-size:10px;margin-top:4px;text-transform:uppercase;letter-spacing:.08em}
.admin-sidebar-nav{display:flex;flex-direction:column;gap:4px}.admin-sidebar-nav button{width:100%;min-height:44px;border:0;background:transparent;color:#c8c8c8;border-radius:12px;padding:10px 12px;display:flex;align-items:center;gap:10px;text-align:left;font:inherit;font-size:13px;font-weight:800;cursor:pointer}.admin-sidebar-nav button:hover{background:#222;color:#fff}.admin-sidebar-nav button.active{background:var(--lime);color:#111}.admin-sidebar-nav button[hidden]{display:none!important}
.admin-sidebar-footer{margin-top:auto;padding:12px 8px 4px;border-top:1px solid #2b2b2b}.admin-current-user{min-width:0;margin-bottom:12px}.admin-current-user small{display:block;color:#8e8e8e;font-size:9px;text-transform:uppercase;letter-spacing:.07em}.admin-current-user strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;margin:5px 0}.admin-current-user span{display:inline-block;background:#2a2a2a;border-radius:999px;padding:4px 7px;color:#d8d8d8;font-size:9px;font-weight:850}.admin-sidebar-logout{width:100%;border:1px solid #333;background:#202020;color:#fff;border-radius:11px;padding:10px;font-weight:800;cursor:pointer}
.admin-page-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:22px}.admin-page-heading h1{margin:2px 0 5px;font-size:30px;letter-spacing:-.8px}.admin-page-heading p{margin:0;color:#707070;font-size:12px;line-height:1.5}.admin-eyebrow{font-size:9px;font-weight:900;letter-spacing:.12em;color:#86ad00}.admin-dashboard-grid{display:grid;gap:16px}.admin-section-title.compact{margin:0 0 13px}.admin-section-title.compact h2{margin:0;font-size:18px}.admin-section-title.compact p{margin:4px 0 0;color:#777;font-size:11px}.admin-listing.compact{padding:12px;box-shadow:none;background:#fafbf8}.admin-listing.compact+.admin-listing.compact{margin-top:8px}
.admin-activity-list{display:grid;gap:2px}.admin-activity-item{display:flex;gap:10px;align-items:flex-start;padding:10px 2px;border-bottom:1px solid #efefec}.admin-activity-item:last-child{border-bottom:0}.admin-activity-dot{width:9px;height:9px;border-radius:50%;background:var(--lime);border:1px solid #9bbb19;flex:none;margin-top:4px}.admin-activity-item strong{display:block;font-size:12px;text-transform:capitalize}.admin-activity-item p{margin:4px 0 0;color:#888;font-size:10px}
.admin-search-toolbar{background:#fff;border:1px solid #ecece8;border-radius:17px;padding:10px;margin-bottom:16px}.admin-search-input,.admin-search-toolbar select{height:44px;border:1px solid #dfdfda;border-radius:12px;padding:0 13px;background:#fff;font:inherit;font-size:13px;outline:none}.admin-search-input{flex:1;min-width:170px}.admin-search-input:focus,.admin-search-toolbar select:focus{border-color:#b8dc28;box-shadow:0 0 0 3px #caff1226}.admin-offer-grid{display:grid;gap:14px}
.admin-category-row,.admin-user-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;align-items:center;gap:13px;padding:13px;border:1px solid #ecece8;border-radius:16px;background:#fff}.admin-category-icon,.admin-user-avatar{width:44px;height:44px;border-radius:13px;background:#f2f4ed;display:grid;place-items:center;font-size:23px;flex:none}.admin-user-avatar{background:#111;color:#fff;font-size:16px;font-weight:900}.admin-category-copy,.admin-user-copy{min-width:0}.admin-category-copy strong,.admin-user-copy strong{display:block;font-size:13px}.admin-category-copy span,.admin-user-copy span{display:block;color:#6f6f6f;font-size:10px;margin-top:4px}.admin-category-copy small,.admin-user-copy small{display:block;color:#999;font-size:9px;margin-top:4px;line-height:1.35}.admin-user-copy em{font-style:normal;color:#82a900;font-size:10px}.admin-category-row .admin-actions,.admin-user-row .admin-actions{flex-wrap:nowrap}
.admin-role-note{margin:0 0 16px;padding:12px 14px;border-radius:14px;background:#f4f6ef;color:#5f5f5f;font-size:11px;line-height:1.5}.admin-settings-card{max-width:800px}.admin-settings-card .admin-actions{justify-content:flex-start}

@media (min-width:860px){
  .phone.admin-shell{display:grid!important;grid-template-columns:235px minmax(0,1fr);align-items:stretch;width:min(1240px,calc(100% - 34px));max-width:none;overflow:hidden}
  .phone.admin-shell .admin-sidebar{grid-column:1;grid-row:1;min-height:calc(100dvh - 40px)}
  .phone.admin-shell .screen.active{grid-column:2;grid-row:1;min-width:0;min-height:calc(100dvh - 40px);background:#f8f9f7}
  .phone.admin-shell .admin-page{max-width:none!important;margin:0!important;padding:30px 30px 50px!important}
  .admin-dashboard-grid{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr)}
  .admin-offer-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:859px){
  .admin-sidebar{position:sticky;top:0;z-index:90;padding:10px 10px 8px;gap:8px;overflow:hidden}.admin-sidebar-brand{display:none}.admin-sidebar-nav{flex-direction:row;overflow-x:auto;gap:5px;padding-bottom:2px}.admin-sidebar-nav::-webkit-scrollbar{display:none}.admin-sidebar-nav button{width:auto;flex:0 0 auto;min-height:38px;padding:8px 10px}.admin-sidebar-nav button span{white-space:nowrap}.admin-sidebar-footer{display:none}.phone.admin-shell .admin-page{padding-top:20px!important}.admin-page-heading{align-items:flex-start;flex-direction:column}.admin-page-heading .admin-btn{width:100%}.admin-category-row,.admin-user-row{grid-template-columns:auto minmax(0,1fr) auto}.admin-category-row .admin-actions,.admin-user-row .admin-actions{grid-column:1/-1;width:100%}.admin-category-row .admin-actions button,.admin-user-row .admin-actions button{flex:1}.admin-search-toolbar{align-items:stretch;flex-direction:column}.admin-search-toolbar>*{width:100%}
}

/* Category icon uploads */
.category-card .icon,.all-category .big-icon,.admin-category-icon,.category-icon-preview{display:grid;place-items:center;overflow:hidden}
.category-card .icon img{width:34px;height:34px;object-fit:contain;display:block}
.all-category .big-icon img{width:48px;height:48px;object-fit:contain;display:block}
.admin-category-icon img{width:32px;height:32px;object-fit:contain;display:block;border-radius:8px}
.category-icon-editor{display:flex;align-items:center;gap:12px;margin-bottom:10px}
.category-icon-preview{width:64px;height:64px;flex:0 0 64px;border:1px solid #deded9;border-radius:16px;background:#f7f8f4;font-size:32px}
.category-icon-preview img{width:48px;height:48px;object-fit:contain;display:block;border-radius:10px}
.category-icon-controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap;min-width:0}
.category-icon-reset{padding:8px 0!important}
@media(max-width:600px){.category-icon-editor{align-items:flex-start}.category-icon-controls{flex-direction:column;align-items:flex-start;gap:4px}}

/* Admin ↔ front-end preview switch */
.header-actions{display:flex;align-items:center;gap:8px}
.admin-preview-return{border:0;background:#111;color:#fff;border-radius:999px;min-height:40px;padding:0 13px;font:inherit;font-size:11px;font-weight:900;cursor:pointer;white-space:nowrap;box-shadow:0 5px 14px #0002}
.admin-preview-return:hover{background:#272727}
.admin-sidebar-nav .admin-sidebar-preview{margin-top:8px;background:#262626;color:var(--lime);border:1px solid #363636}
.admin-sidebar-nav .admin-sidebar-preview:hover{background:var(--lime);color:#111;border-color:var(--lime)}
.phone.admin-preview .deal-save-button[hidden]{display:none!important}
@media(max-width:370px){.admin-preview-return{padding:0 10px;font-size:10px;min-height:38px}.phone.admin-preview .brand-text small{display:none}}

/* Mobile-safe Admin ↔ Front End switch */
#adminViewFrontend,
#adminReturnButton{
  position:relative;
  z-index:120;
  pointer-events:auto!important;
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
  -webkit-user-select:none;
  user-select:none;
}
@media(max-width:859px){
  .admin-sidebar-nav{touch-action:pan-x;overscroll-behavior-x:contain}
  #adminViewFrontend{touch-action:manipulation;flex:0 0 auto}
  #adminReturnButton{min-width:max-content}
}

/* Admin front-end preview UX */
.admin-preview-bar{
  position:sticky;
  top:0;
  z-index:1200;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:10px 14px;
  background:#111;
  color:#fff;
  box-shadow:0 5px 18px rgba(0,0,0,.18);
}
.admin-preview-bar[hidden]{display:none!important}
.admin-preview-bar-copy{min-width:0;display:flex;flex-direction:column;gap:2px}
.admin-preview-bar-copy strong{font-size:12px;line-height:1.1}
.admin-preview-bar-copy span{font-size:10px;line-height:1.25;color:#d7d7d7}
.admin-preview-bar-actions{display:flex;align-items:center;gap:7px;flex:none}
.admin-preview-bar-btn{
  min-height:36px;
  border:1px solid #555;
  border-radius:999px;
  background:#292929;
  color:#fff;
  padding:0 11px;
  font:inherit;
  font-size:10px;
  font-weight:900;
  white-space:nowrap;
  cursor:pointer;
  touch-action:manipulation;
  -webkit-tap-highlight-color:transparent;
}
.admin-preview-bar-btn.primary{background:var(--lime);border-color:var(--lime);color:#111}
.admin-student-only-page{padding-top:34px;text-align:center}
.admin-student-only-icon{width:62px;height:62px;margin:0 auto 15px;border-radius:20px;background:#f2f3ef;display:grid;place-items:center;font-size:28px}
.admin-student-only-page h1{margin:0 0 10px;font-size:27px}
.admin-student-only-page p{max-width:340px;margin:0 auto;color:#666;line-height:1.55;font-size:13px}
.admin-student-only-actions{display:grid;gap:9px;margin:22px auto 0;max-width:310px}
.admin-student-only-actions .admin-btn{width:100%;min-height:46px}
.phone.admin-preview #claimDealButton:disabled{opacity:1;background:#e5e6e2;color:#6f6f6f}

@media(max-width:430px){
  .admin-preview-bar{padding:8px 10px;gap:8px}
  .admin-preview-bar-copy span{display:none}
  .admin-preview-bar-copy strong{font-size:11px;white-space:nowrap}
  .admin-preview-bar-actions{gap:5px}
  .admin-preview-bar-btn{min-height:34px;padding:0 9px;font-size:9px}
}

/* ===== Messaging / SMTP / Web Push upgrade ===== */
.admin-settings-grid{display:grid;gap:18px}.admin-settings-save{margin-top:18px;justify-content:flex-end}.admin-test-box{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:end;margin-top:14px;padding:14px;border:1px solid #ecece7;border-radius:16px;background:#fafbf8}.delivery-status{margin-top:12px;padding:10px 12px;border-radius:12px;background:#f5f6f2;color:#666;font-size:11px;font-weight:800}.delivery-metrics{display:flex;gap:10px;margin:12px 0}.delivery-metrics>div{min-width:140px;padding:14px;border-radius:15px;background:#f6f7f3}.delivery-metrics strong{display:block;font-size:24px}.delivery-metrics span{display:block;color:#777;font-size:10px;margin-top:2px}.notification-channel-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.notification-channel{position:relative;display:flex;align-items:flex-start;gap:10px;padding:12px;border:1px solid #deded9;border-radius:15px;background:#fff;cursor:pointer}.notification-channel:has(input:checked){border-color:#b9e600;background:#f7ffe0;box-shadow:0 0 0 2px #caff1225}.notification-channel:has(input:disabled){opacity:.48;cursor:not-allowed}.notification-channel input{width:18px;height:18px;margin:1px 0 0;accent-color:#111;flex:none}.notification-channel span{min-width:0}.notification-channel strong{display:block;font-size:12px}.notification-channel small{display:block;margin-top:3px;color:#777;font-size:9px;line-height:1.3}.notification-channel-summary{margin-left:5px}.account-pref-row#pushPreferenceRow{align-items:center}.account-note{margin-top:14px;padding:12px 14px;border-radius:14px;background:#f5f6f2;color:#666;font-size:11px;line-height:1.5}
@media(min-width:980px){.admin-settings-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}.admin-settings-grid .admin-settings-card:first-child{grid-column:1/-1}}
@media(max-width:620px){.admin-test-box{grid-template-columns:1fr}.admin-test-box .admin-btn{width:100%}.notification-channel-grid{grid-template-columns:1fr}.admin-settings-save .admin-btn{width:100%}}
