/* Today Membership — Admin Panel theme */
:root{
  --tm-primary:#1f6f54;
  --tm-primary-dark:#165640;
  --tm-accent:#caa14a;
  --tm-bg:#f4f6f8;
  --tm-sidebar:#16352b;
  --tm-sidebar-hover:#1f4a3b;
}
*{box-sizing:border-box;}
body{margin:0;background:var(--tm-bg);font-family:"Segoe UI",system-ui,-apple-system,sans-serif;color:#23282d;}

/* ---- shell ---- */
.app-shell{display:flex;min-height:100vh;}
.sidebar{width:248px;background:var(--tm-sidebar);color:#cfe3da;flex-shrink:0;
  display:flex;flex-direction:column;position:fixed;top:0;bottom:0;left:0;z-index:1030;}
.app-main{margin-left:248px;flex:1;display:flex;flex-direction:column;min-width:0;}
.sidebar-brand{display:flex;align-items:center;gap:.5rem;padding:1.1rem 1.2rem;
  font-size:1.05rem;font-weight:700;color:#fff;border-bottom:1px solid rgba(255,255,255,.08);}
.sidebar-brand .brand-logo{width:34px;height:34px;border-radius:6px;object-fit:cover;background:#fff;}
.sidebar-brand i{color:var(--tm-accent);font-size:1.4rem;}
.sidebar-brand span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.sidebar-role{padding:.5rem 1.2rem;font-size:.72rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--tm-accent);}
.sidebar-nav{padding:.5rem .6rem;display:flex;flex-direction:column;gap:.15rem;}
.sidebar-nav .nav-link{color:#cfe3da;border-radius:8px;padding:.6rem .8rem;
  display:flex;align-items:center;gap:.65rem;font-size:.94rem;}
.sidebar-nav .nav-link:hover{background:var(--tm-sidebar-hover);color:#fff;}
.sidebar-nav .nav-link.active{background:var(--tm-primary);color:#fff;font-weight:600;}
.sidebar-nav .nav-link i{font-size:1.05rem;}

/* ---- topbar ---- */
.topbar{background:#fff;border-bottom:1px solid #e3e7ea;padding:.7rem 1.4rem;
  display:flex;align-items:center;gap:1rem;position:sticky;top:0;z-index:1020;}
.topbar-title{font-size:1.15rem;font-weight:600;margin:0;flex:1;}
.topbar-user .dropdown-toggle{text-decoration:none;color:#23282d;font-weight:500;}
.topbar-user i{color:var(--tm-primary);}

.app-content{padding:1.5rem 1.6rem;}

/* ---- cards / stats ---- */
.stat-card{background:#fff;border-radius:12px;padding:1.1rem 1.2rem;
  box-shadow:0 1px 3px rgba(0,0,0,.06);display:flex;align-items:center;gap:1rem;}
.stat-card .stat-icon{width:52px;height:52px;border-radius:12px;display:flex;
  align-items:center;justify-content:center;font-size:1.5rem;color:#fff;}
.stat-card .stat-value{font-size:1.7rem;font-weight:700;line-height:1;}
.stat-card .stat-label{color:#6b7780;font-size:.85rem;}
.bg-tm-primary{background:var(--tm-primary)!important;}
.bg-tm-accent{background:var(--tm-accent)!important;}
.text-tm-primary{color:var(--tm-primary)!important;}
.btn-tm{background:var(--tm-primary);border-color:var(--tm-primary);color:#fff;}
.btn-tm:hover{background:var(--tm-primary-dark);border-color:var(--tm-primary-dark);color:#fff;}

.panel{background:#fff;border-radius:12px;box-shadow:0 1px 3px rgba(0,0,0,.06);
  padding:1.25rem 1.35rem;margin-bottom:1.25rem;}
.panel-title{font-size:1rem;font-weight:600;margin-bottom:1rem;
  display:flex;align-items:center;gap:.5rem;}

/* ---- layout builder ---- */
.field-palette .palette-item{border:1px dashed #c2cdd4;border-radius:8px;
  padding:.55rem .7rem;margin-bottom:.5rem;cursor:grab;background:#fbfcfd;font-size:.9rem;}
.field-palette .palette-item:hover{border-color:var(--tm-primary);}
.field-row{border:1px solid #e3e7ea;border-radius:8px;padding:.7rem .8rem;
  margin-bottom:.6rem;background:#fff;display:flex;align-items:center;gap:.7rem;}
.field-row .drag-handle{cursor:grab;color:#9aa7af;}
.field-row .field-meta{flex:1;min-width:0;}
.field-row .badge{font-weight:500;}

/* ---- benefit buttons ---- */
.benefit-grid{display:flex;flex-wrap:wrap;gap:.7rem;}
.benefit-btn{border:none;border-radius:10px;padding:.85rem 1.1rem;min-width:160px;
  text-align:left;cursor:pointer;color:#fff;transition:transform .08s;}
.benefit-btn:active{transform:scale(.98);}
.benefit-btn .b-name{font-weight:600;display:block;}
.benefit-btn .b-meta{font-size:.78rem;opacity:.9;}
.benefit-available{background:var(--tm-primary);}
.benefit-available:hover{background:var(--tm-primary-dark);}
.benefit-redeemed{background:#8b969d;cursor:not-allowed;}

/* ---- misc ---- */
.login-wrap{min-height:100vh;display:flex;align-items:center;justify-content:center;
  background:linear-gradient(135deg,#16352b,#1f6f54);padding:1rem;}
.login-card{background:#fff;border-radius:14px;padding:2.2rem;width:100%;max-width:400px;
  box-shadow:0 12px 40px rgba(0,0,0,.25);}
.login-card .brand{text-align:center;margin-bottom:1.4rem;}
.login-card .brand i{font-size:2.4rem;color:var(--tm-primary);}
.table thead th{background:#f0f3f4;font-size:.8rem;text-transform:uppercase;
  letter-spacing:.04em;color:#5b6770;}
.empty-state{text-align:center;padding:2.5rem 1rem;color:#8b969d;}
.empty-state i{font-size:2.6rem;display:block;margin-bottom:.5rem;}

@media(max-width:768px){
  .sidebar{transform:translateX(-100%);transition:transform .2s;}
  .sidebar.open{transform:translateX(0);}
  .app-main{margin-left:0;}
}
