:root{
  --bg:#0a0a0a;--surface:#111111;--surface2:#181818;--surface3:#202020;--border:#252525;
  --gold:#C9A84C;--gold-dim:#7a6230;--red:#E03E3E;--orange:#E07C3E;
  --green:#3DBE7A;--white:#F0EDE6;--gray:#888888;
  --text-primary:var(--white);--text-secondary:var(--gray);--text-muted:#555555;

  /* Font scale */
  --fs-display-xl:64px;
  --fs-display-lg:48px;
  --fs-display-md:32px;
  --fs-display-sm:22px;
  --fs-body-lg:14px;
  --fs-body-sm:13px;
  --fs-label:11px;
  --fs-caption:10px;
  --fs-micro:9px;

  /* Spacing scale */
  --sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;
  --sp-5:20px;--sp-6:24px;--sp-7:32px;--sp-8:48px;

  /* Border radius */
  --radius-sm:4px;--radius-md:8px;--radius-lg:10px;--radius-pill:20px;
}
*{box-sizing:border-box;margin:0;padding:0;}
body{background:var(--bg);color:var(--white);font-family:'DM Sans',sans-serif;min-height:100vh;font-size:15px;}

/* SYNC */
.sync-bar{display:flex;align-items:center;gap:8px;padding:6px 20px;background:var(--bg);border-bottom:1px solid var(--border);font-family:'DM Mono',monospace;font-size:var(--fs-label);letter-spacing:2px;text-transform:uppercase;color:var(--gray);}
.sync-dot{width:7px;height:7px;border-radius:50%;background:var(--gray);flex-shrink:0;transition:background .3s;}
.sync-dot.online{background:var(--green);}
.sync-dot.saving{background:var(--gold);animation:pulse .8s infinite;}
.sync-dot.error{background:var(--red);}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.3}}

/* TOPBAR */
.topbar{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;border-bottom:1px solid var(--border);background:var(--bg);position:sticky;top:0;z-index:100;gap:16px;flex-wrap:wrap;}
.logo-area{display:flex;align-items:center;gap:0;flex-shrink:0;}
.logo-img{height:var(--fs-display-lg);width:auto;}
.logo-badge{font-family:'DM Mono',monospace;font-size:var(--fs-micro);letter-spacing:2px;color:var(--gray);text-transform:uppercase;border-left:1px solid var(--border);padding-left:12px;margin-left:12px;}
.tabs{display:flex;gap:3px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--sp-1);flex-wrap:wrap;}
.tab{font-family:'DM Mono',monospace;font-size:var(--fs-label);letter-spacing:2px;text-transform:uppercase;padding:var(--sp-2) var(--fs-display-sm);border-radius:var(--radius-sm);cursor:pointer;color:var(--gray);border:none;background:transparent;transition:all .2s;white-space:nowrap;}
.tab.active{background:var(--gold);color:#000;font-weight:500;}
.tab:hover:not(.active){color:var(--white);}
/* PAGES */
.page{display:none;padding:var(--sp-6) var(--sp-5);animation:fadeIn .25s ease;}
.page.active{display:block;}
@keyframes fadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
.page-header{display:flex;align-items:baseline;gap:var(--sp-4);margin-bottom:var(--sp-5);flex-wrap:wrap;}
.page-title{font-family:'Bebas Neue',sans-serif;font-size:36px;letter-spacing:3px;line-height:1;}
.page-period{font-family:'DM Mono',monospace;font-size:var(--fs-label);letter-spacing:3px;color:var(--gold-dim);text-transform:uppercase;}
.sec-label{font-family:'DM Mono',monospace;font-size:var(--fs-label);letter-spacing:2px;text-transform:uppercase;color:var(--gray);margin-bottom:var(--sp-2);}

/* BARBER CARDS */
.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:18px;}
.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;}
.card-header{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-5) var(--sp-5) var(--sp-4);border-bottom:1px solid var(--border);}
.card-name{font-family:'Bebas Neue',sans-serif;font-size:var(--fs-display-lg);letter-spacing:2px;line-height:1;}
.rank-badge{font-family:'DM Mono',monospace;font-size:var(--fs-label);letter-spacing:2px;text-transform:uppercase;padding:6px 14px;border-radius:var(--radius-pill);border:1px solid;}
.rank-master{border-color:var(--gold);color:var(--gold);background:rgba(201,168,76,0.08);}
.rank-pro{border-color:var(--green);color:var(--green);background:rgba(61,190,122,0.08);}
.rank-base{border-color:var(--gray);color:var(--gray);background:transparent;}
.card-body{padding:var(--sp-5) var(--sp-5);}

/* AVG BILL BLOCK */
.avg-bill-block{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--sp-4) var(--sp-4);margin-bottom:var(--sp-4);}
.avg-bill-title{font-family:'DM Mono',monospace;font-size:var(--fs-caption);letter-spacing:3px;text-transform:uppercase;color:var(--gray);text-align:center;margin-bottom:var(--sp-4);}
.avg-bill-main{display:flex;align-items:center;justify-content:center;gap:var(--sp-5);}
.avg-bill-legend{display:flex;flex-direction:column;gap:var(--sp-2);}
.avg-bill-row{display:flex;align-items:center;gap:var(--sp-2);}
.avg-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0;}
.avg-dot.red{background:var(--red);}
.avg-dot.gold{background:var(--gold);}
.avg-dot.green{background:var(--green);}
.avg-dot-label{font-family:'DM Mono',monospace;font-size:var(--fs-label);color:var(--gray);}
.avg-bill-value-wrap{text-align:center;}
.avg-bill-value{font-family:'Bebas Neue',sans-serif;font-size:var(--fs-display-xl);letter-spacing:1px;line-height:1;}
.avg-bill-unit{font-family:'DM Mono',monospace;font-size:var(--fs-body-sm);color:var(--gray);margin-top:2px;}

/* MONTH DOTS */
.months-section{margin-bottom:var(--sp-4);}
.months-dots{display:flex;gap:var(--sp-2);flex-wrap:wrap;}
.month-dot{display:flex;flex-direction:column;align-items:center;gap:5px;}
.month-dot-circle{width:42px;height:42px;border-radius:7px;border:1px solid var(--border);background:var(--surface2);display:flex;align-items:center;justify-content:center;font-family:'DM Mono',monospace;font-size:var(--fs-caption);color:var(--gray);}
.month-dot-lbl{font-family:'DM Mono',monospace;font-size:var(--fs-micro);color:var(--gray);text-align:center;}
.month-dot.clean .month-dot-circle{background:rgba(61,190,122,0.15);border-color:var(--green);color:var(--green);}
.month-dot.gold .month-dot-circle{background:rgba(201,168,76,0.15);border-color:var(--gold);color:var(--gold);}
.month-dot.dirty .month-dot-circle{background:rgba(224,62,62,0.12);border-color:var(--red);color:var(--red);}
.month-dot.warn .month-dot-circle{background:rgba(224,124,62,0.15);border-color:var(--orange);color:var(--orange);}

/* BARS */
.bars-section{margin-bottom:var(--sp-4);}
.bar-item{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:13px;}
.bar-item-label{font-family:'DM Sans',sans-serif;font-size:var(--fs-body-lg);font-weight:500;color:var(--white);width:110px;flex-shrink:0;line-height:1.3;}
.bar-item-sub{font-family:'DM Mono',monospace;font-size:var(--fs-label);color:var(--gold-dim);}
.bar-track{flex:1;height:9px;background:var(--surface2);border-radius:5px;overflow:hidden;}
.bar-fill{height:100%;border-radius:5px;transition:width .5s ease,background .3s;}
.bar-fill.c0{background:var(--surface3);width:0%}
.bar-fill.c1{background:var(--green)}
.bar-fill.c2{background:#5bbf5e}
.bar-fill.c3{background:var(--orange)}
.bar-fill.c4{background:#e05a3e}
.bar-fill.c5{background:var(--red)}
.bar-count{font-family:'Bebas Neue',sans-serif;font-size:var(--fs-display-sm);color:var(--white);width:22px;text-align:right;flex-shrink:0;}

/* COMMISSION */
.commission-row{display:flex;align-items:center;justify-content:space-between;background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--sp-4) var(--sp-5);}
.commission-label{font-family:'DM Mono',monospace;font-size:var(--fs-caption);letter-spacing:2px;text-transform:uppercase;color:var(--gray);}
.commission-sub{font-family:'DM Sans',sans-serif;font-size:var(--fs-body-sm);color:var(--gray);margin-top:var(--sp-1);}
.commission-value{font-family:'Bebas Neue',sans-serif;font-size:68px;letter-spacing:1px;line-height:1;}
.commission-value.pct-red{color:var(--red);text-shadow:0 0 24px rgba(224,62,62,0.25);}
.commission-value.pct-orange{color:var(--gold);text-shadow:0 0 24px rgba(201,168,76,0.25);}
.commission-value.pct-green{color:var(--green);text-shadow:0 0 24px rgba(61,190,122,0.25);}

/* ADMIN CARDS */
.admin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:18px;}
.admin-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;}
.admin-header{padding:18px 22px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;}
.admin-name{font-family:'Bebas Neue',sans-serif;font-size:var(--fs-display-lg);letter-spacing:2px;}
.admin-body{padding:18px 22px;}

/* ADMIN BONUS BLOCK */
.admin-bonus-block{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--sp-4) var(--sp-5);margin-top:var(--sp-4);}
.admin-bonus-title{font-family:'DM Mono',monospace;font-size:var(--fs-label);letter-spacing:2px;text-transform:uppercase;color:var(--gray);margin-bottom:var(--sp-2);}
.admin-bonus-total{font-family:'Bebas Neue',sans-serif;font-size:56px;line-height:1;color:var(--gold);text-shadow:0 0 20px rgba(201,168,76,0.2);}
.admin-bonus-unit{font-family:'DM Mono',monospace;font-size:var(--fs-body-sm);color:var(--gray);margin-top:3px;}
.admin-bonus-rows{margin-top:var(--sp-3);display:flex;flex-direction:column;gap:6px;}
.admin-bonus-row{display:flex;justify-content:space-between;align-items:center;}
.admin-bonus-row-label{font-family:'DM Sans',sans-serif;font-size:var(--fs-body-sm);color:var(--gray);}
.admin-bonus-row-val{font-family:'DM Mono',monospace;font-size:var(--fs-body-sm);color:var(--white);}

/* STATUS BADGE */
.status-badge{font-family:'DM Mono',monospace;font-size:var(--fs-label);letter-spacing:2px;text-transform:uppercase;padding:5px 12px;border-radius:var(--radius-pill);border:1px solid;}

/* MANAGER */
.mgr-two-col{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-6);}
.mgr-section-label{font-family:'DM Mono',monospace;font-size:var(--fs-label);letter-spacing:3px;text-transform:uppercase;color:var(--gold-dim);margin-bottom:var(--sp-4);padding-bottom:var(--sp-2);border-bottom:1px solid var(--border);}
.mgr-cards{display:flex;flex-direction:column;gap:var(--sp-4);}
.mgr-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);overflow:hidden;}
.mgr-card-header{padding:14px 18px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;}
.mgr-name{font-family:'Bebas Neue',sans-serif;font-size:28px;letter-spacing:2px;}
.mgr-role{font-family:'DM Mono',monospace;font-size:var(--fs-caption);letter-spacing:2px;color:var(--gray);text-transform:uppercase;}
.mgr-body{padding:var(--sp-4) 18px;}
.rank-selector{display:flex;gap:6px;margin-bottom:var(--sp-4);}
.rank-btn{flex:1;padding:var(--sp-2) 6px;border:1px solid var(--border);background:var(--surface2);color:var(--gray);font-family:'DM Mono',monospace;font-size:var(--fs-caption);letter-spacing:1px;text-transform:uppercase;border-radius:var(--radius-sm);cursor:pointer;transition:all .2s;text-align:center;}
.rank-btn.sel-base{border-color:var(--gray);color:var(--white);background:rgba(102,102,102,0.2);}
.rank-btn.sel-pro{border-color:var(--green);color:var(--green);background:rgba(61,190,122,0.12);}
.rank-btn.sel-master{border-color:var(--gold);color:var(--gold);background:rgba(201,168,76,0.12);}
.mgr-field{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--sp-3);}
.mgr-field-label{font-family:'DM Sans',sans-serif;font-size:var(--fs-body-lg);font-weight:500;color:var(--white);flex:1;}
.mgr-field-sub{font-family:'DM Mono',monospace;font-size:var(--fs-label);color:var(--gold-dim);}
.stepper{display:flex;align-items:center;}
.step-btn{width:34px;height:34px;border:1px solid var(--border);background:var(--surface2);color:var(--white);font-size:20px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s;font-family:'DM Mono',monospace;line-height:1;}
.step-btn:first-child{border-radius:var(--radius-sm) 0 0 var(--radius-sm);}
.step-btn:last-child{border-radius:0 var(--radius-sm) var(--radius-sm) 0;}
.step-btn:hover{background:var(--gold);color:#000;}
.step-val{min-width:46px;height:34px;background:var(--surface2);border-top:1px solid var(--border);border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:center;font-family:'Bebas Neue',sans-serif;font-size:var(--fs-display-sm);color:var(--white);}
.avg-input-row{display:flex;align-items:center;gap:var(--sp-2);margin-bottom:var(--sp-3);}
.avg-input-label{font-family:'DM Sans',sans-serif;font-size:var(--fs-body-lg);font-weight:500;color:var(--white);flex:1;}
.avg-input{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--white);font-family:'DM Mono',monospace;font-size:var(--fs-body-lg);padding:var(--sp-2) var(--sp-3);width:120px;text-align:right;outline:none;transition:border-color .2s;}
.avg-input:focus{border-color:var(--gold);}
.divider{height:1px;background:var(--border);margin:var(--sp-4) 0;}
.save-btn{display:inline-flex;align-items:center;gap:var(--sp-2);background:var(--gold);color:#000;border:none;border-radius:var(--radius-sm);padding:14px var(--sp-7);font-family:'DM Mono',monospace;font-size:var(--fs-label);letter-spacing:3px;text-transform:uppercase;cursor:pointer;transition:opacity .2s;margin-top:var(--sp-5);}
.save-btn:hover{opacity:.85;}
.save-btn:disabled{opacity:.4;cursor:not-allowed;}

/* STAFF MGMT */
.staff-mgmt{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:22px;margin-bottom:var(--sp-6);}
.staff-mgmt-title{font-family:'Bebas Neue',sans-serif;font-size:26px;letter-spacing:2px;margin-bottom:18px;}
.staff-list{display:flex;flex-direction:column;gap:var(--sp-2);margin-bottom:18px;}
.staff-row{display:flex;align-items:center;gap:var(--sp-3);background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--sp-3) var(--sp-4);}
.staff-row-name{font-family:'Bebas Neue',sans-serif;font-size:var(--fs-display-sm);letter-spacing:1px;flex:1;}
.staff-row-role{font-family:'DM Mono',monospace;font-size:var(--fs-caption);letter-spacing:2px;text-transform:uppercase;padding:var(--sp-1) 10px;border-radius:12px;border:1px solid;}
.staff-row-role.barber{border-color:var(--gold);color:var(--gold);}
.staff-row-role.admin{border-color:var(--green);color:var(--green);}
.staff-del-btn{width:30px;height:30px;border:1px solid var(--border);background:transparent;color:var(--gray);border-radius:var(--radius-sm);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:18px;transition:all .2s;flex-shrink:0;}
.staff-del-btn:hover{border-color:var(--red);color:var(--red);background:rgba(224,62,62,0.1);}
.add-staff-row{display:flex;gap:var(--sp-2);align-items:center;flex-wrap:wrap;}
.staff-name-input{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--white);font-family:'DM Mono',monospace;font-size:var(--fs-body-lg);padding:var(--sp-2) var(--sp-3);outline:none;transition:border-color .2s;flex:1;min-width:120px;}
.staff-name-input:focus{border-color:var(--gold);}
.staff-name-input::placeholder{color:var(--gray);}
.role-toggle{display:flex;gap:0;}
.role-toggle-btn{padding:var(--sp-2) var(--sp-4);border:1px solid var(--border);background:var(--surface2);color:var(--gray);font-family:'DM Mono',monospace;font-size:var(--fs-caption);letter-spacing:1px;text-transform:uppercase;cursor:pointer;transition:all .2s;}
.role-toggle-btn:first-child{border-radius:var(--radius-sm) 0 0 var(--radius-sm);}
.role-toggle-btn:last-child{border-radius:0 var(--radius-sm) var(--radius-sm) 0;border-left:none;}
.role-toggle-btn.active-barber{background:rgba(201,168,76,0.15);border-color:var(--gold);color:var(--gold);}
.role-toggle-btn.active-admin{background:rgba(61,190,122,0.12);border-color:var(--green);color:var(--green);}
.add-btn{padding:var(--sp-2) var(--sp-5);background:var(--gold);color:#000;border:none;border-radius:var(--radius-sm);font-family:'DM Mono',monospace;font-size:var(--fs-label);letter-spacing:2px;text-transform:uppercase;cursor:pointer;transition:opacity .2s;white-space:nowrap;}
.add-btn:hover{opacity:.85;}

/* MONTH NAV */
.month-nav{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-5);}
.mnav-btn{width:34px;height:34px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--white);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:border-color .2s;font-size:18px;}
.mnav-btn:hover{border-color:var(--gold);color:var(--gold);}
.mnav-label{font-family:'DM Mono',monospace;font-size:var(--fs-body-sm);letter-spacing:3px;color:var(--white);text-transform:uppercase;min-width:110px;}

/* ANALYTICS */
.an-section{margin-bottom:var(--sp-8);}
.an-section-title{font-family:'Bebas Neue',sans-serif;font-size:30px;letter-spacing:2px;margin-bottom:var(--sp-4);padding-bottom:var(--sp-2);border-bottom:1px solid var(--border);}
.person-pills{display:flex;gap:var(--sp-2);flex-wrap:wrap;margin-bottom:18px;}
.person-pill{font-family:'DM Mono',monospace;font-size:var(--fs-label);letter-spacing:2px;text-transform:uppercase;padding:var(--sp-2) var(--sp-5);border-radius:var(--radius-pill);border:1px solid var(--border);background:var(--surface2);color:var(--gray);cursor:pointer;transition:all .2s;}
.person-pill:hover{border-color:var(--gold-dim);color:var(--white);}
.person-pill.active{border-color:var(--gold);color:var(--gold);background:rgba(201,168,76,0.1);}
.month-picker{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:var(--sp-5);}
.mpick-cell{font-family:'DM Mono',monospace;font-size:var(--fs-caption);letter-spacing:1px;text-transform:uppercase;padding:var(--sp-2) var(--sp-3);border-radius:5px;border:1px solid var(--border);background:var(--surface2);color:var(--gray);cursor:pointer;transition:all .2s;text-align:center;min-width:58px;}
.mpick-cell:hover{border-color:var(--gold-dim);color:var(--white);}
.mpick-cell.sel{border-color:var(--gold);color:var(--gold);background:rgba(201,168,76,0.1);}
.mpick-year{font-family:'DM Mono',monospace;font-size:var(--fs-micro);letter-spacing:2px;color:var(--gold-dim);text-transform:uppercase;align-self:center;margin-right:var(--sp-1);margin-left:var(--sp-2);}
.mpick-year:first-child{margin-left:0;}
.an-charts{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:var(--sp-4);margin-bottom:18px;}
.an-stat-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:18px var(--sp-5);}
.an-stat-label{font-family:'DM Mono',monospace;font-size:var(--fs-caption);letter-spacing:2px;text-transform:uppercase;color:var(--gray);margin-bottom:var(--sp-2);}
.an-stat-value{font-family:'Bebas Neue',sans-serif;font-size:50px;line-height:1;}
.an-stat-sub{font-family:'DM Mono',monospace;font-size:var(--fs-caption);color:var(--gray);margin-top:var(--sp-1);letter-spacing:1px;}
.chart-box{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--sp-4) 18px;}
.chart-box-title{font-family:'DM Mono',monospace;font-size:var(--fs-caption);letter-spacing:2px;text-transform:uppercase;color:var(--gray);margin-bottom:var(--sp-4);}
.chart-svg{width:100%;overflow:visible;}
.rank-timeline{display:flex;gap:0;margin-top:var(--sp-1);}
.rtl-cell{flex:1;height:30px;display:flex;align-items:center;justify-content:center;font-family:'DM Mono',monospace;font-size:var(--fs-micro);letter-spacing:1px;text-transform:uppercase;border-right:1px solid var(--bg);}
.rtl-cell:last-child{border-right:none;}
.rtl-master{background:rgba(201,168,76,0.25);color:var(--gold);}
.rtl-pro{background:rgba(61,190,122,0.2);color:var(--green);}
.rtl-base{background:rgba(102,102,102,0.15);color:var(--gray);}
.an-empty{font-family:'DM Mono',monospace;font-size:var(--fs-label);color:var(--gray);letter-spacing:2px;text-align:center;padding:var(--sp-8);border:1px dashed var(--border);border-radius:var(--radius-md);}

/* LOADING */
.loading-overlay{position:fixed;inset:0;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:999;gap:var(--sp-4);}
.loading-logo{font-family:'Bebas Neue',sans-serif;font-size:var(--fs-display-lg);letter-spacing:8px;color:var(--gold);}
.loading-text{font-family:'DM Mono',monospace;font-size:var(--fs-label);letter-spacing:3px;color:var(--gray);text-transform:uppercase;}
.loading-bar{width:200px;height:2px;background:var(--border);border-radius:1px;overflow:hidden;}
.loading-fill{height:100%;background:var(--gold);border-radius:1px;animation:load 1.5s ease-in-out infinite;}
@keyframes load{0%{width:0;margin-left:0}50%{width:100%;margin-left:0}100%{width:0;margin-left:100%}}

.toast{position:fixed;bottom:var(--sp-6);right:var(--sp-6);background:var(--green);color:#000;font-family:'DM Mono',monospace;font-size:var(--fs-label);letter-spacing:2px;text-transform:uppercase;padding:var(--sp-3) var(--sp-5);border-radius:var(--radius-sm);transform:translateY(60px);opacity:0;transition:all .3s;z-index:1000;}
.toast.show{transform:translateY(0);opacity:1;}

/* MOBILE */
@media(max-width:700px){
  .topbar{padding:10px 14px;}
  .page{padding:var(--sp-4) 14px;}
  .mgr-two-col{grid-template-columns:1fr;}
  .logo-badge{display:none;}
  .tabs{width:100%;}
  .tab{padding:7px 12px;font-size:var(--fs-caption);}
  .cards-grid,.admin-grid{grid-template-columns:1fr;}
  .avg-bill-main{flex-direction:column;gap:var(--sp-2);}
  .card-name,.admin-name{font-size:40px;}
}
@media(max-width:480px){
  .rank-selector{flex-direction:column;}
  .add-staff-row{flex-direction:column;align-items:stretch;}
  .role-toggle{width:100%;}
}
@media(min-width:1400px){
  .page{padding:var(--sp-6) var(--sp-7);}
  .topbar{padding:12px var(--sp-7);}
  .sync-bar{padding:6px var(--sp-7);}
}
::-webkit-scrollbar{width:4px;}
::-webkit-scrollbar-track{background:var(--bg);}
::-webkit-scrollbar-thumb{background:var(--border);border-radius:2px;}

/* PIN LOGIN */
.pin-overlay{position:fixed;inset:0;background:var(--bg);display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:998;gap:var(--sp-6);}
.pin-logo{height:60px;width:auto;margin-bottom:var(--sp-2);}
.pin-title{font-family:'DM Mono',monospace;font-size:var(--fs-label);letter-spacing:4px;text-transform:uppercase;color:var(--gray);}
.pin-display{font-family:'Bebas Neue',sans-serif;font-size:var(--fs-display-lg);letter-spacing:16px;color:var(--white);min-width:180px;text-align:center;height:60px;line-height:60px;}
.pin-dots{display:flex;gap:var(--sp-4);justify-content:center;}
.pin-dot{width:14px;height:14px;border-radius:50%;border:2px solid var(--border);background:transparent;transition:all .15s;}
.pin-dot.filled{background:var(--gold);border-color:var(--gold);}
.pin-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-2);width:220px;}
.pin-btn{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);color:var(--white);font-family:'Bebas Neue',sans-serif;font-size:28px;letter-spacing:1px;height:64px;cursor:pointer;transition:all .15s;display:flex;align-items:center;justify-content:center;}
.pin-btn:hover{border-color:var(--gold);color:var(--gold);}
.pin-btn:active{background:var(--gold);color:#000;transform:scale(.96);}
.pin-btn.del{font-size:20px;color:var(--gray);}
.pin-btn.del:hover{color:var(--red);border-color:var(--red);}
.pin-error{font-family:'DM Mono',monospace;font-size:var(--fs-label);letter-spacing:2px;text-transform:uppercase;color:var(--red);height:16px;}
.pin-user-badge{font-family:'DM Mono',monospace;font-size:var(--fs-label);letter-spacing:2px;text-transform:uppercase;padding:6px var(--sp-4);border-radius:var(--radius-pill);border:1px solid var(--gold);color:var(--gold);background:rgba(201,168,76,0.08);}
.logout-btn{position:fixed;bottom:var(--sp-5);right:var(--sp-5);background:var(--surface);border:1px solid var(--border);color:var(--gray);font-family:'DM Mono',monospace;font-size:var(--fs-caption);letter-spacing:2px;text-transform:uppercase;padding:var(--sp-2) var(--sp-4);border-radius:var(--radius-sm);cursor:pointer;transition:all .2s;z-index:50;}
.logout-btn:hover{border-color:var(--red);color:var(--red);}

/* ── SHOP TABS ── */
.shop-tabs-bar{display:flex;gap:0;border-bottom:2px solid var(--border);margin-bottom:18px;}
.shop-tab-btn{font-family:'DM Mono',monospace;font-size:var(--fs-label);letter-spacing:2px;text-transform:uppercase;padding:var(--sp-2) var(--sp-5);cursor:pointer;color:var(--gray);border:none;background:transparent;border-bottom:2px solid transparent;margin-bottom:-2px;transition:all .2s;}
.shop-tab-btn.active{color:var(--gold);border-bottom-color:var(--gold);}
.shop-tab-btn:hover:not(.active){color:var(--white);}

/* ── WEEK NAV ── */
.week-nav{display:flex;align-items:center;gap:var(--sp-3);margin-bottom:var(--sp-4);}
.wnav-btn{width:32px;height:32px;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--white);cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:18px;transition:border-color .2s;}
.wnav-btn:hover{border-color:var(--gold);color:var(--gold);}
.wnav-lbl{font-family:'DM Mono',monospace;font-size:var(--fs-caption);letter-spacing:2px;color:var(--white);}

/* ── QC REPORT CARDS ── */
.qc-list{display:flex;flex-direction:column;gap:var(--sp-2);}
.qc-rc{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);cursor:pointer;transition:border-color .2s;overflow:hidden;}
.qc-rc:hover{border-color:var(--gold-dim);}
.qc-rc.s-green{border-color:rgba(61,190,122,0.5);}
.qc-rc.s-yellow{border-color:rgba(201,168,76,0.4);}
.qc-rc.s-red{border-color:rgba(224,62,62,0.4);}
.qc-rc-head{display:flex;align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-4);}
.qc-status-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;}
.qc-status-dot.green{background:var(--green);}
.qc-status-dot.yellow{background:var(--gold);}
.qc-status-dot.red{background:var(--red);}
.qc-rc-barber{font-family:'Bebas Neue',sans-serif;font-size:28px;letter-spacing:1px;flex:1;}
.qc-rc-svc{font-family:'DM Mono',monospace;font-size:var(--fs-label);color:var(--gold-dim);letter-spacing:1px;}
.qc-rc-score{font-family:'DM Mono',monospace;font-size:var(--fs-label);padding:3px 10px;border-radius:10px;border:1px solid;}
.qc-rc-score.green{border-color:var(--green);color:var(--green);}
.qc-rc-score.yellow{border-color:var(--gold);color:var(--gold);}
.qc-rc-score.red{border-color:var(--red);color:var(--red);}
.qc-rc-meta{font-family:'DM Mono',monospace;font-size:var(--fs-caption);color:var(--gray);letter-spacing:1px;}
.qc-rc-del{background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--gray);font-size:var(--fs-body-lg);padding:3px 7px;cursor:pointer;transition:all .2s;flex-shrink:0;}
.qc-rc-del:hover{border-color:var(--red);color:var(--red);}
.qc-add-btn{display:flex;align-items:center;justify-content:center;gap:var(--sp-2);width:100%;padding:var(--sp-4);background:transparent;border:2px dashed var(--border);border-radius:var(--radius-md);color:var(--gray);font-family:'DM Mono',monospace;font-size:var(--fs-label);letter-spacing:2px;text-transform:uppercase;cursor:pointer;transition:all .2s;margin-top:var(--sp-1);}
.qc-add-btn:hover{border-color:var(--gold);color:var(--gold);}
.qc-empty{text-align:center;padding:var(--sp-8);font-family:'DM Mono',monospace;font-size:var(--fs-label);letter-spacing:2px;text-transform:uppercase;color:var(--gray);}

/* ── QC MODAL FORM ── */
.qc-approved-banner{background:rgba(61,190,122,0.1);border:1px solid rgba(61,190,122,0.3);border-radius:var(--radius-md);padding:var(--sp-2) var(--sp-3);font-family:'DM Mono',monospace;font-size:var(--fs-label);letter-spacing:2px;color:var(--green);margin-bottom:var(--sp-4);}
.fr{margin-bottom:var(--sp-4);}
.fr2{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-3);}
.flbl{font-family:'DM Mono',monospace;font-size:var(--fs-caption);letter-spacing:2px;text-transform:uppercase;color:var(--gray);margin-bottom:5px;display:block;}
.finp{width:100%;background:var(--surface2);border:1px solid var(--border);border-radius:5px;color:var(--white);font-family:'DM Mono',monospace;font-size:var(--fs-body-sm);padding:var(--sp-2) 11px;outline:none;transition:border-color .2s;}
.finp:focus{border-color:var(--gold);}
.fsel{width:100%;background:var(--surface2);border:1px solid var(--border);border-radius:5px;color:var(--white);font-family:'DM Mono',monospace;font-size:var(--fs-body-sm);padding:var(--sp-2) 11px;outline:none;cursor:pointer;-webkit-appearance:none;}
.ftxa{width:100%;background:var(--surface2);border:1px solid var(--border);border-radius:5px;color:var(--white);font-family:'DM Sans',sans-serif;font-size:var(--fs-body-lg);padding:var(--sp-2) 11px;outline:none;resize:vertical;min-height:64px;transition:border-color .2s;}
.ftxa:focus{border-color:var(--gold);}
.tg{display:flex;border:1px solid var(--border);border-radius:5px;overflow:hidden;}
.tgb{flex:1;padding:var(--sp-2) 6px;background:var(--surface2);border:none;border-right:1px solid var(--border);color:var(--gray);font-family:'DM Mono',monospace;font-size:var(--fs-caption);letter-spacing:1px;text-transform:uppercase;cursor:pointer;transition:all .2s;text-align:center;}
.tgb:last-child{border-right:none;}
.tgb.sel-gold{background:rgba(201,168,76,0.2);color:var(--gold);}
.tgb.sel-green{background:rgba(61,190,122,0.15);color:var(--green);}
.tgb.sel-red{background:rgba(224,62,62,0.15);color:var(--red);}
.tgb.sel-gray{background:rgba(136,136,136,0.15);color:var(--white);}

/* ── QC CHECKLIST ── */
.cs{background:var(--surface2);border:1px solid var(--border);border-radius:7px;margin-bottom:var(--sp-3);overflow:hidden;}
.cs-head{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-2) 13px;border-bottom:1px solid var(--border);}
.cs-title{font-family:'DM Mono',monospace;font-size:var(--fs-caption);letter-spacing:2px;text-transform:uppercase;color:var(--gold);}
.cs-score{font-family:'DM Mono',monospace;font-size:var(--fs-caption);padding:2px var(--sp-2);border-radius:8px;border:1px solid;}
.cs-score.green{border-color:var(--green);color:var(--green);}
.cs-score.yellow{border-color:var(--gold);color:var(--gold);}
.cs-score.red{border-color:var(--red);color:var(--red);}
.cs-items{padding:var(--sp-2) 13px;}
.ci{display:flex;align-items:flex-start;gap:var(--sp-2);margin-bottom:var(--sp-2);cursor:pointer;user-select:none;}
.ci:last-child{margin-bottom:0;}
.ci-box{width:19px;height:19px;border-radius:var(--sp-1);border:2px solid var(--border);flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:all .2s;margin-top:1px;}
.ci-box.on{background:var(--green);border-color:var(--green);}
.ci-box.crit-off{border-color:var(--red);background:rgba(224,62,62,0.1);}
.ci-text{font-family:'DM Sans',sans-serif;font-size:var(--fs-body-lg);color:var(--white);line-height:1.4;}
.badge-crit{display:inline-block;font-family:'DM Mono',monospace;font-size:8px;color:var(--red);border:1px solid var(--red);border-radius:3px;padding:1px var(--sp-1);margin-left:5px;vertical-align:middle;}
.btn-row{display:flex;gap:var(--sp-2);flex-wrap:wrap;margin-top:var(--sp-4);}
.btn-gold{padding:11px var(--sp-6);background:var(--gold);color:#000;border:none;border-radius:5px;font-family:'DM Mono',monospace;font-size:var(--fs-caption);letter-spacing:2px;text-transform:uppercase;cursor:pointer;transition:opacity .2s;}
.btn-gold:hover{opacity:.85;}
.btn-green{padding:11px var(--sp-6);background:var(--green);color:#000;border:none;border-radius:5px;font-family:'DM Mono',monospace;font-size:var(--fs-caption);letter-spacing:2px;text-transform:uppercase;cursor:pointer;transition:opacity .2s;}
.btn-green:hover{opacity:.85;}
.btn-ghost{padding:11px 18px;background:transparent;border:1px solid var(--border);border-radius:5px;color:var(--gray);font-family:'DM Mono',monospace;font-size:var(--fs-caption);letter-spacing:2px;text-transform:uppercase;cursor:pointer;transition:all .2s;}
.btn-ghost:hover{border-color:var(--red);color:var(--red);}

/* ── MODAL ── */
.modal-ov{display:none;position:fixed;inset:0;background:rgba(0,0,0,.85);z-index:500;overflow-y:auto;padding:var(--sp-4);align-items:flex-start;justify-content:center;}
.modal-ov.open{display:flex;}
.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);width:100%;max-width:660px;}
.modal-head{display:flex;align-items:center;justify-content:space-between;padding:var(--sp-4) var(--sp-5);border-bottom:1px solid var(--border);}
.modal-title{font-family:'Bebas Neue',sans-serif;font-size:var(--fs-display-md);letter-spacing:2px;}
.modal-close{background:transparent;border:1px solid var(--border);color:var(--gray);border-radius:var(--radius-sm);width:30px;height:30px;cursor:pointer;font-size:var(--fs-body-lg);display:flex;align-items:center;justify-content:center;transition:all .2s;}
.modal-close:hover{border-color:var(--red);color:var(--red);}
.modal-body{padding:18px var(--sp-5);}

/* ── BLOCK CARDS (Управляющий) ── */
.block-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--sp-4);margin-bottom:18px;}
.block-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:18px var(--sp-5);}
.block-card-title{font-family:'DM Mono',monospace;font-size:var(--fs-caption);letter-spacing:2px;text-transform:uppercase;color:var(--gray);margin-bottom:6px;}
.block-card-max{font-family:'DM Mono',monospace;font-size:var(--fs-caption);color:var(--gold-dim);margin-bottom:var(--sp-2);}
.block-card-val{font-family:'Bebas Neue',sans-serif;font-size:52px;line-height:1;color:var(--gold);}
.block-card-unit{font-family:'DM Mono',monospace;font-size:var(--fs-label);color:var(--gray);margin-top:2px;}
.block-card-bar{height:5px;background:var(--surface2);border-radius:3px;margin-top:var(--sp-2);overflow:hidden;}
.block-card-fill{height:100%;border-radius:3px;background:var(--gold);transition:width .5s;}
.total-box{background:var(--surface);border:1px solid var(--gold-dim);border-radius:var(--radius-md);padding:var(--sp-5) var(--sp-6);margin-bottom:var(--sp-5);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--sp-4);}
.total-label{font-family:'DM Mono',monospace;font-size:var(--fs-caption);letter-spacing:2px;text-transform:uppercase;color:var(--gray);}
.total-formula{font-family:'DM Mono',monospace;font-size:var(--fs-caption);color:var(--white);margin-top:var(--sp-1);}
.total-value{font-family:'Bebas Neue',sans-serif;font-size:var(--fs-display-xl);line-height:1;color:var(--gold);text-shadow:0 0 24px rgba(201,168,76,0.2);}
.total-unit{font-family:'DM Mono',monospace;font-size:var(--fs-body-sm);color:var(--gray);}

/* ── CEO PANEL ── */
.ceo-subtabs{display:flex;gap:var(--sp-1);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--sp-1);margin-bottom:var(--sp-5);width:fit-content;}
.ceo-stab{font-family:'DM Mono',monospace;font-size:var(--fs-caption);letter-spacing:2px;text-transform:uppercase;padding:var(--sp-2) 18px;border-radius:var(--radius-sm);cursor:pointer;color:var(--gray);border:none;background:transparent;transition:all .2s;}
.ceo-stab.active{background:var(--gold);color:#000;}
.ceo-page{display:none;}
.ceo-page.active{display:block;}
.ceo-section{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-5);margin-bottom:18px;}
.ceo-section-title{font-family:'Bebas Neue',sans-serif;font-size:26px;letter-spacing:2px;margin-bottom:var(--sp-4);}
.toggle3{display:flex;flex-direction:column;gap:var(--sp-2);margin-bottom:var(--sp-4);}
.toggle3-row{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-3);}
.toggle3-label{font-family:'DM Sans',sans-serif;font-size:var(--fs-body-lg);color:var(--white);flex:1;}
.toggle3-val{font-family:'Bebas Neue',sans-serif;font-size:var(--fs-display-sm);color:var(--gold-dim);}
.toggle3-btns{display:flex;gap:0;}
.toggle3-btn{padding:7px var(--sp-4);border:1px solid var(--border);background:var(--surface2);color:var(--gray);font-family:'DM Mono',monospace;font-size:var(--fs-caption);letter-spacing:1px;text-transform:uppercase;cursor:pointer;transition:all .2s;}
.toggle3-btn:first-child{border-radius:var(--radius-sm) 0 0 var(--radius-sm);}
.toggle3-btn:last-child{border-radius:0 var(--radius-sm) var(--radius-sm) 0;border-left:none;}
.toggle3-btn.sel-yes{background:rgba(61,190,122,0.15);border-color:var(--green);color:var(--green);}
.toggle3-btn.sel-no{background:rgba(224,62,62,0.12);border-color:var(--red);color:var(--red);}
.honesty-flag{display:flex;align-items:center;justify-content:space-between;background:var(--surface2);border:1px solid var(--border);border-radius:7px;padding:var(--sp-4) var(--sp-4);margin-bottom:var(--sp-3);}
.honesty-flag.flag-half{border-color:var(--red);}
.honesty-k{font-family:'Bebas Neue',sans-serif;font-size:36px;line-height:1;}
.honesty-k.ok{color:var(--green);}
.honesty-k.bad{color:var(--red);}
.note-list{display:flex;flex-direction:column;gap:7px;margin-bottom:var(--sp-2);}
.note-item{display:flex;align-items:flex-start;gap:var(--sp-2);background:rgba(224,62,62,0.07);border:1px solid rgba(224,62,62,0.3);border-radius:5px;padding:var(--sp-2) var(--sp-3);}
.note-date{font-family:'DM Mono',monospace;font-size:var(--fs-caption);color:var(--red);letter-spacing:1px;white-space:nowrap;flex-shrink:0;}
.note-text{font-family:'DM Sans',sans-serif;font-size:var(--fs-body-sm);color:var(--white);flex:1;}
.note-del{background:transparent;border:none;color:var(--gray);cursor:pointer;font-size:var(--fs-body-lg);flex-shrink:0;padding:0 var(--sp-1);transition:color .2s;}
.note-del:hover{color:var(--red);}
.history-table{width:100%;border-collapse:collapse;font-family:'DM Mono',monospace;font-size:var(--fs-label);}
.history-table th{text-align:left;color:var(--gray);letter-spacing:2px;text-transform:uppercase;padding:var(--sp-2) var(--sp-2);border-bottom:1px solid var(--border);font-weight:400;}
.history-table td{padding:var(--sp-2) var(--sp-2);border-bottom:1px solid var(--border);color:var(--white);}
.history-table tr:last-child td{border-bottom:none;}
.history-table .val-gold{color:var(--gold);}
.history-table .val-total{font-family:'Bebas Neue',sans-serif;font-size:20px;color:var(--gold);}

/* ── SHOP ASSIGN (Manager tab) ── */
.shop-assign-row{display:flex;align-items:center;gap:var(--sp-2);background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--sp-2) var(--sp-4);margin-bottom:7px;}
.shop-assign-name{font-family:'Bebas Neue',sans-serif;font-size:var(--fs-display-sm);letter-spacing:1px;flex:1;}
.shop-assign-role{font-family:'DM Mono',monospace;font-size:var(--fs-micro);letter-spacing:2px;text-transform:uppercase;padding:3px var(--sp-2);border-radius:10px;border:1px solid;}
.shop-assign-role.barber{border-color:var(--gold);color:var(--gold);}
.shop-assign-role.admin{border-color:var(--green);color:var(--green);}
.shop-toggle-btn{padding:5px 11px;border:1px solid var(--border);background:var(--surface);color:var(--gray);font-family:'DM Mono',monospace;font-size:var(--fs-micro);letter-spacing:1px;text-transform:uppercase;cursor:pointer;transition:all .2s;}
.shop-toggle-btn:first-child{border-radius:var(--radius-sm) 0 0 var(--radius-sm);}
.shop-toggle-btn:last-child{border-radius:0 var(--radius-sm) var(--radius-sm) 0;border-left:none;}
.shop-toggle-btn.sel{background:rgba(201,168,76,0.15);border-color:var(--gold);color:var(--gold);}

/* ── QC USER MANAGEMENT ── */
.qcu-row{display:flex;align-items:center;gap:var(--sp-2);background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius-md);padding:var(--sp-2) var(--sp-3);margin-bottom:7px;}
.qcu-name{font-family:'Bebas Neue',sans-serif;font-size:var(--fs-display-sm);letter-spacing:1px;flex:1;}
.qcu-pin{font-family:'DM Mono',monospace;font-size:var(--fs-caption);letter-spacing:3px;color:var(--gold);}
.qcu-edit-btn{background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--gray);font-family:'DM Mono',monospace;font-size:var(--fs-micro);letter-spacing:1px;padding:var(--sp-1) var(--sp-2);cursor:pointer;transition:all .2s;}
.qcu-edit-btn:hover{border-color:var(--gold);color:var(--gold);}
.qcu-del{background:transparent;border:1px solid var(--border);border-radius:var(--radius-sm);color:var(--gray);font-size:var(--fs-body-lg);padding:3px 7px;cursor:pointer;transition:all .2s;}
.qcu-del:hover{border-color:var(--red);color:var(--red);}

@media(max-width:600px){
  .fr2{grid-template-columns:1fr;}
  .block-grid{grid-template-columns:1fr 1fr;}
  .mgr-two-col{grid-template-columns:1fr;}
}
