:root {
  --g50: #f0fdf4; --g100: #dcfce7; --g200: #bbf7d0; --g300: #86efac; --g400: #4ade80;
  --g500: #22c55e; --g600: #16a34a; --g700: #15803d; --g800: #166534; --g900: #14532d;
  --b50: #eff6ff; --b100: #dbeafe; --b200: #bfdbfe; --b300: #93c5fd; --b400: #60a5fa;
  --b500: #3b82f6; --b600: #2563eb; --b700: #1d4ed8; --b800: #1e40af; --b900: #1e3a8a;
  --bg: #f8fffe; --card: #fff; --border: #d1fae5; --text: #1a2e1a;
  --muted: #4a7c59; --accent: #16a34a; --danger: #dc2626; --warn: #d97706;
  --shadow: 0 2px 12px #16a34a1a;
}
*{box-sizing:border-box;margin:0;padding:0}
body{
  background:var(--bg);color:var(--text);
  min-height:100vh;margin:0 auto;
  font-family:'Hind Siliguri',sans-serif;overflow-x:hidden
}
/* ═══ App Layout ═══ */
.app{min-height:100vh;display:flex}
/* ───── Sidebar (desktop) ───── */
.sidebar{
  width:200px;background:var(--card);border-right:1.5px solid var(--border);
  flex-direction:column;display:none;position:sticky;top:0;height:100vh
}
.sidebar-brand{
  display:flex;align-items:center;gap:10px;padding:18px 16px 12px;
  border-bottom:1px solid var(--border)
}
.side-brand-icon{
  width:32px;height:32px;border-radius:10px;
  background:linear-gradient(135deg,#16a34a,#15803d);
  color:#fff;font-size:13px;font-weight:800;
  display:flex;align-items:center;justify-content:center;flex-shrink:0
}
.side-brand-name{font-size:16px;font-weight:700;color:var(--g800)}
.sidebar-user{
  display:flex;align-items:center;gap:10px;
  padding:16px;border-bottom:1px solid var(--border)
}
.sidebar-user .u-avatar{
  background:linear-gradient(135deg,var(--g400),var(--g600));color:#fff;
  border-radius:50%;width:36px;height:36px;display:flex;align-items:center;
  justify-content:center;font-size:14px;font-weight:700;flex-shrink:0
}
.sidebar.rent-mode .sidebar-user .u-avatar{background:linear-gradient(135deg,var(--b400),var(--b600))}
.sidebar-user .u-info{flex:1;min-width:0}
.sidebar-user .u-name{font-size:13px;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sidebar-user .u-role{font-size:10px;color:var(--muted);text-transform:capitalize}
.sidebar-nav{flex:1;padding:8px;overflow-y:auto;display:flex;flex-direction:column;gap:2px}
.sidebar-nav .nav-btn{
  display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;
  border:none;background:0 0;cursor:pointer;color:var(--muted);
  font-family:'Hind Siliguri',sans-serif;font-size:13px;font-weight:500;
  transition:all .15s;border-radius:10px;text-align:left
}
.sidebar-nav .nav-btn:hover{background:var(--g50);color:var(--text)}
.sidebar-nav .nav-btn.active{background:var(--g50);color:var(--accent);font-weight:600}
.sidebar.rent-mode .sidebar-nav .nav-btn:hover{background:var(--b50)}
.sidebar.rent-mode .sidebar-nav .nav-btn.active{background:var(--b50);color:var(--b600)}
.sidebar-nav .nav-btn .icon{font-size:18px;width:24px;text-align:center;flex-shrink:0}
.sidebar-nav .nav-btn .nav-label{flex:1}
.sidebar-nav .nav-btn .nav-badge{
  background:var(--g500);color:#fff;font-size:9px;font-weight:600;
  padding:1px 6px;border-radius:8px;min-width:18px;text-align:center;line-height:1.4
}
.sidebar.rent-mode .sidebar-nav .nav-btn .nav-badge{background:var(--b500)}
.sidebar-foot{
  padding:12px 16px;border-top:1px solid var(--border)
}
.sidebar-foot .u-logout{
  cursor:pointer;border:none;background:var(--g50);color:var(--g700);
  width:100%;padding:8px 12px;border-radius:10px;
  font-family:'Hind Siliguri',sans-serif;font-size:12px;font-weight:600;
  transition:all .15s;display:flex;align-items:center;gap:6px;
  justify-content:center
}
.sidebar-foot .u-logout:hover{background:#fee2e2;color:var(--danger)}
body.dark-mode .sidebar-foot .u-logout{background:#142a1e;color:var(--g700)}
body.dark-mode .sidebar-foot .u-logout:hover{background:#2d1a1a;color:#fca5a5}
.sidebar.rent-mode .sidebar-foot .u-logout{background:var(--b50);color:var(--b700)}
.sidebar.rent-mode .sidebar-foot .u-logout:hover{background:#fee2e2;color:var(--danger)}
body.dark-mode .sidebar.rent-mode .sidebar-foot .u-logout{background:#15243d;color:var(--b700)}
/* ───── Main Area ───── */
.main-area{flex:1;display:flex;flex-direction:column;min-width:0}
/* ───── Header ───── */
.header{
  background:linear-gradient(135deg,var(--g700),var(--g500));color:#fff;
  z-index:100;padding:12px 20px;position:sticky;top:0;
  box-shadow:0 4px 20px #16a34a4d
}
.header.rent-mode{background:linear-gradient(135deg,var(--b700),var(--b500))}
.header-top{justify-content:space-between;align-items:center;display:flex;gap:8px;flex-wrap:wrap}
.header-actions{display:flex;align-items:center;gap:6px}
.header-title{font-size:18px;font-weight:700}
.header-sub{font-size:11px;opacity:.85;display:none}
.module-select{
  border:1.5px solid var(--border);background:var(--card);color:var(--text);
  border-radius:10px;padding:6px 10px;font-size:12px;font-weight:600;
  font-family:'Hind Siliguri',sans-serif;cursor:pointer;outline:none;
  max-width:130px
}
.module-select:focus{border-color:var(--g400)}
.header.rent-mode .module-select:focus{border-color:var(--b400)}
/* ───── Content ───── */
.content{flex:1;padding:16px;padding-bottom:80px}
/* ───── Bottom Nav (mobile) ───── */
.bottom-nav{
  border-top:1.5px solid var(--border);z-index:100;background:var(--card);
  width:100%;display:flex;position:fixed;bottom:0;left:0
}
.nav-btn{
  cursor:pointer;color:var(--muted);background:0 0;border:none;
  flex-direction:column;flex:1;align-items:center;gap:2px;
  padding:6px 2px;font-family:'Hind Siliguri',sans-serif;
  font-size:9px;transition:all .15s;display:flex
}
.nav-btn.active{color:var(--accent)}
.rent-mode-active .nav-btn.active{color:var(--b600)}
.nav-btn .icon{font-size:20px;line-height:1}
/* ───── Cards ───── */
.card{
  background:var(--card);border:1.5px solid var(--border);
  box-shadow:var(--shadow);border-radius:16px;margin-bottom:12px;padding:16px
}
.rent-mode-active .card{border-color:var(--b200)}
.card-title{color:var(--g800);align-items:center;gap:6px;margin-bottom:12px;font-size:14px;font-weight:600;display:flex}
.rent-mode-active .card-title{color:var(--b800)}
.hero-card{background:linear-gradient(135deg,var(--g700),var(--g500));color:#fff;border:none}
/* ───── Stats ───── */
.stats-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px;margin-bottom:12px}
.stat{background:var(--g50);border:1px solid var(--g200);text-align:center;border-radius:12px;padding:12px 8px}
.rent-mode-active .stat{background:var(--b50);border-color:var(--b200)}
.stat-val{color:var(--g700);font-size:20px;font-weight:700}
.rent-mode-active .stat-val{color:var(--b700)}
.stat-label{color:var(--muted);margin-top:4px;font-size:10px}
/* freelance home stats – compact + colorful */
#freelanceHome .stats-grid{gap:4px;margin-bottom:6px}
#freelanceHome .stat{border:none;padding:4px 6px;border-radius:8px}
#freelanceHome .stat-val{font-size:12px;color:#fff}
#freelanceHome .stat-label{font-size:8px;margin-top:1px;color:rgba(255,255,255,.8)}
#freelanceHome .stat:nth-child(1){background:linear-gradient(135deg,#16a34a,#15803d)}
#freelanceHome .stat:nth-child(2){background:linear-gradient(135deg,#ef4444,#dc2626)}
#freelanceHome .stat:nth-child(3){background:linear-gradient(135deg,#3b82f6,#2563eb)}
#freelanceHome .stat:nth-child(4){background:linear-gradient(135deg,#8b5cf6,#7c3aed)}
#freelanceHome .stat:nth-child(5){background:linear-gradient(135deg,#06b6d4,#0891b2)}
#freelanceHome .stat:nth-child(6){background:linear-gradient(135deg,#f59e0b,#d97706)}
/* ───── Avatar ───── */
.avatar{
  background:linear-gradient(135deg,var(--g400),var(--g600));color:#fff;
  border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;
  width:40px;height:40px;font-size:14px;font-weight:700;display:flex
}
.rent-avatar{background:linear-gradient(135deg,var(--b400),var(--b600))}
/* ───── Badges ───── */
.badge{display:inline-flex;align-items:center;gap:3px;border-radius:20px;padding:3px 10px;font-size:11px;font-weight:600;letter-spacing:0.01em}
@keyframes paidPop{0%{transform:scale(.3);opacity:0}50%{transform:scale(1.15)}100%{transform:scale(1);opacity:1}}
.badge-paid.pop{animation:paidPop .4s ease-out}
.badge-paid{color:#166534;background:#dcfce7}
.badge-due{color:#991b1b;background:#fee2e2}
.badge-partial{color:#92400e;background:#fef3c7}
/* ───── Month Tabs ───── */
.month-tabs{scrollbar-width:none;gap:6px;padding-bottom:4px;display:flex;overflow-x:auto}
.month-tabs::-webkit-scrollbar{display:none}
.month-tab{
  border:1.5px solid var(--border);cursor:pointer;white-space:nowrap;
  color:var(--muted);background:var(--card);border-radius:20px;padding:6px 14px;
  font-family:'Hind Siliguri',sans-serif;font-size:11px;font-weight:600
}
.month-tab.active{background:var(--accent);border-color:var(--accent);color:#fff}
.rent-mode-active .month-tab.active{background:var(--b600);border-color:var(--b600)}
/* ───── Buttons ───── */
.btn{
  cursor:pointer;border:none;border-radius:12px;justify-content:center;
  align-items:center;gap:6px;width:100%;padding:10px 18px;
  font-family:'Hind Siliguri',sans-serif;font-size:13px;font-weight:600;transition:all .15s;display:inline-flex
}
.btn:disabled{opacity:.6;cursor:not-allowed}
.btn-primary{background:linear-gradient(135deg,var(--g600),var(--g500));color:#fff}
.rent-mode-active .btn-primary{background:linear-gradient(135deg,var(--b600),var(--b500))}
.btn-outline{border:1.5px solid var(--border);color:var(--accent);background:var(--card)}
.rent-mode-active .btn-outline{border-color:var(--b200);color:var(--b600)}
.btn-danger{color:#dc2626;background:#fee2e2;border:1.5px solid #fecaca}
.btn-sm{width:auto;padding:6px 12px;font-size:11px}
/* ───── Forms ───── */
.form-group{margin-bottom:12px}
.form-label{color:var(--muted);margin-bottom:4px;font-size:12px;font-weight:600;display:block}
.form-input{
  border:1.5px solid var(--border);width:100%;color:var(--text);
  background:var(--card);border-radius:10px;outline:none;padding:10px 12px;
  font-family:'Hind Siliguri',sans-serif;font-size:13px
}
.form-input:focus{border-color:var(--g400)}
.rent-mode-active .form-input:focus{border-color:var(--b400)}
textarea.form-input{resize:vertical}
select.form-input{cursor:pointer}
/* ───── Modal ───── */
.modal-overlay{
  z-index:200;background:#00000080;justify-content:center;align-items:flex-end;
  display:flex;position:fixed;inset:0;padding:0
}
.modal{
  background:var(--card);border-radius:24px 24px 0 0;width:100%;max-width:430px;
  max-height:85vh;padding:20px;overflow-y:auto;margin:0 auto
}
.modal-handle{background:var(--border);border-radius:2px;width:40px;height:4px;margin:0 auto 16px}
.modal-title{color:var(--g800);margin-bottom:16px;font-size:16px;font-weight:700}
.rent-mode-active .modal-title{color:var(--b800)}
/* ───── Progress ───── */
.progress-bar{background:var(--g100);border-radius:3px;height:6px;margin-top:4px;overflow:hidden}
.progress-fill{background:linear-gradient(90deg,var(--g500),var(--g400));border-radius:3px;height:100%;transition:width .3s}
.rent-mode-active .progress-fill{background:linear-gradient(90deg,var(--b500),var(--b400))}
/* ───── Alert ───── */
.alert{border-radius:12px;align-items:flex-start;gap:8px;margin-bottom:10px;padding:10px 14px;font-size:12px;display:flex}
.alert-success{color:#166534;background:#dcfce7}
.alert-warn{color:#92400e;background:#fef3c7}
.alert-info{color:#1e40af;background:#dbeafe}
/* ───── Payment Methods ───── */
.payment-methods{display:grid;grid-template-columns:repeat(5,1fr);gap:6px;margin-bottom:8px}
.pm-option{
  border:1.5px solid var(--border);cursor:pointer;background:var(--card);border-radius:10px;
  flex-direction:column;align-items:center;padding:8px 4px;display:flex
}
.pm-option.active{border-color:var(--accent);background:var(--g50)}
.rent-mode-active .pm-option.active{border-color:var(--b600);background:var(--b50)}
.pm-icon{margin-bottom:2px;font-size:18px}
.pm-label{color:var(--muted);font-size:9px;font-weight:600}
/* ───── Ref Group ───── */
.ref-group{background:var(--g50);border-radius:10px;margin-bottom:8px;padding:12px}
.rent-mode-active .ref-group{background:var(--b50)}
.ref-row{align-items:center;gap:8px;margin-bottom:8px;display:flex}
.ref-row:last-child{margin-bottom:0}
/* ───── Report ───── */
.report-row{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:8px 0;font-size:12px;display:flex}
.report-row:last-child{border-bottom:none}
.report-amount{color:var(--g700);font-weight:600}
.rent-mode-active .report-amount{color:var(--b700)}
.section-title{color:var(--muted);text-transform:uppercase;letter-spacing:.5px;margin:16px 0 8px;font-size:12px;font-weight:700}
/* ───── Empty State ───── */
.empty-state{text-align:center;color:var(--muted);padding:32px 16px}
.empty-icon{margin-bottom:8px;font-size:48px}
/* ───── Tags ───── */
.tag{border-radius:20px;margin-left:4px;padding:2px 8px;font-size:10px;font-weight:600;display:inline-block}
.tag-admin{color:#1e40af;background:#dbeafe}
.tag-member{color:#166534;background:#dcfce7}
.tag-owner{color:#9d174d;background:#fce7f3}
.tag-renter{color:#3730a3;background:#e0e7ff}
.tag-giver{color:#9d174d;background:#fce7f3}
.tag-taker{color:#92400e;background:#fef3c7}
/* ───── Misc ───── */
.divider{background:var(--border);height:1px;margin:12px 0}
.actions{display:flex;gap:8px;margin-bottom:12px}
.actions .btn{flex:1}
.settings-card{background:var(--card);border:1.5px solid var(--border);border-radius:16px;padding:16px;margin-bottom:12px}
.member-row{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid var(--border)}
.member-row:last-child{border-bottom:none}
.member-row .member-info{flex:1;min-width:0}
.member-row .member-name{font-size:14px;font-weight:600}
.member-row .member-unit{font-size:11px;color:var(--muted)}
.pay-row{display:flex;align-items:center;justify-content:space-between;padding:8px 0;border-bottom:1px solid var(--border);font-size:13px}
.pay-row:last-child{border-bottom:none}
.notice-item{padding:12px 0;border-bottom:1px solid var(--border)}
.notice-item:last-child{border-bottom:none}
.notice-item .notice-title{font-weight:600;font-size:14px;margin-bottom:4px}
.notice-item .notice-body{font-size:13px;color:var(--text);opacity:.8}
.notice-item .notice-date{font-size:10px;color:var(--muted);margin-top:4px}
.maint-item{padding:12px 0;border-bottom:1px solid var(--border)}
.maint-item:last-child{border-bottom:none}
.maint-item .maint-issue{font-size:13px;margin-bottom:4px}
.maint-item .maint-date{font-size:10px;color:var(--muted)}
.note-item{padding:10px 0;border-bottom:1px solid var(--border)}
.note-item:last-child{border-bottom:none}
.note-item .note-title{font-weight:600;font-size:14px}
.note-item .note-body{font-size:12px;color:var(--muted);margin-top:2px}
.note-item .note-date{font-size:10px;color:var(--muted);margin-top:4px}
.agreement-card{background:linear-gradient(135deg,var(--b50),var(--b100));border-color:var(--b200)}
.rent-amount-large{color:var(--b700);font-size:32px;font-weight:700}
.rent-due-badge{background:var(--b600);color:#fff;border-radius:20px;margin-left:auto;padding:4px 12px;font-size:11px}
/* ───── Toast ───── */
.toast{
  z-index:300;pointer-events:none;
  white-space:nowrap;border-radius:12px;padding:12px 20px;font-size:13px;font-weight:600;
  position:fixed;top:16px;left:50%;transform:translateX(-50%) translateY(-20px);
  opacity:0;transition:all .35s cubic-bezier(.4,0,.2,1);
  display:flex;align-items:center;gap:8px;box-shadow:0 4px 20px rgba(0,0,0,.15);
  max-width:90vw;border:1px solid rgba(255,255,255,.1)
}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.toast-success{background:#059669;color:#fff;border-color:#34d399}
.toast-error{background:#dc2626;color:#fff;border-color:#f87171}
.toast-warning{background:#d97706;color:#fff;border-color:#fbbf24}
.toast-info{background:#1e40af;color:#fff;border-color:#60a5fa}
/* ───── Login Screen ───── */
.login-screen{
  min-height:100vh;padding:24px;display:flex;flex-direction:column;
  justify-content:center;align-items:center;gap:32px;
  background:linear-gradient(135deg,#f0fdf4 0%,#dcfce7 50%,#bbf7d0 100%);
  position:relative;overflow:hidden
}
.login-screen::before{
  content:'';position:absolute;top:-50%;right:-30%;width:500px;height:500px;
  border-radius:50%;background:radial-gradient(circle,rgba(22,163,74,.08) 0%,transparent 70%);
  pointer-events:none
}
.login-screen::after{
  content:'';position:absolute;bottom:-40%;left:-20%;width:400px;height:400px;
  border-radius:50%;background:radial-gradient(circle,rgba(59,130,246,.06) 0%,transparent 70%);
  pointer-events:none
}
.login-brand{text-align:center;position:relative;z-index:1}
.login-brand-icon{
  width:64px;height:64px;border-radius:18px;
  background:linear-gradient(135deg,#16a34a,#15803d);
  color:#fff;font-size:24px;font-weight:800;letter-spacing:-1px;
  display:flex;align-items:center;justify-content:center;
  margin:0 auto 16px;box-shadow:0 8px 24px rgba(22,163,74,.3)
}
.login-brand-name{
  color:var(--g800);font-size:28px;font-weight:800;letter-spacing:-.5px;
  margin-bottom:6px
}
.login-brand-sub{
  color:var(--muted);font-size:14px;font-weight:500
}
.login-card{
  background:var(--card);border-radius:20px;width:100%;max-width:380px;
  padding:28px 24px 20px;
  box-shadow:0 8px 32px rgba(22,163,74,.15);
  position:relative;z-index:1
}
.login-card-title{
  font-size:18px;font-weight:700;color:var(--text);
  margin-bottom:20px;text-align:center
}
.login-card .btn-primary{
  width:100%;padding:14px;font-size:15px;border-radius:12px;
  margin-top:8px
}
.login-links{
  display:flex;gap:12px;justify-content:center;flex-wrap:wrap;
  margin-top:14px
}
.login-links .btn-text{
  background:none;border:none;color:var(--accent);cursor:pointer;
  font-family:'Hind Siliguri',sans-serif;font-size:12px;font-weight:600;
  padding:6px 8px;border-radius:8px;transition:background .15s
}
.login-links .btn-text:hover{background:var(--g50)}
.login-footer{
  position:relative;z-index:1;color:var(--muted);font-size:11px;opacity:.7
}
.hidden{display:none!important}
/* ════════════════════════════════════════════════════ */
/* DARK MODE OVERRIDES                                  */
/* ════════════════════════════════════════════════════ */
body.dark-mode .badge-paid{color:#86efac;background:#142a1e}
body.dark-mode .badge-due{color:#fca5a5;background:#2d1a1a}
body.dark-mode .badge-partial{color:#fcd34d;background:#2d2416}
body.dark-mode .alert-success{color:#bbf7d0;background:#142a1e}
body.dark-mode .alert-warn{color:#fde68a;background:#2d2416}
body.dark-mode .alert-info{color:#bfdbfe;background:#15243d}
body.dark-mode .tag-admin{color:#93c5fd;background:#1e3456}
body.dark-mode .tag-member{color:#4ade80;background:#1a3a28}
body.dark-mode .tag-owner{color:#f9a8d4;background:#2d1a28}
body.dark-mode .tag-renter{color:#a5b4fc;background:#1e1e3d}
body.dark-mode .tag-giver{color:#f9a8d4;background:#2d1a28}
body.dark-mode .tag-taker{color:#fde68a;background:#2d2416}
body.dark-mode .login-screen{background:linear-gradient(160deg,#0b1120,#1a2332,#2d3a4a)}
body.dark-mode .login-screen::before{
  background:radial-gradient(circle,rgba(22,163,74,.12) 0%,transparent 70%)
}
body.dark-mode .login-screen::after{
  background:radial-gradient(circle,rgba(59,130,246,.08) 0%,transparent 70%)
}
body.dark-mode .login-card{box-shadow:0 8px 32px rgba(0,0,0,.4)}
body.dark-mode .login-brand-icon{box-shadow:0 8px 24px rgba(22,163,74,.2)}
body.dark-mode .login-links .btn-text:hover{background:rgba(255,255,255,.06)}
body.dark-mode .header{box-shadow:0 4px 20px #00000060}
body.dark-mode .btn-danger{color:#fca5a5;background:#2d1a1a;border-color:#3d2424}
body.dark-mode select.form-input option{background:#1a2332;color:#e2e8f0}
body.dark-mode .modal-overlay{background:#000000c0}
body.dark-mode .toast-success{background:#065f46;border-color:#34d399}
body.dark-mode .toast-error{background:#991b1b;border-color:#f87171}
body.dark-mode .toast-warning{background:#92400e;border-color:#fbbf24}
body.dark-mode .toast-info{background:#1e3a5f;border-color:#60a5fa}
/* ════════════════════════════════════════════════════ */
/* DESKTOP ≥768px                                       */
/* ════════════════════════════════════════════════════ */
@media(min-width:768px){
  .sidebar{display:flex}
  .bottom-nav{display:none}
  .content{padding:24px;padding-bottom:24px;max-width:960px;margin:0 auto;width:100%}
  .stats-grid{grid-template-columns:repeat(4,1fr)}
  .header{padding:12px 24px}
  .header-sub{display:block}
  .payment-methods{grid-template-columns:repeat(5,1fr);max-width:500px}
  .modal-overlay{align-items:center}
  .modal{border-radius:24px;max-width:480px;margin:0}
  .modal-handle{display:none}
  .card{padding:20px}
  .stat{padding:16px}
  .stat-val{font-size:24px}
  .actions{gap:12px}
  .actions .btn{flex:none;min-width:160px}
  .member-row{padding:12px 0}
  .login-screen{padding:48px}
  .login-brand-icon{width:72px;height:72px;font-size:28px;border-radius:20px}
  .login-brand-name{font-size:34px}
  .login-card{padding:32px 28px 24px;max-width:400px}
  .login-card-title{font-size:20px;margin-bottom:24px}
  .btn{width:auto}
  .btn-primary{padding:10px 28px}
  .toast{font-size:14px;padding:12px 24px}
}
.extra-badge{display:inline-flex;align-items:center;gap:3px;font-size:10px;font-weight:700;padding:2px 10px;border-radius:20px;background:linear-gradient(135deg,#fbbf24,#f59e0b);color:#78350f;box-shadow:0 1px 4px #f59e0b66;vertical-align:middle;line-height:1.5;letter-spacing:0.02em;cursor:help}
body.dark-mode .extra-badge{background:linear-gradient(135deg,#d97706,#b45309);color:#fef3c7;box-shadow:0 1px 4px #b4530966}
.id-badge{display:inline-block;font-size:9px;font-weight:600;font-family:monospace;background:var(--g100);color:var(--g700);padding:1px 6px;border-radius:4px;margin-left:4px;vertical-align:middle;line-height:1.4}
.rent-mode .id-badge{background:var(--b100);color:var(--b700)}
.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;margin:4px 0}
.table-wrap table{min-width:480px}
.notif-item{transition:opacity .2s}
.notif-unread{font-weight:600;border-left:3px solid var(--g500)!important}
.material-symbols-outlined{font-size:20px;vertical-align:middle;line-height:1;user-select:none}
@keyframes drawCircle{to{stroke-dashoffset:0}}
@keyframes drawCheck{to{stroke-dashoffset:0}}
@keyframes confettiBurst{0%{transform:translate(0,0) scale(0);opacity:1}60%{opacity:1}100%{opacity:0;transform:translate(calc(var(--tx)*1.4),calc(var(--ty)*1.4)) scale(.4)}}
.paid-sticker-wrap{position:relative;display:inline-flex;align-items:center;gap:8px;background:linear-gradient(135deg,#16a34a,#15803d);color:#fff;padding:6px 18px 6px 10px;border-radius:20px;font-size:11px;font-weight:700;box-shadow:0 3px 12px #16a34a66;margin-bottom:20px}
.paid-sticker-svg{width:28px;height:28px;flex-shrink:0}
.paid-sticker-svg .check-circle{animation:drawCircle .4s ease-out forwards}
.paid-sticker-svg .check-mark{animation:drawCheck .4s ease-out .4s forwards}
.confetti-piece{position:absolute;width:6px;height:6px;border-radius:2px;pointer-events:none;top:50%;left:50%;margin:-3px 0 0 -3px;animation:confettiBurst var(--dur,.6s) ease-out var(--delay,0s) forwards}
@keyframes sadWobble{0%{transform:scale(0) rotate(0)}20%{transform:scale(1.1) rotate(-3deg)}40%{transform:scale(.95) rotate(3deg)}60%{transform:scale(1.02) rotate(-2deg)}80%{transform:scale(.98) rotate(1deg)}100%{transform:scale(1) rotate(0)}}
.sad-sticker{display:inline-flex;align-items:center;gap:4px;background:linear-gradient(135deg,#f87171,#dc2626);color:#fff;padding:4px 14px 4px 10px;border-radius:20px;font-size:11px;font-weight:700;box-shadow:0 3px 12px #dc262666;animation:sadWobble .5s ease-out;margin-bottom:20px}
@keyframes drawPend{to{stroke-dashoffset:0}}
@keyframes drawExp{to{stroke-dashoffset:0}}
@keyframes pulseOrange{0%,100%{transform:scale(1)}50%{transform:scale(1.04)}}
@keyframes floatBlue{0%,100%{transform:translateY(0)}50%{transform:translateY(-4px)}}
.pending-sticker-wrap{position:relative;display:inline-flex;align-items:center;gap:8px;background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;padding:6px 18px 6px 10px;border-radius:20px;font-size:11px;font-weight:700;box-shadow:0 3px 12px #f59e0b66;margin-bottom:20px;animation:pulseOrange 1.5s ease-in-out infinite}
.pending-sticker-svg{width:28px;height:28px;flex-shrink:0}
.pending-sticker-svg .pend-circle{animation:drawPend .4s ease-out forwards}
.pending-sticker-svg .pend-hand-hr{animation:drawPend .3s ease-out .4s forwards}
.pending-sticker-svg .pend-hand-min{animation:drawPend .3s ease-out .55s forwards}
.expected-sticker-wrap{position:relative;display:inline-flex;align-items:center;gap:8px;background:linear-gradient(135deg,#3b82f6,#2563eb);color:#fff;padding:6px 18px 6px 10px;border-radius:20px;font-size:11px;font-weight:700;box-shadow:0 3px 12px #3b82f666;margin-bottom:20px;animation:floatBlue 2s ease-in-out infinite}
.expected-sticker-svg{width:28px;height:28px;flex-shrink:0}
.expected-sticker-svg .exp-arrow-body{animation:drawExp .5s ease-out forwards}
.expected-sticker-svg .exp-arrow-tip{animation:drawExp .3s ease-out .5s forwards}
