/* ============================================================
   PROSPER9JA v3 - MATERIAL DESIGN STYLESHEET
   ============================================================ */

:root {
  --primary:      #1b5e20;
  --primary-dk:   #003300;
  --primary-lt:   #2e7d32;
  --primary-surf: #e8f5e9;
  --secondary:    #b8892a;
  --secondary-lt: #d4a843;
  --accent:       #ffd54f;
  --surface:      #ffffff;
  --surface-2:    #f5f5f5;
  --surface-3:    #eeeeee;
  --on-surface:   #212121;
  --on-surface-2: #616161;
  --on-surface-3: #9e9e9e;
  --divider:      #e0e0e0;
  --error:        #b71c1c;
  --error-lt:     #ffebee;
  --success:      #1b5e20;
  --success-lt:   #e8f5e9;
  --warn:         #e65100;
  --warn-lt:      #fff3e0;
  --info:         #0d47a1;
  --info-lt:      #e3f2fd;
  --elev-1: 0 1px 3px rgba(0,0,0,.12), 0 1px 2px rgba(0,0,0,.24);
  --elev-2: 0 3px 6px rgba(0,0,0,.15), 0 2px 4px rgba(0,0,0,.12);
  --elev-3: 0 10px 20px rgba(0,0,0,.15), 0 3px 6px rgba(0,0,0,.10);
  --elev-4: 0 15px 25px rgba(0,0,0,.15), 0 5px 10px rgba(0,0,0,.05);
  --sidebar-w:  256px;
  --topbar-h:   64px;
  --radius-sm:  4px;
  --radius:     8px;
  --radius-lg:  12px;
  --radius-xl:  16px;
  --radius-full:100px;
}

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;overflow-x:hidden;}
body{font-family:'Roboto',sans-serif;background:var(--surface-2);color:var(--on-surface);overflow-x:hidden;font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;}
a{text-decoration:none;color:inherit;}
img{max-width:100%;}
input,select,textarea,button{font-family:inherit;}
ul{list-style:none;}

/* AUTH */
.auth-wrap{min-height:100vh;background:linear-gradient(160deg,var(--primary-dk) 0%,var(--primary) 50%,var(--primary-lt) 100%);display:flex;align-items:center;justify-content:center;padding:24px;position:relative;overflow:hidden;}
.auth-wrap::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 20% 80%,rgba(255,213,79,.08) 0%,transparent 50%),radial-gradient(circle at 80% 20%,rgba(255,255,255,.05) 0%,transparent 50%);}
.auth-orb{display:none;}
.auth-card{background:var(--surface);border-radius:var(--radius-xl);padding:40px 36px;width:100%;max-width:460px;position:relative;z-index:2;box-shadow:var(--elev-4);}
.auth-card.wide{max-width:560px;}
.auth-logo{font-family:'Roboto Slab',serif;font-size:1.8rem;font-weight:700;color:var(--primary);text-align:center;margin-bottom:4px;letter-spacing:-.5px;}
.auth-logo span{color:var(--secondary);}
.auth-logo img{height:80px;width:auto;max-width:260px;object-fit:contain;margin:0 auto 4px;display:block;}
.auth-tagline{text-align:center;color:var(--on-surface-3);font-size:.82rem;margin-bottom:24px;}
.auth-title{font-family:'Roboto Slab',serif;font-size:1.4rem;color:var(--on-surface);margin-bottom:4px;font-weight:600;}
.auth-sub{color:var(--on-surface-2);font-size:.875rem;margin-bottom:20px;}

/* FORMS */
.form-group{margin-bottom:18px;position:relative;}
.form-group label{display:block;font-size:.72rem;font-weight:500;color:var(--primary);margin-bottom:6px;letter-spacing:.8px;text-transform:uppercase;}
.form-group input,.form-group select,.form-group textarea{width:100%;padding:11px 14px;border:1.5px solid var(--divider);border-radius:var(--radius-sm);font-size:.9rem;color:var(--on-surface);background:var(--surface);transition:border .2s,box-shadow .2s;outline:none;}
.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(27,94,32,.1);}
.form-group.has-error input,.form-group.has-error select{border-color:var(--error);}
.field-err{color:var(--error);font-size:.75rem;margin-top:4px;display:block;}
.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.form-row-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:12px;}
.input-icon{position:relative;}
.input-icon input{padding-right:42px;}
.input-icon .ico{position:absolute;right:14px;top:50%;transform:translateY(-50%);color:var(--on-surface-3);}
.input-icon .ico[onclick]{cursor:pointer;user-select:none;}
.coupon-input{text-transform:uppercase;letter-spacing:2px;font-family:'Roboto Mono',monospace;}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 24px;border:none;border-radius:var(--radius-sm);font-size:.875rem;font-weight:500;letter-spacing:.5px;cursor:pointer;transition:all .2s;text-decoration:none;text-transform:uppercase;font-family:'Roboto',sans-serif;position:relative;overflow:hidden;}
.btn-full{width:100%;}
.btn-primary{background:var(--secondary);color:#fff;box-shadow:var(--elev-1);}
.btn-primary:hover{box-shadow:var(--elev-2);background:var(--secondary-lt);}
.btn-green{background:var(--primary);color:#fff;box-shadow:var(--elev-1);}
.btn-green:hover{box-shadow:var(--elev-2);background:var(--primary-lt);}
.btn-red{background:var(--error);color:#fff;box-shadow:var(--elev-1);}
.btn-outline{background:transparent;color:var(--primary);border:1.5px solid var(--primary);}
.btn-outline:hover{background:var(--primary-surf);}
.btn-ghost{background:transparent;color:var(--on-surface-2);}
.btn-ghost:hover{background:var(--surface-3);}
.btn-sm{padding:7px 16px;font-size:.78rem;}
.btn-xs{padding:4px 10px;font-size:.72rem;}
.btn:disabled{opacity:.5;cursor:not-allowed;}

/* ALERTS */
.alert{padding:12px 16px;border-radius:var(--radius-sm);margin-bottom:14px;font-size:.875rem;display:flex;align-items:flex-start;gap:10px;line-height:1.5;border-left:4px solid;}
.alert-error{background:var(--error-lt);border-color:var(--error);color:#7f0000;}
.alert-success{background:var(--success-lt);border-color:var(--success);color:#003300;}
.alert-warning{background:var(--warn-lt);border-color:var(--warn);color:#bf360c;}
.alert-info{background:var(--info-lt);border-color:var(--info);color:#0a237a;}

/* APP LAYOUT */
.app-layout{display:flex;min-height:100vh;}

/* SIDEBAR */
.sidebar{width:var(--sidebar-w);background:var(--primary-dk);display:flex;flex-direction:column;position:fixed;top:0;left:0;height:100vh;z-index:500;transition:transform .3s cubic-bezier(.4,0,.2,1);overflow-y:auto;overflow-x:hidden;}
.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;min-height:64px;border-bottom:1px solid rgba(255,255,255,.06);}
.sidebar-logo{font-family:'Roboto Slab',serif;font-size:1.3rem;font-weight:700;color:var(--surface);letter-spacing:-.3px;}
.sidebar-logo span{color:var(--secondary-lt);}
.sidebar-logo-img{height:44px;width:auto;max-width:180px;object-fit:contain;display:block;}
.sidebar-close{display:none;background:none;border:none;color:rgba(255,255,255,.5);font-size:1.2rem;cursor:pointer;line-height:1;padding:4px;}
.sidebar-user{display:flex;align-items:center;gap:12px;padding:16px 20px;background:rgba(255,255,255,.04);border-bottom:1px solid rgba(255,255,255,.06);}
.s-avatar{width:40px;height:40px;border-radius:50%;background:var(--secondary);color:#fff;display:flex;align-items:center;justify-content:center;font-family:'Roboto',sans-serif;font-size:.9rem;font-weight:700;flex-shrink:0;}
.s-avatar.admin-av{background:var(--error);}
.s-name{font-weight:500;color:var(--surface);font-size:.9rem;}
.s-role{font-size:.72rem;color:var(--secondary-lt);margin-top:1px;letter-spacing:.3px;}
.sidebar-nav{flex:1;padding:8px 0;}
.nav-section{padding:16px 20px 6px;font-size:.65rem;font-weight:500;letter-spacing:1.8px;text-transform:uppercase;color:rgba(255,255,255,.35);}
.nav-link{display:flex;align-items:center;gap:12px;padding:12px 20px;color:rgba(255,255,255,.7);font-size:.875rem;font-weight:400;transition:all .2s;position:relative;cursor:pointer;border-left:3px solid transparent;}
.nav-link:hover{color:#fff;background:rgba(255,255,255,.06);}
.nav-link.active{color:var(--accent);background:rgba(255,213,79,.1);border-left-color:var(--accent);font-weight:500;}
.nav-link .ni{font-size:.95rem;width:20px;text-align:center;flex-shrink:0;opacity:.8;}
.nav-badge{margin-left:auto;background:var(--error);color:#fff;border-radius:var(--radius-full);padding:1px 7px;font-size:.65rem;font-weight:700;}
.nav-link.danger{color:rgba(255,120,120,.75);}
.nav-link.danger:hover{color:#ffaaaa;background:rgba(255,80,80,.08);}
.sidebar-foot{padding:8px 0;border-top:1px solid rgba(255,255,255,.06);}
.sidebar-ver{padding:6px 20px;font-size:.68rem;color:rgba(255,255,255,.2);}

/* OVERLAY */
.sb-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:499;}
.sb-overlay.show{display:block;}

/* MAIN */
.main-area{margin-left:var(--sidebar-w);flex:1;min-width:0;display:flex;flex-direction:column;min-height:100vh;}

/* TOPBAR */
.topbar{position:sticky;top:0;z-index:100;height:var(--topbar-h);background:var(--primary);display:flex;align-items:center;justify-content:space-between;padding:0 24px;box-shadow:var(--elev-2);color:#fff;}
.topbar-menu{display:none;flex-direction:column;gap:5px;background:none;border:none;cursor:pointer;padding:6px;border-radius:50%;transition:background .2s;}
.topbar-menu:hover{background:rgba(255,255,255,.1);}
.topbar-menu span{display:block;width:22px;height:2px;background:#fff;border-radius:2px;}
.topbar-title{font-family:'Roboto',sans-serif;font-size:1.1rem;font-weight:500;color:#fff;letter-spacing:.15px;}
.topbar-right{display:flex;align-items:center;gap:8px;}
.topbar-notif{position:relative;font-size:1.15rem;color:rgba(255,255,255,.85);cursor:pointer;padding:8px;border-radius:50%;transition:background .2s;}
.topbar-notif:hover{background:rgba(255,255,255,.12);}
.notif-dot{position:absolute;top:2px;right:2px;background:var(--accent);color:#000;border-radius:50%;width:18px;height:18px;display:flex;align-items:center;justify-content:center;font-size:.62rem;font-weight:700;}
.topbar-av{width:36px;height:36px;border-radius:50%;background:rgba(255,255,255,.2);color:#fff;display:flex;align-items:center;justify-content:center;font-family:'Roboto',sans-serif;font-size:.85rem;font-weight:500;cursor:pointer;border:2px solid rgba(255,255,255,.3);}
.topbar-av.admin-av{background:rgba(183,28,28,.6);}

/* PAGE */
.page-body{flex:1;padding:24px;max-width:1280px;width:100%;min-width:0;overflow:hidden;}

/* CARDS */
.card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--elev-1);overflow:hidden;transition:box-shadow .3s;}
.card:hover{box-shadow:var(--elev-2);}
.card-head{padding:16px 20px;border-bottom:1px solid var(--divider);display:flex;align-items:center;justify-content:space-between;gap:12px;}
.card-head h3{font-family:'Roboto',sans-serif;font-size:.95rem;font-weight:500;color:var(--on-surface);letter-spacing:.15px;}
.card-body{padding:20px;}
.card-foot{padding:12px 20px;background:var(--surface-2);border-top:1px solid var(--divider);display:flex;align-items:center;justify-content:space-between;gap:10px;}

/* STAT CARDS */
.stats-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:16px;margin-bottom:20px;}
.stat-card{background:var(--surface);border-radius:var(--radius);padding:20px;box-shadow:var(--elev-1);border-top:3px solid transparent;transition:box-shadow .3s,transform .2s;}
.stat-card:hover{box-shadow:var(--elev-2);transform:translateY(-2px);}
.stat-card.gold{border-top-color:#f9a825;}
.stat-card.green{border-top-color:var(--primary);}
.stat-card.blue{border-top-color:#1565c0;}
.stat-card.red{border-top-color:var(--error);}
.stat-card.purple{border-top-color:#6a1b9a;}
.stat-card.orange{border-top-color:#e65100;}
.stat-card.teal{border-top-color:#00695c;}
.stat-ico{font-size:1.6rem;margin-bottom:10px;opacity:.8;}
.stat-lbl{font-size:.68rem;font-weight:500;text-transform:uppercase;letter-spacing:1.2px;color:var(--on-surface-3);margin-bottom:6px;}
.stat-val{font-family:'Roboto',sans-serif;font-size:1.75rem;font-weight:700;color:var(--on-surface);line-height:1;letter-spacing:-.5px;}
.stat-sub{font-size:.75rem;color:var(--on-surface-3);margin-top:4px;}

/* LEVEL BANNER */
.level-banner{background:linear-gradient(135deg,var(--primary-dk) 0%,var(--primary) 100%);border-radius:var(--radius);padding:20px 24px;margin-bottom:20px;color:#fff;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:16px;box-shadow:var(--elev-2);}
.lb-info h2{font-family:'Roboto',sans-serif;font-size:1.2rem;font-weight:500;color:var(--accent);}
.lb-info p{color:rgba(255,255,255,.65);font-size:.82rem;margin-top:3px;}
.lb-progress{flex:1;min-width:200px;max-width:300px;}
.lb-prog-labels{display:flex;justify-content:space-between;font-size:.7rem;color:rgba(255,255,255,.55);margin-bottom:6px;}
.lb-track{height:6px;background:rgba(255,255,255,.15);border-radius:3px;overflow:hidden;}
.lb-fill{height:100%;background:linear-gradient(90deg,var(--secondary),var(--accent));border-radius:3px;transition:width 1s ease;}
.lb-badge .lbb{display:inline-flex;flex-direction:column;align-items:center;background:rgba(255,213,79,.15);border:1px solid rgba(255,213,79,.4);border-radius:var(--radius-sm);padding:10px 18px;}
.lbb-num{font-family:'Roboto',sans-serif;font-size:1.8rem;font-weight:700;color:var(--accent);line-height:1;}
.lbb-txt{font-size:.65rem;color:rgba(255,213,79,.8);letter-spacing:1px;text-transform:uppercase;margin-top:2px;}

/* GRID */
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px;}

/* REF BOX */
.ref-box{background:var(--primary-surf);border:1.5px solid rgba(27,94,32,.2);border-radius:var(--radius-sm);padding:14px 16px;}
.ref-box label{font-size:.7rem;font-weight:500;color:var(--primary);text-transform:uppercase;letter-spacing:1px;display:block;margin-bottom:8px;}
.ref-row{display:flex;align-items:center;gap:8px;}
.ref-row input{flex:1;min-width:0;background:var(--surface);border:1px solid var(--divider);border-radius:var(--radius-sm);padding:9px 12px;font-size:.83rem;outline:none;overflow:hidden;text-overflow:ellipsis;}
.ref-copy{background:var(--primary);color:#fff;border:none;border-radius:var(--radius-sm);padding:9px 16px;font-size:.78rem;font-weight:500;cursor:pointer;text-transform:uppercase;letter-spacing:.5px;transition:background .2s;white-space:nowrap;}
.ref-copy:hover{background:var(--primary-lt);}

/* TABLES */
.table-wrap{overflow-x:auto;}
table{width:100%;border-collapse:collapse;font-size:.85rem;}
thead th{background:var(--surface-2);padding:12px 16px;text-align:left;font-size:.7rem;font-weight:500;text-transform:uppercase;letter-spacing:1px;color:var(--on-surface-2);border-bottom:2px solid var(--divider);}
tbody td{padding:12px 16px;border-bottom:1px solid var(--divider);color:var(--on-surface);vertical-align:middle;}
tbody tr:last-child td{border-bottom:none;}
tbody tr:hover{background:rgba(0,0,0,.02);}
.td-bold{font-weight:500;}
.td-mono{font-family:'Roboto Mono',monospace;font-size:.82rem;}
.td-muted{color:var(--on-surface-2);font-size:.82rem;}

/* BADGES */
.badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:var(--radius-full);font-size:.68rem;font-weight:500;text-transform:uppercase;letter-spacing:.5px;}
.badge-gold{background:#fff8e1;color:#f57f17;}
.badge-green{background:var(--success-lt);color:var(--success);}
.badge-red{background:var(--error-lt);color:var(--error);}
.badge-blue{background:#e3f2fd;color:#1565c0;}
.badge-gray{background:var(--surface-3);color:var(--on-surface-2);}

/* EARN LIST */
.earn-list li{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--divider);gap:12px;}
.earn-list li:last-child{border-bottom:none;}
.el-left{display:flex;align-items:center;gap:12px;}
.el-dot{width:36px;height:36px;border-radius:50%;background:var(--primary-surf);display:flex;align-items:center;justify-content:center;font-size:.9rem;flex-shrink:0;}
.el-name{font-weight:500;font-size:.875rem;}
.el-time{font-size:.72rem;color:var(--on-surface-3);margin-top:1px;}
.el-amt{font-family:'Roboto Mono',monospace;font-size:1rem;font-weight:500;color:var(--success);white-space:nowrap;}

/* MATRIX TREE — circular node design */
.mt-wrap{overflow-x:auto;padding:28px 12px 8px;text-align:center;width:100%;-webkit-overflow-scrolling:touch;}
.mt-root{display:inline-flex;flex-direction:column;align-items:center;min-width:max-content;}
.mt-ul{list-style:none;margin:0;padding:0;display:flex;}
.mt-li{display:flex;flex-direction:column;align-items:center;padding:28px 8px 0;position:relative;}
/* Horizontal bar connecting siblings */
.mt-li::after{content:'';position:absolute;top:0;height:2px;background:var(--secondary);left:0;right:0;}
.mt-li:first-child::after{left:50%;}
.mt-li:last-child::after{right:50%;}
.mt-li:only-child::after{display:none;}
/* Vertical line from horizontal bar down to node */
.mt-li::before{content:'';position:absolute;top:0;left:50%;transform:translateX(-1px);width:2px;height:28px;background:var(--secondary);}
/* Arrowhead at bottom of vertical connector */
.mt-node::before{content:'';position:absolute;top:-8px;left:50%;transform:translateX(-50%);width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:7px solid var(--secondary);}
.mt-node.mt-you::before{display:none;}
/* Explicit vertical connector bar (root→L1, L1→L2) */
.mt-vbar{width:2px;height:28px;background:var(--secondary);margin:0 auto;position:relative;}
.mt-vbar::after{content:'';display:block;position:absolute;bottom:-6px;left:50%;transform:translateX(-50%);width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top:7px solid var(--secondary);}
/* Node circles */
.mt-node{width:76px;height:76px;border-radius:50%;border:2.5px solid var(--secondary);background:var(--surface);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:8px;position:relative;z-index:2;box-shadow:var(--elev-1);}
.mt-node.mt-you{border-color:var(--primary);border-width:3px;background:var(--primary-surf);}
.mt-node.mt-filled{border-color:var(--secondary);}
.mt-node.mt-empty{border-color:var(--divider);background:var(--surface-2);border-style:dashed;}
.mt-node.mt-sm{width:58px;height:58px;padding:5px;}
.mt-name{font-size:.68rem;font-weight:700;color:var(--on-surface);line-height:1.2;word-break:break-word;}
.mt-sub{font-size:.57rem;color:var(--on-surface-3);margin-top:2px;line-height:1.2;}
.mt-node.mt-you .mt-name{color:var(--primary-dk);}
.mt-node.mt-empty .mt-name{color:var(--on-surface-3);}
.mt-node.mt-sm .mt-name{font-size:.6rem;}
.mt-node.mt-sm .mt-sub{font-size:.52rem;}

/* LEVEL BARS */
.lv-bar-item{margin-bottom:14px;}
.lv-bar-hd{display:flex;justify-content:space-between;align-items:center;margin-bottom:5px;}
.lv-bar-name{font-size:.82rem;font-weight:500;}
.lv-bar-val{font-family:'Roboto Mono',monospace;font-size:.9rem;color:var(--primary);font-weight:500;}
.lv-track{height:5px;background:var(--surface-3);border-radius:3px;overflow:hidden;}
.lv-fill{height:100%;background:linear-gradient(90deg,var(--primary),var(--secondary));border-radius:3px;transition:width 1s ease;}

/* PAGINATION */
.pagination{display:flex;align-items:center;gap:4px;flex-wrap:wrap;}
.page-btn{padding:6px 12px;border-radius:var(--radius-sm);border:1px solid var(--divider);background:var(--surface);font-size:.8rem;cursor:pointer;color:var(--on-surface-2);transition:all .2s;}
.page-btn:hover{border-color:var(--primary);color:var(--primary);}
.page-btn.active{background:var(--primary);color:#fff;border-color:var(--primary);}

/* NOTIFICATIONS */
.notif-item{display:flex;gap:14px;padding:14px 0;border-bottom:1px solid var(--divider);}
.notif-item:last-child{border-bottom:none;}
.notif-item.unread{background:rgba(27,94,32,.03);border-radius:var(--radius-sm);padding:14px;margin:-1px -14px;}
.notif-type-dot{width:8px;height:8px;border-radius:50%;margin-top:6px;flex-shrink:0;}
.nd-success{background:var(--success);}
.nd-info{background:var(--info);}
.nd-warning{background:var(--warn);}
.nd-error{background:var(--error);}
.notif-body h4{font-size:.875rem;font-weight:500;color:var(--on-surface);margin-bottom:2px;}
.notif-body p{font-size:.8rem;color:var(--on-surface-2);line-height:1.5;}
.notif-time{font-size:.7rem;color:var(--on-surface-3);margin-top:4px;}

/* WITHDRAW */
.withdraw-summary{background:linear-gradient(135deg,var(--primary-dk),var(--primary));border-radius:var(--radius-sm);padding:20px;color:#fff;margin-bottom:20px;}
.withdraw-summary label{font-size:.7rem;color:rgba(255,255,255,.65);text-transform:uppercase;letter-spacing:1px;}
.withdraw-summary .ws-val{font-family:'Roboto Mono',monospace;font-size:2rem;font-weight:700;color:var(--accent);margin-top:4px;}

/* PROFILE */
.profile-header{background:linear-gradient(135deg,var(--primary-dk) 0%,var(--primary) 60%,var(--primary-lt) 100%);border-radius:var(--radius-lg);padding:28px 32px;margin-bottom:24px;box-shadow:var(--elev-3);position:relative;overflow:hidden;}
.profile-header::before{content:'';position:absolute;top:-40px;right:-40px;width:180px;height:180px;border-radius:50%;background:rgba(255,255,255,.04);}
.profile-header::after{content:'';position:absolute;bottom:-60px;right:80px;width:240px;height:240px;border-radius:50%;background:rgba(255,255,255,.03);}
.ph-top{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-bottom:24px;position:relative;z-index:1;}
.profile-av{width:76px;height:76px;border-radius:50%;background:var(--secondary);color:#fff;display:flex;align-items:center;justify-content:center;font-family:'Roboto Slab',serif;font-size:1.9rem;font-weight:700;flex-shrink:0;border:3px solid rgba(255,255,255,.3);box-shadow:0 4px 14px rgba(0,0,0,.25);}
.profile-info{flex:1;min-width:0;}
.profile-info h2{font-family:'Roboto Slab',serif;color:#fff;font-size:1.25rem;font-weight:700;margin-bottom:4px;}
.profile-info .pi-email{color:rgba(255,255,255,.65);font-size:.82rem;margin-bottom:8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.pi-badges{display:flex;gap:6px;flex-wrap:wrap;}
.pi-badge{display:inline-block;padding:3px 10px;border-radius:100px;font-size:.68rem;font-weight:600;letter-spacing:.5px;text-transform:uppercase;}
.pi-badge-gold{background:rgba(184,137,42,.35);color:#ffd54f;border:1px solid rgba(255,213,79,.3);}
.pi-badge-gray{background:rgba(255,255,255,.1);color:rgba(255,255,255,.6);border:1px solid rgba(255,255,255,.15);}
.ph-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;position:relative;z-index:1;}
.ph-stat{background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.15);border-radius:10px;padding:14px 12px;text-align:center;backdrop-filter:blur(4px);}
.ph-stat-val{font-family:'Roboto Mono',monospace;font-size:1rem;font-weight:700;color:#ffd54f;line-height:1.2;word-break:break-all;}
.ph-stat-lbl{font-size:.62rem;color:rgba(255,255,255,.55);text-transform:uppercase;letter-spacing:1px;margin-top:5px;}
@media(max-width:600px){.ph-stats{grid-template-columns:repeat(2,1fr);}}

/* MISC */
.divider{height:1px;background:var(--divider);margin:16px 0;}
.text-center{text-align:center;}
.text-right{text-align:right;}
.text-muted{color:var(--on-surface-3);}
.text-gold{color:var(--secondary);}
.text-green{color:var(--primary);}
.text-red{color:var(--error);}
.fw-bold{font-weight:500;}
.font-mono{font-family:'Roboto Mono',monospace;}
.mt-4{margin-top:4px;}.mt-8{margin-top:8px;}.mt-12{margin-top:12px;}.mt-16{margin-top:16px;}.mt-20{margin-top:20px;}.mt-24{margin-top:24px;}
.mb-8{margin-bottom:8px;}.mb-12{margin-bottom:12px;}.mb-16{margin-bottom:16px;}.mb-20{margin-bottom:20px;}.mb-24{margin-bottom:24px;}
.gap-8{gap:8px;}.gap-12{gap:12px;}
.flex{display:flex;}.flex-center{display:flex;align-items:center;}
.flex-between{display:flex;align-items:center;justify-content:space-between;}
.flex-wrap{flex-wrap:wrap;}
.empty{text-align:center;padding:40px 20px;color:var(--on-surface-3);}
.empty-ico{font-size:2.5rem;margin-bottom:12px;opacity:.35;}
.empty p{font-size:.875rem;}
.spinner{display:inline-block;width:16px;height:16px;border:2px solid rgba(255,255,255,.3);border-top-color:#fff;border-radius:50%;animation:spin .7s linear infinite;}
@keyframes spin{to{transform:rotate(360deg);}}
#toast{position:fixed;bottom:24px;right:24px;z-index:9999;background:var(--on-surface);color:var(--surface);padding:12px 20px;border-radius:var(--radius-sm);font-size:.875rem;box-shadow:var(--elev-3);transform:translateY(80px);transition:transform .3s cubic-bezier(.4,0,.2,1);max-width:320px;}
#toast.show{transform:translateY(0);}
/* PWA Install Popup */
.pwa-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.5);z-index:9990;align-items:flex-end;justify-content:center;padding:16px;}
.pwa-overlay.show{display:flex;}
.pwa-popup{background:#fff;border-radius:20px 20px 16px 16px;width:100%;max-width:420px;overflow:hidden;box-shadow:0 -4px 32px rgba(0,0,0,.2);animation:pwaSlideUp .35s cubic-bezier(.4,0,.2,1);}
@keyframes pwaSlideUp{from{transform:translateY(100%);opacity:0;}to{transform:translateY(0);opacity:1;}}
.pwa-popup-head{background:linear-gradient(135deg,var(--primary-dk),var(--primary));padding:24px 20px 20px;text-align:center;position:relative;}
.pwa-popup-head button{position:absolute;top:12px;right:14px;background:rgba(255,255,255,.15);border:none;color:#fff;border-radius:50%;width:28px;height:28px;cursor:pointer;font-size:.85rem;display:flex;align-items:center;justify-content:center;}
.pwa-popup-icon{width:72px;height:72px;border-radius:16px;background:#fff;margin:0 auto 12px;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px rgba(0,0,0,.15);overflow:hidden;}
.pwa-popup-icon img{width:60px;height:60px;object-fit:contain;}
.pwa-popup-head h3{color:#fff;font-family:'Roboto Slab',serif;font-size:1.15rem;margin-bottom:4px;}
.pwa-popup-head p{color:rgba(255,255,255,.75);font-size:.82rem;}
.pwa-popup-body{padding:20px;}
.pwa-popup-features{display:flex;flex-direction:column;gap:10px;margin-bottom:20px;}
.pwa-popup-feat{display:flex;align-items:center;gap:12px;font-size:.85rem;color:var(--on-surface-2);}
.pwa-popup-feat span:first-child{font-size:1.2rem;flex-shrink:0;}
.pwa-popup-actions{display:flex;gap:10px;}
.pwa-popup-actions .btn{flex:1;padding:12px;font-size:.88rem;}
.auth-link{text-align:center;margin-top:20px;font-size:.875rem;color:var(--on-surface-2);}
.auth-link a{color:var(--primary);font-weight:500;}

/* RESPONSIVE */
@media(max-width:960px){
  .sidebar{transform:translateX(-100%);}
  .sidebar.open{transform:translateX(0);}
  .sidebar-close{display:block;}
  .main-area{margin-left:0;}
  .topbar-menu{display:flex;}
  .grid-2,.grid-3{grid-template-columns:1fr;}
  .form-row,.form-row-3{grid-template-columns:1fr;}
  .stats-grid{grid-template-columns:1fr 1fr;}
  .level-banner{flex-direction:column;}
  .lb-progress{max-width:100%;width:100%;}
  .table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;}
  .table-wrap table{min-width:500px;}
}
@media(max-width:560px){
  .auth-card{padding:28px 18px;}
  .page-body{padding:14px;overflow:hidden;}
  .stats-grid{grid-template-columns:1fr;}
  .topbar{padding:0 14px;}
  .card-body{padding:14px;}
  .mt-node{width:62px;height:62px;}
  .mt-node.mt-sm{width:46px;height:46px;}
  .mt-name{font-size:.58rem;}
  .mt-sub{font-size:.52rem;}
  .flex-wrap{flex-wrap:wrap;}
}
