/* ═══ BASE ═══ */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap');
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0;touch-action:manipulation;-webkit-tap-highlight-color:transparent}
:root{
  --bg:#08080F;--bg2:#0F0F1A;--bg3:#16162A;
  --lime:#AAEE00;--lime-dim:rgba(170,238,0,.1);--lime-bd:rgba(170,238,0,.22);
  --glass:rgba(255,255,255,.04);--glass-bd:rgba(255,255,255,.08);
  --text:#FFFFFF;--t2:rgba(255,255,255,.52);--t3:rgba(255,255,255,.26);
  --green:#34C759;--red:#FF453A;--blue:#0A84FF;--purple:#BF5AF2;--orange:#FF9F0A;--teal:#5AC8FA;
  --r:22px;--rs:16px;--rx:14px;
  --safe-top:env(safe-area-inset-top,0px);--safe-bot:env(safe-area-inset-bottom,0px);
  --skel-base:rgba(255,255,255,.06);--skel-shine:rgba(255,255,255,.12);
}

/* ─── LIGHT THEME ─── */
.theme-light{
  --bg:#F2F2F7;--bg2:#FFFFFF;--bg3:#E5E5EA;
  --glass:rgba(0,0,0,.055);--glass-bd:rgba(0,0,0,.12);
  --text:#0A0A0A;--t2:rgba(0,0,0,.6);--t3:rgba(0,0,0,.35);
  --skel-base:rgba(0,0,0,.07);--skel-shine:rgba(0,0,0,.13);
}
/* Улучшенная светлая тема — контраст для слабовидящих */
.theme-light .glass-card{background:#FFFFFF;border-color:rgba(0,0,0,.1);box-shadow:0 2px 12px rgba(0,0,0,.08)}
.theme-light .topbar{background:rgba(242,242,247,.92);border-bottom-color:rgba(0,0,0,.1)}
.theme-light .tb-btn{background:rgba(0,0,0,.07);border-color:rgba(0,0,0,.12);color:rgba(0,0,0,.7)}
.theme-light .tb-btn:active{background:rgba(0,0,0,.15)}
.theme-light .pcard{border-color:rgba(0,0,0,.15)!important}
.theme-light .txn-item{border-bottom-color:rgba(0,0,0,.07)}
.theme-light .set-item{border-bottom-color:rgba(0,0,0,.07)}
.theme-light .att-log-item{border-bottom-color:rgba(0,0,0,.07)}
.theme-light .period-btn{color:rgba(0,0,0,.6)}
.theme-light .att-dot{border-color:rgba(0,0,0,.2)}
.theme-light .btn-lime{box-shadow:0 4px 20px rgba(90,150,0,.3)}
.theme-light .txn-del{background:rgba(255,69,58,.1);border-color:rgba(255,69,58,.25)}
.theme-light .auth-card{background:rgba(255,255,255,.9);border-color:rgba(0,0,0,.1);backdrop-filter:blur(40px)}
.theme-light .auth-inp{background:rgba(0,0,0,.05);border-color:rgba(0,0,0,.12);color:#0A0A0A}
.theme-light .auth-inp::placeholder{color:rgba(0,0,0,.35)}
.theme-light .auth-inp:focus{border-color:rgba(100,180,0,.5);background:rgba(100,180,0,.06)}
.theme-light .chip{background:rgba(0,0,0,.05);border-color:rgba(0,0,0,.1);color:rgba(0,0,0,.7)}
.theme-light .chip.on{background:rgba(100,180,0,.15);color:#4A8A00;border-color:rgba(100,180,0,.4)}
.theme-light .nb{background:rgba(0,0,0,.07);border-color:rgba(0,0,0,.1);color:#0A0A0A}
.theme-light .g-inp{background:rgba(0,0,0,.05);border-color:rgba(0,0,0,.12);color:#0A0A0A}
.theme-light .g-inp:focus{border-color:rgba(100,180,0,.5);background:rgba(100,180,0,.06)}
.theme-light .g-inp::placeholder{color:rgba(0,0,0,.35)}
.theme-light .pk{background:rgba(0,0,0,.07);color:#0A0A0A}
.theme-light .pk-cancel,.theme-light .pk-del{background:transparent!important}
.theme-light .modal-sheet{background:rgba(248,248,252,.98);border-color:rgba(0,0,0,.1)}
.theme-light .pin-bg{background:rgba(240,240,248,.95)}
.theme-light .add-btn{background:rgba(100,180,0,.15);border-color:rgba(100,180,0,.35);color:#4A8A00}
.theme-light .act-btn{background:rgba(0,0,0,.04);border-color:rgba(0,0,0,.1);color:#0A0A0A}
.theme-light .role-btn{background:rgba(0,0,0,.04);border-color:rgba(0,0,0,.1);color:rgba(0,0,0,.7)}
.theme-light .daily-row-joined{background:rgba(0,0,0,.04);border-color:rgba(0,0,0,.1)}
.theme-light .daily-col-divider{background:rgba(0,0,0,.1)}
.theme-light .txn-date-hdr{border-bottom-color:rgba(0,0,0,.07)}
.theme-light .txn-date-lbl{color:rgba(0,0,0,.55)}
.theme-light .att-bar-compact{background:rgba(0,0,0,.05);border-color:rgba(0,0,0,.1)}
.theme-light .att-btn-compact.checkout{background:rgba(255,69,58,.12);border-color:rgba(255,69,58,.3);color:#CC3A2E}
.theme-light .ovItem{background:rgba(0,0,0,.04);border-color:rgba(0,0,0,.1)}

html,body{height:100%;overflow:hidden;font-family:'Inter',ui-rounded,-apple-system,sans-serif;font-size:16px;background:var(--bg);color:var(--text);-webkit-text-size-adjust:100%;user-select:none;-webkit-user-select:none}
::-webkit-scrollbar{display:none}

/* ═══ KEYFRAMES ═══ */
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.4}}
@keyframes orbf{0%,100%{transform:translate(0,0)}40%{transform:translate(16px,-24px)}70%{transform:translate(-12px,16px)}}
@keyframes fadeIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes slideUp{from{opacity:0;transform:translateY(26px) scale(.98)}to{opacity:1;transform:none}}
@keyframes fadeDown{from{opacity:0;transform:translateY(-16px)}to{opacity:1;transform:none}}
@keyframes slideIn{from{opacity:0;transform:translateX(20px)}to{opacity:1;transform:none}}
@keyframes dshake{0%,100%{transform:translateX(0)}15%{transform:translateX(-6px)}30%{transform:translateX(6px)}45%{transform:translateX(-4px)}60%{transform:translateX(4px)}75%{transform:translateX(-2px)}90%{transform:translateX(2px)}}

/* Скелетон shimmer */
@keyframes shimmer{0%{transform:translateX(-100%)}100%{transform:translateX(100%)} }
@keyframes skelPulse{0%,100%{opacity:.6}50%{opacity:1}}

/* Число pop */
@keyframes numPop{0%{transform:scale(.92);opacity:.5}60%{transform:scale(1.06)}100%{transform:scale(1);opacity:1}}

/* Карточка появление */
@keyframes scaleIn{from{opacity:0;transform:scale(.93) translateY(12px)}to{opacity:1;transform:none}}

.anim-in{animation:slideIn .25s ease both}
.anim-scale-in{animation:scaleIn .35s cubic-bezier(.32,.72,0,1) both}

/* ═══ SKELETON ═══ */
.skel-line{background:var(--skel-base);border-radius:8px;position:relative;overflow:hidden}
.skel-line::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,var(--skel-shine) 50%,transparent 100%);animation:shimmer 1.4s infinite}

.pcard-skeleton{border-radius:20px;min-height:140px;background:var(--skel-base);position:relative;overflow:hidden;animation:skelPulse 1.5s ease infinite}
.pcard-skeleton::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,var(--skel-shine) 50%,transparent 100%);animation:shimmer 1.4s infinite}

.chart-skeleton{height:120px;background:var(--skel-base);border-radius:12px;position:relative;overflow:hidden}
.chart-skeleton::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,transparent 0%,var(--skel-shine) 50%,transparent 100%);animation:shimmer 1.4s infinite}

.cal-skel-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cal-skel-cell{height:48px;background:var(--skel-base);border-radius:8px;animation:skelPulse 1.5s ease infinite}

.daily-skeleton{padding:4px}

/* ═══ SPLASH ═══ */
.splash{position:fixed;inset:0;background:var(--bg);display:flex;align-items:center;justify-content:center;z-index:9999;transition:opacity .35s ease}
.splash.hidden{opacity:0;pointer-events:none}
.splash-logo{width:72px;height:72px;background:var(--lime);border-radius:20px;display:flex;align-items:center;justify-content:center;box-shadow:0 0 40px rgba(170,238,0,.35);animation:scaleIn .4s cubic-bezier(.32,.72,0,1)}

/* ═══ AUTH ═══ */
.auth-screen{position:fixed;inset:0;display:flex;align-items:center;justify-content:center;z-index:100;overflow:hidden}
.auth-bg{position:absolute;inset:0;background:radial-gradient(ellipse 80% 60% at 20% 10%,rgba(170,238,0,.09),transparent 55%),radial-gradient(ellipse 60% 70% at 85% 85%,rgba(10,132,255,.07),transparent 55%),var(--bg)}
.auth-orb{position:absolute;border-radius:50%;pointer-events:none;animation:orbf 10s ease-in-out infinite}
.o1{width:500px;height:500px;background:radial-gradient(circle,rgba(170,238,0,.07),transparent 70%);top:-180px;right:-100px}
.o2{width:380px;height:380px;background:radial-gradient(circle,rgba(10,132,255,.07),transparent 70%);bottom:-100px;left:-70px;animation-delay:-4s}
.auth-container{position:relative;z-index:1;width:100%;max-width:400px;padding:0 20px;display:flex;flex-direction:column;align-items:center}
.auth-brand{text-align:center;margin-bottom:26px;animation:fadeDown .5s ease both}
.auth-logo-wrap{width:66px;height:66px;background:var(--lime);border-radius:19px;display:flex;align-items:center;justify-content:center;margin:0 auto 12px;box-shadow:0 0 36px rgba(170,238,0,.28),0 8px 28px rgba(0,0,0,.4)}
.auth-wordmark{font-size:26px;font-weight:800;color:var(--text);letter-spacing:-.6px}.auth-wordmark span{color:var(--lime)}
.auth-tagline{font-size:13px;color:var(--t3);margin-top:3px}
.auth-card{width:100%;background:rgba(255,255,255,.032);border:1px solid rgba(255,255,255,.09);border-radius:28px;padding:22px 20px 18px;backdrop-filter:blur(60px) saturate(160%);-webkit-backdrop-filter:blur(60px) saturate(160%);box-shadow:0 0 0 .5px rgba(255,255,255,.05) inset,0 40px 80px rgba(0,0,0,.5);animation:slideUp .45s cubic-bezier(.32,.72,0,1) .06s both}
.auth-tabs{display:flex;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.06);border-radius:14px;padding:3px;margin-bottom:18px}
.auth-tab{flex:1;padding:9px;border-radius:11px;font-size:14px;font-weight:600;color:var(--t2);background:none;border:none;cursor:pointer;transition:all .2s}
.auth-tab.active{background:rgba(170,238,0,.12);color:var(--lime)}
.auth-view{display:none}.auth-view.active{display:block}
.auth-sub{font-size:13px;color:var(--t2);margin-bottom:16px}
.auth-field{margin-bottom:10px}
.auth-lbl{display:block;font-size:11px;font-weight:600;letter-spacing:.4px;text-transform:uppercase;color:var(--t3);margin-bottom:5px}
.auth-inp-wrap{position:relative;display:flex;align-items:center;overflow:hidden}
.auth-inp-ico{position:absolute;left:13px;color:var(--t3);display:flex;align-items:center;pointer-events:none;transition:color .2s;z-index:1;width:20px;height:20px;flex-shrink:0}
.auth-inp-ico svg{width:17px!important;height:17px!important;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;flex-shrink:0;display:block}
.auth-inp{width:100%;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.09);border-radius:var(--rx);color:var(--text);font-size:16px;font-family:inherit;padding:13px 13px 13px 42px;outline:none;transition:all .2s;-webkit-appearance:none;min-width:0}
.auth-inp::placeholder{color:var(--t3)}.auth-inp:focus{border-color:rgba(170,238,0,.32);background:rgba(170,238,0,.05);box-shadow:0 0 0 3px rgba(170,238,0,.07)}
.auth-field:focus-within .auth-inp-ico{color:rgba(170,238,0,.7)}
.pwd-eye{position:absolute;right:12px;color:var(--t3);cursor:pointer;background:none;border:none;padding:4px;display:flex;align-items:center;z-index:1}
.pwd-eye svg{width:17px!important;height:17px!important;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round;display:block}
.auth-err{color:var(--red);font-size:13px;text-align:center;padding:9px 13px;background:rgba(255,69,58,.08);border:1px solid rgba(255,69,58,.14);border-radius:12px;margin-bottom:8px;display:none;animation:fadeIn .2s ease}
.auth-btn{width:100%;background:var(--lime);color:#080800;border:none;border-radius:var(--rx);font-size:16px;font-weight:700;font-family:inherit;padding:15px;cursor:pointer;letter-spacing:-.2px;box-shadow:0 4px 24px rgba(170,238,0,.22);transition:transform .15s,opacity .15s}
.auth-btn:active{transform:scale(.97);opacity:.88}
.auth-divider{display:flex;align-items:center;gap:10px;margin:13px 0;color:var(--t3);font-size:12px}
.auth-divider::before,.auth-divider::after{content:'';flex:1;height:1px;background:rgba(255,255,255,.07)}
.theme-light .auth-divider::before,.theme-light .auth-divider::after{background:rgba(0,0,0,.1)}
.auth-btn-ghost{width:100%;background:rgba(255,255,255,.04);color:var(--t2);border:1px solid rgba(255,255,255,.08);border-radius:var(--rx);font-size:15px;font-family:inherit;padding:13px;cursor:pointer}
.auth-btn-ghost:active{background:rgba(255,255,255,.09)}

/* ═══ PIN SCREEN ═══ */
.pin-screen{position:fixed;inset:0;z-index:300;display:flex;align-items:center;justify-content:center;flex-direction:column;opacity:0;transition:opacity .32s ease}
.pin-screen.visible{opacity:1}
.pin-bg{position:absolute;inset:0;background:rgba(4,4,10,.93);backdrop-filter:blur(40px);-webkit-backdrop-filter:blur(40px)}
.pin-body{position:relative;z-index:1;width:100%;max-width:340px;padding:20px;display:flex;flex-direction:column;align-items:center}
.pin-proj-emoji{font-size:52px;margin-bottom:12px}
.pin-proj-name{font-size:22px;font-weight:800;letter-spacing:-.4px;margin-bottom:6px;text-align:center}
.pin-sub{font-size:14px;color:var(--t2);margin-bottom:28px}
.pin-dots{display:flex;gap:16px;margin-bottom:12px}
.mt20{margin-top:20px!important}
.pd{width:14px;height:14px;border-radius:50%;border:2px solid rgba(255,255,255,.2);background:transparent;transition:all .18s cubic-bezier(.32,.72,0,1)}
.pd.on{background:#fff;border-color:#fff;box-shadow:0 0 12px rgba(255,255,255,.4)}
.pd.ok{background:var(--lime);border-color:var(--lime);box-shadow:0 0 16px rgba(170,238,0,.5)}
.pd.shake{animation:dshake .5s ease;background:var(--red);border-color:var(--red)}
.pin-err{height:18px;font-size:14px;color:var(--red);text-align:center;margin-bottom:16px;font-weight:500}
.pin-pad{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;width:100%;max-width:320px}
.pk{aspect-ratio:1;border-radius:50%;background:rgba(255,255,255,.09);border:none;color:#fff;font-family:inherit;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;transition:transform .1s,background .1s}
.pk span{font-size:26px;font-weight:400;line-height:1}
.pk small{font-size:9px;letter-spacing:1px;color:rgba(255,255,255,.5);margin-top:1px;font-weight:500}
.pk:active{background:rgba(255,255,255,.22);transform:scale(.88)}
.pk-cancel{background:transparent!important;color:var(--lime);font-size:14px;font-weight:600}
.pk-del{background:transparent!important}

/* ═══ APP SHELL ═══ */
.app-wrap{position:fixed;inset:0;display:flex;flex-direction:column;background:var(--bg);overflow:hidden}
.topbar{display:flex;align-items:center;justify-content:space-between;padding:calc(var(--safe-top) + 13px) 16px 11px;background:rgba(8,8,15,.85);backdrop-filter:blur(30px);-webkit-backdrop-filter:blur(30px);border-bottom:1px solid rgba(255,255,255,.06);z-index:50;flex-shrink:0}
.tb-left{display:flex;align-items:center;gap:8px}
.tb-logo{font-size:21px;font-weight:800;color:var(--lime);letter-spacing:-.6px}
.tb-right{display:flex;gap:6px}
.tb-btn{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.09);color:rgba(255,255,255,.7);border-radius:11px;width:38px;height:38px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s}
.tb-btn svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}
.tb-btn:active{background:rgba(255,255,255,.14)}
.back-btn{display:flex;align-items:center;gap:4px;background:none;border:none;color:var(--lime);font-size:16px;font-weight:600;font-family:inherit;cursor:pointer;padding:0}
.back-btn svg{width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}

/* ═══ VIEWS ═══ */
.views{flex:1;overflow:hidden;position:relative}
.view{position:absolute;inset:0;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:14px 14px calc(20px + var(--safe-bot));display:flex;flex-direction:column;gap:12px;opacity:0;pointer-events:none;transform:translateX(30px);transition:opacity .28s ease,transform .28s cubic-bezier(.32,.72,0,1)}
.view.active{opacity:1;pointer-events:all;transform:none}
.view.slide-left{transform:translateX(-30px)}
.view-hdr{padding-bottom:2px}.view-title{font-size:26px;font-weight:800;letter-spacing:-.6px}
.sec-header{display:flex;justify-content:space-between;align-items:center;padding:0 2px}
.sec-title{font-size:20px;font-weight:800;letter-spacing:-.5px}

/* ═══ GLASS CARD ═══ */
.glass-card{background:var(--glass);border:1px solid var(--glass-bd);border-radius:var(--r);padding:18px;transition:opacity .2s}
.card-hdr{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.card-title{font-size:16px;font-weight:700;letter-spacing:-.3px}

/* ═══ HOME ═══ */
.home-header{display:flex;justify-content:space-between;align-items:center;padding:4px 2px;margin-bottom:4px}
.home-greet{font-size:13px;color:var(--t2);font-weight:500}
.home-name{font-size:24px;font-weight:800;letter-spacing:-.5px;margin-top:1px}
.avatar-btn{width:44px;height:44px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);border-radius:14px;display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.6);cursor:pointer;overflow:hidden;padding:0;transition:opacity .15s}
.avatar-btn img{width:100%;height:100%;object-fit:cover}
.avatar-btn:active{opacity:.7}

/* МСК бар */
.msk-time-bar{padding:10px 16px!important}

/* ═══ СМЕНА — КОМПАКТНАЯ ═══ */
.att-bar-compact{display:flex;align-items:center;gap:10px;background:rgba(170,238,0,.06);border:1px solid rgba(170,238,0,.16);border-radius:14px;padding:9px 12px;margin-bottom:0}
.att-info-compact{flex:1;font-size:13px;color:var(--t2);display:flex;align-items:center;gap:6px}
.att-btn-compact{border:none;border-radius:10px;padding:7px 13px;font-size:13px;font-weight:700;font-family:inherit;cursor:pointer;white-space:nowrap;flex-shrink:0;transition:transform .12s,opacity .12s}
.att-btn-compact.checkin{background:var(--lime);color:#0A0A00}
.att-btn-compact.checkout{background:rgba(255,69,58,.12);color:var(--red);border:1px solid rgba(255,69,58,.2)}
.att-btn-compact:active{opacity:.78;transform:scale(.94)}

/* ═══ PROJECT GRID ═══ */
.add-btn{background:var(--lime-dim);border:1px solid var(--lime-bd);color:var(--lime);border-radius:20px;padding:7px 14px;font-size:13px;font-weight:700;font-family:inherit;cursor:pointer;transition:background .15s}
.add-btn:active{background:rgba(170,238,0,.2)}
.proj-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.pcard{border-radius:20px;padding:16px;cursor:pointer;border:1px solid rgba(255,255,255,.08);min-height:140px;display:flex;flex-direction:column;position:relative;overflow:hidden;transition:transform .15s,opacity .15s}
.pcard::before{content:'';position:absolute;top:0;right:0;width:80px;height:80px;background:radial-gradient(circle,rgba(255,255,255,.05),transparent 70%)}
.pcard:active{transform:scale(.95);opacity:.88}
.pcard.lime{background:linear-gradient(150deg,#0d1900,#192900);border-color:rgba(170,238,0,.16)}
.pcard.blue{background:linear-gradient(150deg,#000e28,#001740);border-color:rgba(10,132,255,.16)}
.pcard.purple{background:linear-gradient(150deg,#13002a,#1e004a);border-color:rgba(191,90,242,.16)}
.pcard.orange{background:linear-gradient(150deg,#1c0700,#2e1200);border-color:rgba(255,159,10,.16)}
.pcard.red{background:linear-gradient(150deg,#1c0000,#300000);border-color:rgba(255,69,58,.16)}
.pcard.teal{background:linear-gradient(150deg,#001316,#001f28);border-color:rgba(90,200,250,.16)}
.pcard-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:auto}
.pcard-emoji{font-size:26px}
.pcard-lock{background:rgba(255,255,255,.1);border-radius:6px;padding:3px 5px;display:flex;align-items:center;color:rgba(255,255,255,.6)}
.pcard-name{font-size:13px;font-weight:700;padding-top:10px;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pcard-desc{font-size:11px;color:rgba(255,255,255,.42);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* ═══ BEST STAFF ═══ */
.best-card{margin-top:4px}
.best-row{display:flex;align-items:center;gap:14px}
.best-ava{width:52px;height:52px;background:linear-gradient(135deg,rgba(255,200,0,.25),rgba(255,200,0,.05));border:1.5px solid rgba(255,200,0,.3);color:#FFD700;border-radius:16px;display:flex;align-items:center;justify-content:center;font-size:22px;font-weight:800;flex-shrink:0}
.best-name{font-size:17px;font-weight:800;margin-bottom:6px}
.best-stats{display:flex;gap:7px;flex-wrap:wrap}
.bstat{font-size:12px;color:var(--t2);background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.07);border-radius:8px;padding:4px 9px}
.bstat.gold{color:#FFD700;background:rgba(255,200,0,.08);border-color:rgba(255,200,0,.2);font-weight:700}

/* ═══ PROJECT DETAIL ═══ */
.proj-hero{position:relative;height:175px;border-radius:22px;overflow:hidden;flex-shrink:0}
.proj-cover{position:absolute;inset:0;background-size:cover;background-position:center;background-repeat:no-repeat}
.proj-hero-body{position:absolute;inset:0;padding:18px;display:flex;flex-direction:column;justify-content:flex-end;background:linear-gradient(to top,rgba(0,0,0,.72),transparent 55%)}
.proj-hero-emoji{font-size:32px;margin-bottom:6px}
.proj-hero-name{font-size:23px;font-weight:800;letter-spacing:-.5px;line-height:1;color:#fff}
.proj-hero-cat{font-size:12px;color:rgba(255,255,255,.5);margin-top:3px}

/* Баланс проекта — единая карточка */
.proj-bal-grid{display:flex;border-radius:18px;overflow:hidden;gap:1px;background:rgba(255,255,255,.06)}
.proj-bal-item{flex:1;padding:14px 10px;text-align:center;background:var(--bg2)}
.theme-light .proj-bal-item{background:#fff}
.proj-bal-item.income{background:rgba(52,199,89,.06)}
.proj-bal-item.expense{background:rgba(255,69,58,.06)}
.proj-bal-lbl{font-size:10px;color:var(--t3);text-transform:uppercase;letter-spacing:.4px;margin-bottom:5px}
.proj-bal-val{font-size:18px;font-weight:800;letter-spacing:-.5px;animation:numPop .4s cubic-bezier(.32,.72,0,1)}
.proj-bal-val.green{color:var(--green)}.proj-bal-val.red{color:var(--red)}
.budget-row{display:flex;justify-content:space-between;font-size:12px;color:var(--t2);padding:10px 4px 6px}
.budget-track{height:3px;background:rgba(255,255,255,.07);border-radius:4px;overflow:hidden}
.budget-fill{height:100%;background:var(--lime);border-radius:4px;transition:width .6s cubic-bezier(.32,.72,0,1)}

/* ═══ КАССА — ОБЪЕДИНЁННЫЕ КОЛОНКИ ═══ */
.daily-card{background:linear-gradient(145deg,rgba(52,199,89,.06),rgba(52,199,89,.01));border-color:rgba(52,199,89,.15)}
.daily-row-joined{display:flex;align-items:stretch;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:14px;margin-bottom:12px;overflow:hidden}
.daily-col-item{flex:1;display:flex;align-items:center;gap:10px;padding:13px 14px}
.daily-col-item svg{flex-shrink:0;opacity:.55}
.daily-col-item.terminal svg{color:var(--blue)}
.daily-col-item.cash svg{color:var(--green)}
.daily-col-lbl{font-size:11px;color:var(--t3);margin-bottom:3px}
.daily-col-val{font-size:17px;font-weight:800;letter-spacing:-.4px}
.daily-col-divider{width:1px;background:rgba(255,255,255,.07);margin:10px 0;flex-shrink:0}
.daily-total-row{display:flex;justify-content:space-between;align-items:center;font-size:14px;color:var(--t2)}
.daily-total{font-size:20px;font-weight:800;color:var(--lime)}
.today-date{font-size:12px;color:var(--t3)}

/* Donut */
.donut-wrap{display:flex;flex-direction:column;align-items:center;gap:16px}
.donut-canvas{display:flex;justify-content:center}
.donut-legend{width:100%;display:grid;grid-template-columns:1fr 1fr;gap:7px 12px}
.dleg{display:flex;align-items:center;gap:7px;font-size:13px;min-width:0}
.dleg-dot{width:9px;height:9px;border-radius:50%;flex-shrink:0}
.dleg-name{flex:1;color:var(--t2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dleg-val{font-weight:700;font-size:12px;white-space:nowrap}

/* ═══ ATTENDANCE LOG ═══ */
.att-log-item{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid rgba(255,255,255,.05)}
.att-log-item:last-child{border-bottom:none}
.att-log-ava{width:34px;height:34px;background:rgba(170,238,0,.12);border:1px solid rgba(170,238,0,.2);color:var(--lime);border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:800;flex-shrink:0}
.att-log-name{font-size:13px;font-weight:600}
.att-log-time{font-size:11px;color:var(--t3);margin-top:1px}
.att-log-dur{font-size:12px;font-weight:700;color:var(--t2);white-space:nowrap}
.att-log-dur.active{color:var(--lime)}

/* ═══ ТРАНЗАКЦИИ ПО ДАТАМ ═══ */
.txn-date-group{display:flex;flex-direction:column;margin-bottom:4px}
.txn-date-hdr{display:flex;justify-content:space-between;align-items:center;padding:8px 2px 6px;border-bottom:1px solid rgba(255,255,255,.06);margin-bottom:2px}
.theme-light .txn-date-hdr{border-bottom-color:rgba(0,0,0,.07)}
.txn-date-lbl{font-size:12px;font-weight:700;color:var(--t3);text-transform:uppercase;letter-spacing:.3px}
.txn-date-totals{display:flex;gap:8px}
.txn-date-sum{font-size:12px;font-weight:800;padding:2px 8px;border-radius:8px}
.txn-date-sum.income{color:var(--green);background:rgba(52,199,89,.1)}
.txn-date-sum.expense{color:var(--red);background:rgba(255,69,58,.1)}

.txn-hdr{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}

/* Маленькая кнопка + */
.fab-add-sm{width:30px;height:30px;background:#fff;border:none;border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 2px 10px rgba(255,255,255,.2);flex-shrink:0;transition:transform .12s,opacity .12s}
.fab-add-sm:active{transform:scale(.85);opacity:.8}
.theme-light .fab-add-sm{background:#1A1A1A;box-shadow:0 2px 10px rgba(0,0,0,.2)}
.theme-light .fab-add-sm svg{stroke:#fff}

.txn-item{display:flex;align-items:center;padding:11px 0;border-bottom:1px solid rgba(255,255,255,.05);gap:10px;transition:opacity .2s,transform .2s}
.txn-item:last-child{border-bottom:none}
.txn-dot{width:34px;height:34px;border-radius:11px;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}
.txn-dot.income{background:rgba(52,199,89,.12)}
.txn-dot.expense{background:rgba(255,69,58,.12)}
.txn-dot.check{background:rgba(10,132,255,.12)}
.txn-info{flex:1;min-width:0}
.txn-cat{font-size:14px;font-weight:600;letter-spacing:-.1px}
.txn-note{font-size:12px;color:var(--t3);margin-top:1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.txn-meta{font-size:11px;color:var(--t3);margin-top:1px}
.txn-right{display:flex;align-items:center;gap:7px}
.txn-amt{font-size:15px;font-weight:800;letter-spacing:-.3px;white-space:nowrap}
.txn-amt.income{color:var(--green)}.txn-amt.expense{color:var(--red)}.txn-amt.check{color:var(--blue)}
.txn-photo{width:36px;height:36px;object-fit:cover;border-radius:8px;cursor:pointer;border:1px solid rgba(255,255,255,.1);flex-shrink:0}
.txn-del{background:rgba(255,69,58,.1);border:1px solid rgba(255,69,58,.15);color:var(--red);border-radius:8px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0;transition:background .15s}
.txn-del:active{background:rgba(255,69,58,.22)}

/* ═══ OWNER ACTIONS ═══ */
.act-list{display:flex;flex-direction:column;gap:8px}
.act-btn{background:rgba(255,255,255,.045);border:1px solid rgba(255,255,255,.08);color:var(--text);border-radius:var(--rx);padding:14px 16px;font-size:15px;font-family:inherit;font-weight:500;cursor:pointer;text-align:left;display:flex;align-items:center;gap:10px;transition:background .15s}
.act-btn:active{background:rgba(255,255,255,.09)}
.act-btn svg{flex-shrink:0;width:18px;height:18px;stroke:currentColor;fill:none;stroke-width:1.8;stroke-linecap:round}
.act-btn.warn{color:var(--orange);border-color:rgba(255,159,10,.18)}
.act-btn.danger{color:var(--red);border-color:rgba(255,69,58,.18)}

/* ═══ EMPTY ═══ */
.empty{display:flex;flex-direction:column;align-items:center;padding:40px 24px;text-align:center;gap:8px}
.empty-ico{font-size:44px}
.empty-title{font-size:19px;font-weight:800;letter-spacing:-.4px}
.empty-sub{font-size:14px;color:var(--t2)}

/* ═══ CALENDAR ═══ */
.cal-month-hdr{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}
.cal-month-title{font-size:18px;font-weight:700;letter-spacing:-.3px}
.cal-nav{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.09);color:var(--text);border-radius:10px;width:36px;height:36px;font-size:18px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s}
.cal-nav:active{background:rgba(255,255,255,.14)}
.cal-dow-row{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:6px}
.cal-dow{text-align:center;font-size:11px;color:var(--t3);font-weight:600;padding:4px 0}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.cal-day{border-radius:10px;padding:6px 2px;text-align:center;cursor:pointer;position:relative;transition:background .15s;min-height:52px;display:flex;flex-direction:column;align-items:center;gap:2px}
.cal-day:active{background:rgba(255,255,255,.1)}
.cal-day.has-data{background:rgba(170,238,0,.06);border:1px solid rgba(170,238,0,.12)}
.cal-day.today .cal-num{background:var(--lime);color:#0A0A00;border-radius:50%;width:26px;height:26px;display:flex;align-items:center;justify-content:center}
.cal-num{font-size:14px;font-weight:600}
.cal-dot-row{display:flex;gap:2px;justify-content:center;flex-wrap:wrap;max-width:36px}
.cal-staff-dot{width:5px;height:5px;border-radius:50%;background:var(--blue);flex-shrink:0}
.cal-amt{font-size:8px;color:var(--lime);font-weight:700;white-space:nowrap}
.cal-empty{opacity:.3;cursor:default}
.day-detail{background:var(--glass);border:1px solid var(--glass-bd);border-radius:var(--r);padding:18px;animation:fadeIn .25s ease}
.day-det-hdr{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.day-det-hdr span{font-size:17px;font-weight:700}
.day-close{background:rgba(255,255,255,.08);border:none;color:var(--t2);border-radius:8px;width:30px;height:30px;font-size:16px;cursor:pointer}
.day-cash-row{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:14px}
.day-cash-item{background:rgba(255,255,255,.05);border-radius:12px;padding:10px;text-align:center}
.day-cash-item.total{background:rgba(170,238,0,.08);border:1px solid rgba(170,238,0,.15)}
.day-cash-lbl{font-size:11px;color:var(--t3);margin-bottom:4px}
.day-cash-val{font-size:16px;font-weight:800;letter-spacing:-.4px}
.day-staff-row{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:12px}
.day-staff-chip{background:rgba(10,132,255,.1);border:1px solid rgba(10,132,255,.2);color:var(--blue);border-radius:20px;padding:4px 10px;font-size:12px;font-weight:600}

/* ═══ ANALYTICS ═══ */
.period-bar{display:flex;gap:4px;padding:5px!important}
.period-btn{flex:1;padding:9px 6px;border-radius:10px;font-size:13px;font-weight:600;font-family:inherit;border:none;cursor:pointer;color:var(--t2);background:transparent;transition:background .2s,color .2s}
.period-btn.active{background:var(--lime-dim);color:var(--lime)}
.period-btn:active{opacity:.7}
.ov-grid{display:flex;flex-direction:column;gap:8px}
.ov-item{padding:14px;background:rgba(255,255,255,.03);border:1px solid rgba(255,255,255,.06);border-radius:14px}
.ov-item.green{border-left:3px solid var(--green)}.ov-item.red{border-left:3px solid var(--red)}
.ov-val{font-size:24px;font-weight:800;letter-spacing:-.7px}
.ov-lbl{font-size:12px;color:var(--t2);margin-top:2px}
.top-cat-item{display:flex;align-items:center;gap:11px;padding:11px 0;border-bottom:1px solid rgba(255,255,255,.05)}
.top-cat-item:last-child{border-bottom:none}
.top-cat-bw{flex:1}.top-cat-name{font-size:13px;margin-bottom:5px;font-weight:500}
.top-cat-bar{height:3px;background:rgba(255,255,255,.07);border-radius:4px;overflow:hidden}
.top-cat-fill{height:100%;background:var(--lime);border-radius:4px;transition:width .6s ease}
.top-cat-val{font-size:13px;font-weight:800;color:var(--red);white-space:nowrap}
.rank-item{display:flex;align-items:center;gap:11px;padding:11px 0;border-bottom:1px solid rgba(255,255,255,.05)}
.rank-item:last-child{border-bottom:none}
.rank-num{width:26px;height:26px;background:var(--lime-dim);color:var(--lime);border:1px solid var(--lime-bd);border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:800;flex-shrink:0}
.rank-info{flex:1;min-width:0}
.rank-name{font-size:14px;font-weight:600;letter-spacing:-.1px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rank-sub{font-size:12px;color:var(--t2)}
.rank-val{font-size:15px;font-weight:800;letter-spacing:-.3px;white-space:nowrap}
.rank-val.pos{color:var(--green)}.rank-val.neg{color:var(--red)}

/* ═══ SETTINGS ═══ */
.profile-card{display:flex;flex-direction:column;align-items:center;gap:5px;background:linear-gradient(145deg,rgba(170,238,0,.05),rgba(170,238,0,.01));border-color:rgba(170,238,0,.12);padding:26px}
.profile-ava-wrap{position:relative;margin-bottom:3px;cursor:pointer}
.profile-ava{width:70px;height:70px;background:rgba(255,255,255,.07);border:1px solid rgba(255,255,255,.1);border-radius:20px;display:flex;align-items:center;justify-content:center;color:rgba(255,255,255,.5);overflow:hidden}
.profile-ava img{width:100%;height:100%;object-fit:cover;border-radius:18px}
.ava-edit{position:absolute;bottom:-3px;right:-3px;width:26px;height:26px;background:var(--lime);border:2px solid var(--bg);border-radius:50%;display:flex;align-items:center;justify-content:center;color:#0A0A00;cursor:pointer;padding:0}
.profile-name{font-size:20px;font-weight:800;letter-spacing:-.3px}
.profile-role{font-size:13px;color:var(--lime);font-weight:600;background:var(--lime-dim);border:1px solid var(--lime-bd);border-radius:20px;padding:3px 10px;margin-top:2px}
.profile-phone{font-size:14px;color:var(--t2)}
.set-group-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;color:var(--t3);margin-bottom:10px}
.set-item{display:flex;align-items:center;gap:11px;padding:14px 0;font-size:15px;font-weight:500;border-bottom:1px solid rgba(255,255,255,.05);cursor:pointer;transition:opacity .15s}
.set-item:last-child{border-bottom:none}
.set-item:active{opacity:.7}
.set-ico{font-size:18px;width:24px;text-align:center}
.set-label{flex:1}
.set-arr{color:var(--t3);font-size:18px;margin-left:auto}
.toggle{margin-left:auto;position:relative;display:inline-block;width:48px;height:27px}
.toggle input{display:none}
.tsl{position:absolute;inset:0;background:rgba(255,255,255,.12);border-radius:27px;transition:background .25s;cursor:pointer}
.tsl::before{content:'';position:absolute;width:21px;height:21px;background:#fff;border-radius:50%;top:3px;left:3px;transition:transform .25s cubic-bezier(.32,.72,0,1);box-shadow:0 2px 5px rgba(0,0,0,.3)}
.toggle input:checked + .tsl{background:var(--lime)}
.toggle input:checked + .tsl::before{transform:translateX(21px);background:#080800}
.badge-count{background:var(--red);color:#fff;border-radius:10px;padding:2px 7px;font-size:11px;font-weight:700}

/* ═══ STAFF ═══ */
.staff-card{display:flex;align-items:center;gap:12px;padding:16px;margin-bottom:10px}
.staff-ava{width:44px;height:44px;background:linear-gradient(135deg,rgba(170,238,0,.2),rgba(170,238,0,.05));border:1px solid rgba(170,238,0,.2);color:var(--lime);border-radius:14px;display:flex;align-items:center;justify-content:center;font-size:18px;font-weight:800;flex-shrink:0}
.staff-info{flex:1;min-width:0}
.staff-name{font-size:15px;font-weight:700}
.staff-phone{font-size:12px;color:var(--t2)}
.staff-role-badge{font-size:11px;font-weight:700;padding:3px 8px;border-radius:8px;margin-top:3px;display:inline-block}
.staff-role-badge.cashier{background:rgba(10,132,255,.12);color:var(--blue)}
.staff-role-badge.manager{background:rgba(170,238,0,.1);color:var(--lime)}
.staff-actions{display:flex;flex-direction:column;gap:5px}
.small-btn{padding:6px 11px;font-size:12px;border-radius:10px;font-family:inherit;font-weight:600;cursor:pointer;border:1px solid;white-space:nowrap;transition:opacity .15s}
.small-btn:active{opacity:.65}
.small-btn.edit{background:rgba(255,255,255,.05);color:var(--t2);border-color:rgba(255,255,255,.08)}
.small-btn.del{background:rgba(255,69,58,.08);color:var(--red);border-color:rgba(255,69,58,.15)}

/* Pending */
.pending-card{display:flex;align-items:center;gap:12px;padding:16px;margin-bottom:10px}
.approve-btn{background:var(--lime);color:#080800;border:none;border-radius:12px;padding:8px 14px;font-size:13px;font-weight:700;font-family:inherit;cursor:pointer;transition:opacity .15s}
.approve-btn:active{opacity:.75}

/* ═══ MODALS ═══ */
.modal-ov{position:fixed;inset:0;background:rgba(0,0,0,.65);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);z-index:200;display:flex;align-items:flex-end;opacity:0;pointer-events:none;transition:opacity .28s}
.modal-ov.open{opacity:1;pointer-events:all}
.modal-sheet{width:100%;max-height:93vh;overflow-y:auto;-webkit-overflow-scrolling:touch;background:rgba(12,12,20,.98);border:1px solid rgba(255,255,255,.09);border-bottom:none;border-radius:26px 26px 0 0;padding:14px 18px calc(28px + var(--safe-bot));display:flex;flex-direction:column;gap:12px;transform:translateY(100%);transition:transform .4s cubic-bezier(.32,.72,0,1)}
.modal-ov.open .modal-sheet{transform:translateY(0)}
.modal-handle{width:34px;height:4px;background:rgba(255,255,255,.13);border-radius:4px;margin:0 auto 4px;flex-shrink:0}
.modal-title{font-size:21px;font-weight:800;letter-spacing:-.4px;flex-shrink:0}
.modal-close-btn{background:rgba(255,255,255,.08);border:none;color:var(--t2);border-radius:50%;width:30px;height:30px;font-size:16px;cursor:pointer;flex-shrink:0;display:flex;align-items:center;justify-content:center;transition:background .15s}
.modal-close-btn:active{background:rgba(255,255,255,.16)}

/* ═══ TXN TYPE SEL ═══ */
.type-sel{display:flex;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.07);border-radius:14px;padding:4px;gap:4px}
.type-btn{flex:1;padding:10px;border-radius:10px;font-size:13px;font-weight:700;font-family:inherit;border:none;cursor:pointer;color:var(--t2);background:none;transition:background .2s,color .2s}
.type-btn.income.active{background:rgba(52,199,89,.15);color:var(--green)}
.type-btn.expense.active{background:rgba(255,69,58,.15);color:var(--red)}

/* ═══ NUMPAD ═══ */
.amount-row{display:flex;align-items:baseline;gap:5px;justify-content:center;padding:6px 0}
.amt-cur{font-size:24px;font-weight:700;color:var(--t2)}
.amt-val{font-size:54px;font-weight:800;letter-spacing:-2.5px;color:var(--lime)}
.numpad{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}
.nb{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.07);color:#fff;border-radius:14px;font-size:24px;font-weight:600;font-family:inherit;padding:16px;cursor:pointer;text-align:center;transition:transform .1s,background .1s;-webkit-tap-highlight-color:transparent}
.nb:active{background:rgba(255,255,255,.18);transform:scale(.88)}
.nb-del{font-size:19px}

/* Chips */
.chips{display:flex;gap:7px;flex-wrap:wrap}
.chip{background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.08);color:var(--t2);border-radius:18px;padding:7px 13px;font-size:13px;font-family:inherit;font-weight:500;cursor:pointer;white-space:nowrap;transition:background .15s,color .15s,border-color .15s}
.chip.on{background:var(--lime-dim);color:var(--lime);border-color:var(--lime-bd)}
.chip:active{opacity:.65}
.field-lbl{font-size:11px;color:var(--t3);font-weight:600;text-transform:uppercase;letter-spacing:.4px}
.err-msg{color:var(--red);font-size:13px;text-align:center;padding:9px 13px;background:rgba(255,69,58,.07);border:1px solid rgba(255,69,58,.14);border-radius:11px;animation:fadeIn .2s ease}

/* Photos */
.photo-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.photo-add-btn{display:flex;align-items:center;gap:7px;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.09);color:var(--t2);border-radius:var(--rx);padding:10px 13px;font-size:13px;font-family:inherit;cursor:pointer;white-space:nowrap;transition:background .15s}
.photo-add-btn:active{background:rgba(255,255,255,.1)}
.photos-prev{display:flex;gap:7px}
.photo-thumb-wrap{position:relative}
.photo-thumb{width:44px;height:44px;object-fit:cover;border-radius:9px;border:1px solid rgba(255,255,255,.1);cursor:pointer}
.photo-rm{position:absolute;top:-5px;right:-5px;background:var(--red);border:none;color:#fff;border-radius:50%;width:18px;height:18px;font-size:10px;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0}

/* Form inputs */
.g-inp{width:100%;background:rgba(255,255,255,.055);border:1px solid rgba(255,255,255,.09);border-radius:var(--rx);color:var(--text);font-size:16px;font-family:inherit;padding:13px 13px 13px 46px;outline:none;-webkit-appearance:none;min-width:0;transition:border-color .2s,background .2s,box-shadow .2s}
.g-inp::placeholder{color:var(--t3)}.g-inp:focus{border-color:rgba(170,238,0,.32);background:rgba(170,238,0,.05);box-shadow:0 0 0 3px rgba(170,238,0,.07)}
input[type="date"].g-inp{color-scheme:dark;padding-left:46px}
.inp-row{position:relative;display:flex;align-items:center}
.inp-ico{position:absolute;left:14px;font-size:16px;pointer-events:none;opacity:.55;z-index:1;line-height:1;width:20px;text-align:center}

/* PIN setup in modal */
.pin-setup-row{display:flex;align-items:center;justify-content:space-between;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);border-radius:var(--rx);padding:13px 15px;cursor:pointer;gap:12px;transition:background .15s}
.pin-setup-row:active{background:rgba(255,255,255,.08)}
.pin-setup-dots{display:flex;gap:5px}
.psd{width:8px;height:8px;border-radius:50%;border:1.5px solid rgba(255,255,255,.2);background:transparent;transition:all .18s}
.psd.on{background:var(--lime);border-color:var(--lime)}

/* Emoji / Color */
.emoji-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:7px}
.emo{font-size:22px;padding:9px;border-radius:12px;text-align:center;cursor:pointer;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07);transition:background .15s,transform .15s}
.emo.sel{background:var(--lime-dim);border-color:var(--lime-bd);transform:scale(1.1)}
.emo:active{transform:scale(.88)}
.color-row{display:flex;gap:11px}
.cdot{width:34px;height:34px;border-radius:50%;cursor:pointer;border:3px solid transparent;transition:transform .15s}
.cdot.lime{background:var(--lime)}.cdot.blue{background:var(--blue)}.cdot.purple{background:var(--purple)}.cdot.orange{background:var(--orange)}.cdot.red{background:var(--red)}.cdot.teal{background:var(--teal)}
.cdot.sel{border-color:rgba(255,255,255,.7);transform:scale(1.2)}

/* Staff modal */
.role-sel{display:flex;gap:8px}
.role-btn{flex:1;padding:10px;border-radius:12px;font-size:13px;font-weight:600;font-family:inherit;border:1px solid rgba(255,255,255,.08);background:rgba(255,255,255,.04);color:var(--t2);cursor:pointer;transition:background .15s,color .15s}
.role-btn.active{background:var(--lime-dim);color:var(--lime);border-color:var(--lime-bd)}
.role-btn:active{opacity:.65}
.proj-pick{display:flex;flex-direction:column;gap:7px}
.proj-pick-item{display:flex;align-items:center;gap:10px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.07);border-radius:var(--rx);padding:11px 13px;cursor:pointer;transition:background .15s}
.proj-pick-item input[type=checkbox]{width:18px;height:18px;accent-color:var(--lime);cursor:pointer;flex-shrink:0}
.proj-pick-item:has(input:checked){background:rgba(170,238,0,.06);border-color:rgba(170,238,0,.18)}
.pp-emo{font-size:20px}.pp-name{font-size:14px;font-weight:500;flex:1}

/* Buttons */
.btn-lime{width:100%;background:var(--lime);color:#080800;border:none;border-radius:var(--rx);font-size:16px;font-weight:700;font-family:inherit;padding:15px;cursor:pointer;letter-spacing:-.2px;box-shadow:0 4px 24px rgba(170,238,0,.22);transition:transform .15s,opacity .15s}
.btn-lime:active{transform:scale(.97);opacity:.88}
.btn-danger{width:100%;background:rgba(255,69,58,.1);color:var(--red);border:1px solid rgba(255,69,58,.17);border-radius:var(--rx);font-size:16px;font-family:inherit;font-weight:600;padding:15px;cursor:pointer;transition:background .15s}
.btn-danger:active{background:rgba(255,69,58,.18)}
.btn-ghost{width:100%;background:rgba(255,255,255,.04);color:var(--t2);border:1px solid rgba(255,255,255,.08);border-radius:var(--rx);font-size:15px;font-family:inherit;padding:14px;cursor:pointer;transition:background .15s}
.btn-ghost:active{background:rgba(255,255,255,.09)}

/* Dot */
.att-dot{width:8px;height:8px;border-radius:50%;background:rgba(255,255,255,.2);flex-shrink:0;display:inline-block}
.att-dot.on{background:var(--lime);box-shadow:0 0 8px rgba(170,238,0,.6);animation:pulse 1.5s infinite}

/* ═══ TOAST ═══ */
.toast{position:fixed;bottom:calc(80px + var(--safe-bot));left:50%;transform:translateX(-50%) translateY(18px);background:rgba(16,16,24,.97);border:1px solid rgba(255,255,255,.12);color:#fff;padding:11px 20px;border-radius:18px;font-size:14px;font-weight:500;backdrop-filter:blur(30px);opacity:0;pointer-events:none;transition:all .28s cubic-bezier(.32,.72,0,1);z-index:999;white-space:nowrap;font-family:inherit}
.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.theme-light .toast{background:rgba(20,20,30,.95);color:#fff}

/* ═══ LIGHT THEME — Dot override ═══ */
.theme-light .att-dot{border:1.5px solid rgba(0,0,0,.2)}
.theme-light .att-dot.on{border-color:transparent}

/* ═══ КОШЕЛЬКИ ВЛАДЕЛЬЦА ═══ */
.wallet-card{background:linear-gradient(145deg,rgba(10,132,255,.08),rgba(10,132,255,.01));border-color:rgba(10,132,255,.18);cursor:pointer;transition:opacity .15s}
.wallet-card:active{opacity:.8}
.wallet-grid{display:flex;gap:1px;background:rgba(255,255,255,.06);border-radius:16px;overflow:hidden;margin-bottom:12px}
.wallet-item{flex:1;padding:14px 10px;text-align:center;background:var(--bg2)}
.theme-light .wallet-item{background:#fff}
.wallet-item.card-w{background:rgba(10,132,255,.06)}
.wallet-item.cash-w{background:rgba(52,199,89,.06)}
.wallet-lbl{font-size:10px;color:var(--t3);text-transform:uppercase;letter-spacing:.4px;margin-bottom:4px}
.wallet-val{font-size:17px;font-weight:800;letter-spacing:-.4px}
.wallet-total-row{display:flex;justify-content:space-between;align-items:center;font-size:13px;color:var(--t2)}
.wallet-total{font-size:18px;font-weight:800;color:var(--blue)}
.wallet-edit-hint{font-size:11px;color:var(--t3);text-align:center;margin-top:6px}

/* ═══ СЕКЦИИ ЧЕКОВ ═══ */
.check-section-hdr{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.4px;color:var(--t3);padding:8px 2px 4px;border-bottom:1px solid rgba(255,255,255,.05);margin-bottom:2px}
.check-section-hdr.expense-hdr{color:rgba(255,69,58,.7)}
.theme-light .check-section-hdr{border-bottom-color:rgba(0,0,0,.07);color:rgba(0,0,0,.4)}
.theme-light .check-section-hdr.expense-hdr{color:rgba(200,50,40,.75)}

/* ═══ СВЕТЛАЯ ТЕМА — ПОЛНЫЙ FIX ═══ */
/* Фон */
.theme-light{background:#F0F0F5}
.theme-light .app-wrap{background:#F0F0F5}
.theme-light html,.theme-light body{background:#F0F0F5}

/* Topbar */
.theme-light .topbar{background:rgba(248,248,252,.95);border-bottom:1px solid rgba(0,0,0,.12)}
.theme-light .tb-logo{color:#3A7A00}
.theme-light .tb-btn{background:#FFFFFF;border:1.5px solid rgba(0,0,0,.15);color:rgba(0,0,0,.7);box-shadow:0 1px 4px rgba(0,0,0,.08)}
.theme-light .tb-btn svg{stroke:rgba(0,0,0,.65)}
.theme-light .tb-btn:active{background:#E8E8F0}
.theme-light .back-btn{color:#3A7A00}

/* Карточки */
.theme-light .glass-card{background:#FFFFFF;border:1.5px solid rgba(0,0,0,.1);box-shadow:0 2px 12px rgba(0,0,0,.07)}
.theme-light .card-title{color:#0A0A0A}

/* Кнопка Новый проект */
.theme-light .add-btn{background:rgba(60,140,0,.12);border:1.5px solid rgba(60,140,0,.35);color:#3A7A00;font-weight:700}
.theme-light .add-btn:active{background:rgba(60,140,0,.22)}

/* Аватар */
.theme-light .avatar-btn{background:#FFFFFF;border:1.5px solid rgba(0,0,0,.15);color:rgba(0,0,0,.5);box-shadow:0 1px 4px rgba(0,0,0,.08)}

/* pcard */
.theme-light .pcard{border:1.5px solid rgba(0,0,0,.14);box-shadow:0 2px 8px rgba(0,0,0,.08)}
.theme-light .pcard-name{color:#fff}
.theme-light .pcard-desc{color:rgba(255,255,255,.55)}

/* Профиль */
.theme-light .profile-card{background:linear-gradient(145deg,rgba(60,140,0,.06),rgba(60,140,0,.01));border-color:rgba(60,140,0,.2)}
.theme-light .profile-ava{background:#F0F0F5;border:2px solid rgba(0,0,0,.12)}
.theme-light .profile-name{color:#0A0A0A}
.theme-light .profile-role{color:#3A7A00;background:rgba(60,140,0,.12);border-color:rgba(60,140,0,.3)}
.theme-light .profile-phone{color:rgba(0,0,0,.55)}
.theme-light .ava-edit{border-color:#F0F0F5}

/* Settings items */
.theme-light .set-group-title{color:rgba(0,0,0,.45)}
.theme-light .set-item{border-bottom-color:rgba(0,0,0,.07);color:#0A0A0A}
.theme-light .set-ico{color:#0A0A0A}
.theme-light .set-label{color:#0A0A0A;font-weight:600}
.theme-light .set-arr{color:rgba(0,0,0,.35)}
.theme-light .tsl{background:rgba(0,0,0,.15)}

/* Кнопки действий */
.theme-light .act-btn{background:#FFFFFF;border:1.5px solid rgba(0,0,0,.12);color:#0A0A0A;box-shadow:0 1px 4px rgba(0,0,0,.06)}
.theme-light .act-btn svg{stroke:currentColor}
.theme-light .act-btn.warn{color:#C07000;border-color:rgba(200,120,0,.3);background:#FFF9F0}
.theme-light .act-btn.danger{color:#CC3A2E;border-color:rgba(204,58,46,.3);background:#FFF5F5}
.theme-light .act-btn:active{background:#F0F0F5}

/* Транзакции */
.theme-light .txn-item{border-bottom-color:rgba(0,0,0,.07)}
.theme-light .txn-cat{color:#0A0A0A}
.theme-light .txn-note{color:rgba(0,0,0,.45)}
.theme-light .txn-meta{color:rgba(0,0,0,.35)}
.theme-light .txn-del{background:rgba(204,58,46,.1);border-color:rgba(204,58,46,.25);color:#CC3A2E}
.theme-light .txn-date-lbl{color:rgba(0,0,0,.45)}
.theme-light .txn-date-hdr{border-bottom-color:rgba(0,0,0,.08)}

/* Секции чеков */
.theme-light .check-section-hdr{color:rgba(0,0,0,.4);border-bottom-color:rgba(0,0,0,.08)}

/* Баланс проекта */
.theme-light .proj-bal-item{background:#FAFAFA}
.theme-light .proj-bal-lbl{color:rgba(0,0,0,.4)}
.theme-light .proj-bal-val{color:#0A0A0A}
.theme-light .proj-bal-item.income{background:rgba(52,199,89,.08)}
.theme-light .proj-bal-item.expense{background:rgba(204,58,46,.07)}

/* Касса */
.theme-light .daily-card{background:rgba(52,199,89,.05);border-color:rgba(52,199,89,.2)}
.theme-light .daily-row-joined{background:#FAFAFA;border:1.5px solid rgba(0,0,0,.1)}
.theme-light .daily-col-divider{background:rgba(0,0,0,.1)}
.theme-light .daily-col-lbl{color:rgba(0,0,0,.45)}
.theme-light .daily-col-val{color:#0A0A0A}
.theme-light .daily-total-row{color:rgba(0,0,0,.55)}
.theme-light .daily-total{color:#3A7A00}

/* Смена */
.theme-light .att-bar-compact{background:rgba(60,140,0,.07);border-color:rgba(60,140,0,.25)}
.theme-light .att-info-compact{color:rgba(0,0,0,.6)}
.theme-light .att-btn-compact.checkin{background:#5AAA00;color:#fff}
.theme-light .att-btn-compact.checkout{background:rgba(204,58,46,.1);border-color:rgba(204,58,46,.3);color:#CC3A2E}

/* МСК бар */
.theme-light .msk-time-bar{background:#FFFFFF;border-color:rgba(0,0,0,.1)}

/* Staff */
.theme-light .staff-ava{background:rgba(60,140,0,.12);border-color:rgba(60,140,0,.25);color:#3A7A00}
.theme-light .staff-name{color:#0A0A0A}
.theme-light .staff-phone{color:rgba(0,0,0,.5)}
.theme-light .staff-role-badge.cashier{background:rgba(10,132,255,.12);color:#0055CC}
.theme-light .staff-role-badge.manager{background:rgba(60,140,0,.12);color:#3A7A00}
.theme-light .small-btn.edit{background:#F0F0F5;color:rgba(0,0,0,.6);border-color:rgba(0,0,0,.15)}
.theme-light .small-btn.del{background:rgba(204,58,46,.08);color:#CC3A2E;border-color:rgba(204,58,46,.2)}

/* Attendance log */
.theme-light .att-log-item{border-bottom-color:rgba(0,0,0,.07)}
.theme-light .att-log-ava{background:rgba(60,140,0,.1);border-color:rgba(60,140,0,.2);color:#3A7A00}
.theme-light .att-log-name{color:#0A0A0A}
.theme-light .att-log-time{color:rgba(0,0,0,.4)}
.theme-light .att-log-dur{color:rgba(0,0,0,.55)}
.theme-light .att-log-dur.active{color:#3A7A00}

/* Период кнопки */
.theme-light .period-btn{color:rgba(0,0,0,.55)}
.theme-light .period-btn.active{background:rgba(60,140,0,.12);color:#3A7A00}
.theme-light .ov-item{background:#FAFAFA;border-color:rgba(0,0,0,.1)}
.theme-light .ov-val{color:#0A0A0A}
.theme-light .ov-lbl{color:rgba(0,0,0,.5)}

/* Rank */
.theme-light .rank-item{border-bottom-color:rgba(0,0,0,.07)}
.theme-light .rank-num{background:rgba(60,140,0,.1);border-color:rgba(60,140,0,.25);color:#3A7A00}
.theme-light .rank-name{color:#0A0A0A}
.theme-light .rank-sub{color:rgba(0,0,0,.5)}

/* Calendar */
.theme-light .cal-month-title{color:#0A0A0A}
.theme-light .cal-nav{background:#FFFFFF;border:1.5px solid rgba(0,0,0,.15);color:#0A0A0A;box-shadow:0 1px 4px rgba(0,0,0,.06)}
.theme-light .cal-day.today .cal-num{background:#5AAA00;color:#fff}
.theme-light .cal-day.has-data{background:rgba(60,140,0,.07);border-color:rgba(60,140,0,.2)}
.theme-light .cal-dow{color:rgba(0,0,0,.4)}
.theme-light .cal-amt{color:#3A7A00}
.theme-light .day-detail{background:#FFFFFF;border-color:rgba(0,0,0,.12)}
.theme-light .day-cash-item{background:#F5F5FA}
.theme-light .day-cash-item.total{background:rgba(60,140,0,.08);border-color:rgba(60,140,0,.2)}
.theme-light .day-cash-lbl{color:rgba(0,0,0,.45)}
.theme-light .day-cash-val{color:#0A0A0A}
.theme-light .day-staff-chip{background:rgba(10,132,255,.1);border-color:rgba(10,132,255,.25);color:#0055CC}

/* Best staff */
.theme-light .best-ava{background:rgba(255,200,0,.2);border-color:rgba(255,200,0,.4);color:#A07000}
.theme-light .bstat{background:#F0F0F5;border-color:rgba(0,0,0,.1);color:rgba(0,0,0,.6)}
.theme-light .bstat.gold{color:#A07000;background:rgba(255,200,0,.1);border-color:rgba(255,200,0,.3)}

/* Modals */
.theme-light .modal-sheet{background:rgba(250,250,254,.99);border-color:rgba(0,0,0,.12)}
.theme-light .modal-title{color:#0A0A0A}
.theme-light .modal-close-btn{background:#F0F0F5;border:1px solid rgba(0,0,0,.12);color:rgba(0,0,0,.5)}
.theme-light .modal-handle{background:rgba(0,0,0,.15)}
.theme-light .type-sel{background:#F0F0F5;border-color:rgba(0,0,0,.1)}
.theme-light .type-btn{color:rgba(0,0,0,.5)}
.theme-light .nb{background:#FFFFFF;border:1.5px solid rgba(0,0,0,.12);color:#0A0A0A;box-shadow:0 1px 3px rgba(0,0,0,.06)}
.theme-light .nb:active{background:#E8E8F0}
.theme-light .amt-val{color:#3A7A00}
.theme-light .amt-cur{color:rgba(0,0,0,.45)}
.theme-light .chip{background:#F0F0F5;border:1.5px solid rgba(0,0,0,.12);color:rgba(0,0,0,.65)}
.theme-light .chip.on{background:rgba(60,140,0,.12);color:#3A7A00;border-color:rgba(60,140,0,.35)}
.theme-light .g-inp{background:#FFFFFF;border:1.5px solid rgba(0,0,0,.15);color:#0A0A0A;box-shadow:0 1px 3px rgba(0,0,0,.05)}
.theme-light .g-inp:focus{border-color:rgba(60,140,0,.5);box-shadow:0 0 0 3px rgba(60,140,0,.08)}
.theme-light .g-inp::placeholder{color:rgba(0,0,0,.35)}
.theme-light .field-lbl{color:rgba(0,0,0,.45)}
.theme-light .inp-ico{color:rgba(0,0,0,.4)}
.theme-light .emo{background:#F0F0F5;border-color:rgba(0,0,0,.1)}
.theme-light .emo.sel{background:rgba(60,140,0,.12);border-color:rgba(60,140,0,.3)}
.theme-light .role-btn{background:#F0F0F5;border:1.5px solid rgba(0,0,0,.12);color:rgba(0,0,0,.65)}
.theme-light .role-btn.active{background:rgba(60,140,0,.12);color:#3A7A00;border-color:rgba(60,140,0,.35)}
.theme-light .proj-pick-item{background:#F0F0F5;border-color:rgba(0,0,0,.1)}
.theme-light .proj-pick-item:has(input:checked){background:rgba(60,140,0,.08);border-color:rgba(60,140,0,.25)}
.theme-light .pp-name{color:#0A0A0A}
.theme-light .photo-add-btn{background:#F0F0F5;border-color:rgba(0,0,0,.12);color:rgba(0,0,0,.55)}
.theme-light .pin-setup-row{background:#F0F0F5;border-color:rgba(0,0,0,.12)}
.theme-light .psd{border-color:rgba(0,0,0,.25)}
.theme-light .psd.on{background:#5AAA00;border-color:#5AAA00}

/* Auth light */
.theme-light .auth-bg{background:radial-gradient(ellipse 80% 60% at 20% 10%,rgba(90,170,0,.08),transparent 55%),radial-gradient(ellipse 60% 70% at 85% 85%,rgba(10,132,255,.06),transparent 55%),#F0F0F5}
.theme-light .auth-wordmark{color:#0A0A0A}
.theme-light .auth-wordmark span{color:#3A7A00}
.theme-light .auth-tagline{color:rgba(0,0,0,.4)}
.theme-light .auth-card{background:rgba(255,255,255,.95);border-color:rgba(0,0,0,.12);box-shadow:0 20px 60px rgba(0,0,0,.12)}
.theme-light .auth-tabs{background:#F0F0F5;border-color:rgba(0,0,0,.1)}
.theme-light .auth-tab{color:rgba(0,0,0,.5)}
.theme-light .auth-tab.active{background:rgba(60,140,0,.12);color:#3A7A00}
.theme-light .auth-sub{color:rgba(0,0,0,.55)}
.theme-light .auth-lbl{color:rgba(0,0,0,.45)}
.theme-light .auth-inp{background:#FAFAFA;border:1.5px solid rgba(0,0,0,.15);color:#0A0A0A}
.theme-light .auth-inp:focus{border-color:rgba(60,140,0,.5);background:rgba(60,140,0,.04);box-shadow:0 0 0 3px rgba(60,140,0,.08)}
.theme-light .auth-inp::placeholder{color:rgba(0,0,0,.35)}
.theme-light .auth-inp-ico{color:rgba(0,0,0,.4)}
.theme-light .auth-field:focus-within .auth-inp-ico{color:rgba(60,140,0,.7)}
.theme-light .pwd-eye{color:rgba(0,0,0,.4)}
.theme-light .auth-divider{color:rgba(0,0,0,.3)}
.theme-light .auth-btn-ghost{background:#F0F0F5;color:rgba(0,0,0,.6);border:1.5px solid rgba(0,0,0,.12)}
.theme-light .auth-btn-ghost:active{background:#E0E0E8}

/* Toast light */
.theme-light .toast{background:rgba(20,20,30,.95);color:#fff;border-color:rgba(255,255,255,.15)}

/* Pin screen light */
.theme-light .pin-bg{background:rgba(240,240,248,.96)}
.theme-light .pk{background:rgba(0,0,0,.08);color:#0A0A0A}
.theme-light .pk:active{background:rgba(0,0,0,.18)}
.theme-light .pk-cancel{background:transparent!important;color:#3A7A00}
.theme-light .pk-del{background:transparent!important;color:#0A0A0A}
.theme-light .pd{border-color:rgba(0,0,0,.25)}
.theme-light .pd.on{background:#5AAA00;border-color:#5AAA00;box-shadow:0 0 12px rgba(90,170,0,.4)}
.theme-light .pd.ok{background:#5AAA00;border-color:#5AAA00}
.theme-light .pin-proj-name{color:#0A0A0A}
.theme-light .pin-sub{color:rgba(0,0,0,.55)}

/* Empty state */
.theme-light .empty-title{color:#0A0A0A}
.theme-light .empty-sub{color:rgba(0,0,0,.5)}

/* Pending */
.theme-light .pending-card{background:#FFFFFF;border-color:rgba(0,0,0,.1)}

/* Wallet light */
.theme-light .wallet-card{background:rgba(10,132,255,.05);border-color:rgba(10,132,255,.2)}
.theme-light .wallet-item{background:#FAFAFA}
.theme-light .wallet-item.card-w{background:rgba(10,132,255,.06)}
.theme-light .wallet-item.cash-w{background:rgba(52,199,89,.06)}
.theme-light .wallet-lbl{color:rgba(0,0,0,.45)}
.theme-light .wallet-val{color:#0A0A0A}
.theme-light .wallet-total-row{color:rgba(0,0,0,.55)}
.theme-light .wallet-total{color:#0055CC}
.theme-light .wallet-edit-hint{color:rgba(0,0,0,.35)}

/* ═══ БАЛАНС ПРОЕКТА — ТЕРМИНАЛ + НАЛИЧКА ═══ */
.proj-bal-total-row{
  display:flex;justify-content:space-between;align-items:flex-end;
  padding-bottom:12px;border-bottom:1px solid rgba(255,255,255,.07);margin-bottom:12px
}
.theme-light .proj-bal-total-row{border-bottom-color:rgba(0,0,0,.08)}
.proj-bal-total{font-size:30px;font-weight:800;letter-spacing:-1.2px;color:var(--lime);line-height:1.1}
.theme-light .proj-bal-total{color:#3A7A00}
.proj-bal-exp{font-size:20px;font-weight:800;letter-spacing:-.6px;color:var(--red)}
.proj-bal-grid{display:flex;gap:10px}
.proj-bal-item{flex:1;border-radius:14px;padding:12px 14px}
.proj-bal-item.terminal-w{background:rgba(10,132,255,.09);border:1px solid rgba(10,132,255,.18)}
.proj-bal-item.cash-w{background:rgba(52,199,89,.09);border:1px solid rgba(52,199,89,.18)}
.proj-bal-lbl{font-size:11px;color:var(--t3);text-transform:uppercase;letter-spacing:.35px;margin-bottom:5px}
.proj-bal-val{font-size:19px;font-weight:800;letter-spacing:-.5px}
.proj-bal-val.blue{color:var(--blue)}
.proj-bal-val.green{color:var(--green)}
.theme-light .proj-bal-item.terminal-w{background:rgba(10,132,255,.07);border-color:rgba(10,132,255,.2)}
.theme-light .proj-bal-item.cash-w{background:rgba(52,199,89,.07);border-color:rgba(52,199,89,.2)}
.theme-light .proj-bal-val.blue{color:#0055CC}

/* ═══ ЧЕКИ — ПОЛНЫЙ РЕДИЗАЙН ═══ */

/* Карточка чеков */
.checks-card{padding:0!important;overflow:visible}

/* Заголовок */
.checks-header{
  display:flex;align-items:center;justify-content:space-between;
  padding:16px 18px 12px;
  border-bottom:1px solid var(--glass-bd);
}
.theme-light .checks-header{border-bottom-color:rgba(0,0,0,.09)}

.checks-add-btn{
  width:32px;height:32px;
  background:var(--lime);border:none;border-radius:50%;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;flex-shrink:0;color:#0A0A00;
  box-shadow:0 2px 12px rgba(170,238,0,.35);
  transition:transform .12s,opacity .12s;
}
.checks-add-btn:active{transform:scale(.86);opacity:.8}

/* ─── ТАБЫ ─── */
.check-tabs{
  display:flex;gap:0;
  padding:0 10px;
  overflow-x:auto;-webkit-overflow-scrolling:touch;
  scrollbar-width:none;
  border-bottom:1px solid var(--glass-bd);
  flex-shrink:0;
}
.theme-light .check-tabs{border-bottom-color:rgba(0,0,0,.09)}
.check-tabs::-webkit-scrollbar{display:none}

.check-tab{
  display:flex;align-items:center;gap:5px;
  padding:10px 12px 9px;
  background:none;border:none;
  font-family:inherit;font-size:13px;font-weight:600;
  color:var(--t3);cursor:pointer;
  border-bottom:2px solid transparent;
  white-space:nowrap;flex-shrink:0;
  transition:color .18s,border-color .18s;
  margin-bottom:-1px;
}
.check-tab.active{color:var(--lime);border-bottom-color:var(--lime)}
.check-tab:active{opacity:.6}
.theme-light .check-tab{color:rgba(0,0,0,.38)}
.theme-light .check-tab.active{color:#3A7A00;border-bottom-color:#3A7A00}

.check-tab-ico{font-size:13px;line-height:1}
.check-tab-cnt{
  background:rgba(255,255,255,.09);
  border-radius:20px;padding:1px 6px;
  font-size:10px;font-weight:700;color:var(--t3);
}
.check-tab.active .check-tab-cnt{
  background:rgba(170,238,0,.14);color:var(--lime);
}
.theme-light .check-tab-cnt{background:rgba(0,0,0,.07);color:rgba(0,0,0,.4)}
.theme-light .check-tab.active .check-tab-cnt{background:rgba(60,140,0,.12);color:#3A7A00}

.check-tabs-sum{
  font-size:12px;color:var(--t3);font-weight:600;
  padding:5px 18px 0;min-height:18px;
}

/* ─── СПИСОК ЧЕКОВ ─── */
#txnList{display:block;padding:0 14px;}

/* ─── ГРУППА ПО ДАТЕ ─── */
.checks-date-group{
  margin-bottom:4px;
  animation:fadeIn .22s ease both;
}

.checks-date-hdr{
  display:flex;align-items:center;justify-content:space-between;
  padding:12px 0 6px;

}

.checks-date-lbl{
  font-size:12px;font-weight:700;
  color:var(--t3);text-transform:uppercase;letter-spacing:.35px;
}
.checks-date-totals{display:flex;gap:6px;align-items:center}
.checks-sum{
  font-size:12px;font-weight:800;
  padding:2px 8px;border-radius:8px;
}
.checks-sum.inc{color:var(--green);background:rgba(52,199,89,.1)}
.checks-sum.exp{color:var(--red);background:rgba(255,69,58,.1)}

/* ─── ОДИН ЧЕК ─── */
.check-item{
  display:flex;flex-direction:column;
  padding:10px 0;
  border-bottom:1px solid rgba(255,255,255,.05);
  animation:fadeIn .2s ease both;
}
.check-item:last-child{border-bottom:none}
.theme-light .check-item{border-bottom-color:rgba(0,0,0,.06)}

.check-item-main{
  display:flex;align-items:center;gap:11px;
}

/* Иконка */
.check-ico{
  width:38px;height:38px;border-radius:12px;
  display:flex;align-items:center;justify-content:center;
  font-size:18px;flex-shrink:0;
}
.check-ico.terminal,.check-ico.check,.check-ico.income{background:rgba(10,132,255,.1)}
.check-ico.cash{background:rgba(52,199,89,.1)}
.check-ico.expense{background:rgba(255,69,58,.1)}

/* Тело чека */
.check-body{flex:1;min-width:0}

.check-amount{
  font-size:17px;font-weight:800;letter-spacing:-.4px;line-height:1.2;
}
.check-amount.terminal,.check-amount.check,.check-amount.income{color:var(--blue)}
.check-amount.cash{color:var(--green)}
.check-amount.expense{color:var(--red)}

.check-note{
  font-size:13px;color:var(--t2);margin-top:2px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.check-time{font-size:11px;color:var(--t3);margin-top:2px}
.theme-light .check-note{color:rgba(0,0,0,.55)}
.theme-light .check-time{color:rgba(0,0,0,.35)}

/* Кнопка удаления */
.check-del{
  background:rgba(255,69,58,.08);
  border:1px solid rgba(255,69,58,.15);
  color:var(--red);border-radius:8px;
  width:28px;height:28px;
  display:flex;align-items:center;justify-content:center;
  cursor:pointer;flex-shrink:0;
  transition:background .15s;
}
.check-del:active{background:rgba(255,69,58,.22)}
.theme-light .check-del{background:rgba(204,58,46,.08);border-color:rgba(204,58,46,.2);color:#CC3A2E}

/* ─── ФОТО В ЧЕКЕ — ДО 3 ШТУК ─── */
.txn-photos{
  display:flex;gap:6px;
  margin-top:8px;
  margin-left:49px; /* отступ под иконку чека */
}

.txn-photo-img{
  flex:1;
  min-width:0;
  aspect-ratio:1/1;
  object-fit:cover;
  border-radius:10px;
  cursor:pointer;
  border:1px solid rgba(255,255,255,.1);
  max-height:120px;
  transition:transform .15s,opacity .15s;
}
.txn-photo-img:active{transform:scale(.94);opacity:.8}
.theme-light .txn-photo-img{border-color:rgba(0,0,0,.1)}

/* Одно фото — прямоугольное */
.txn-photos .txn-photo-img:only-child{
  max-width:200px;
  aspect-ratio:4/3;
  flex:none;
}

/* ─── ПУСТОЕ СОСТОЯНИЕ ─── */
.checks-empty{
  display:flex;flex-direction:column;align-items:center;
  padding:32px 20px;text-align:center;
}

/* Анимация pending чека */
@keyframes checkPending{0%,100%{opacity:.75}50%{opacity:.45}}
.check-item-pending{animation:checkPending 1.4s ease infinite!important}

/* Нижний отступ после всех чеков */
#txnList{padding-bottom:8px}

/* ═══ ДАТА-БАР В ЧЕКАХ ═══ */
.checks-date-bar{
  display:flex;align-items:center;gap:6px;
  padding:8px 14px 6px;
  flex-wrap:wrap;
}

.checks-date-btn{
  display:flex;align-items:center;gap:5px;
  background:rgba(255,255,255,.07);
  border:1px solid rgba(255,255,255,.1);
  border-radius:20px;
  padding:5px 10px;
  font-size:13px;font-weight:600;font-family:inherit;
  color:var(--text);cursor:pointer;
  transition:background .15s;
}
.checks-date-btn:active{background:rgba(255,255,255,.14)}
.checks-date-btn svg{flex-shrink:0;opacity:.6}
.theme-light .checks-date-btn{
  background:rgba(0,0,0,.06);
  border-color:rgba(0,0,0,.12);
  color:#0A0A0A;
}

.checks-date-reset,.checks-date-all{
  background:none;border:none;
  font-size:12px;font-weight:600;font-family:inherit;
  color:var(--t3);cursor:pointer;
  padding:4px 8px;border-radius:12px;
  transition:color .15s,background .15s;
}
.checks-date-reset:active,.checks-date-all:active{background:rgba(255,255,255,.08);color:var(--text)}
.theme-light .checks-date-reset,.theme-light .checks-date-all{color:rgba(0,0,0,.4)}

.checks-sum-inline{
  margin-left:auto;
  font-size:13px;
  white-space:nowrap;
}

/* ═══ ФОТО — ЗАГРУЗКА (спиннер) ═══ */
.photo-thumb-wrap.uploading{opacity:.7}
.photo-upload-spinner{
  position:absolute;top:50%;left:50%;
  transform:translate(-50%,-50%);
  width:18px;height:18px;
  border:2px solid rgba(255,255,255,.3);
  border-top-color:#fff;
  border-radius:50%;
  animation:spin .7s linear infinite;
  pointer-events:none;
}
@keyframes spin{to{transform:translate(-50%,-50%) rotate(360deg)}}

/* ═══ CHECK-ICO SVG ИКОНКИ ═══ */
.check-ico svg{
  stroke:currentColor;
  display:block;
}
.check-ico.terminal{background:rgba(10,132,255,.1);color:var(--blue)}
.check-ico.cash{background:rgba(52,199,89,.1);color:var(--green)}
.check-ico.expense{background:rgba(255,69,58,.1);color:var(--red)}
.check-ico.income{background:rgba(52,199,89,.1);color:var(--green)}
.check-ico.check{background:rgba(10,132,255,.1);color:var(--blue)}

/* ═══ ИСПРАВЛЕНИЕ СКРОЛЛА ═══ */
/* checks-card не должна блокировать скролл родителя */
.checks-card{
  padding:0!important;
  overflow:visible!important;
  /* убираем любые ограничения высоты */
  height:auto!important;
  max-height:none!important;
}
#txnList{
  display:block;
  padding:0 14px;
  overflow:visible!important;
  height:auto!important;
}

/* ═══ БЫСТРАЯ КАССА — анимация появления ═══ */
.daily-col-val{
  transition:opacity .2s ease;
}
.daily-col-val.loading{opacity:.3}

/* ═══ ЧЕКИ — ДАТА-ГРУППА (светлая тема) ═══ */
.theme-light .checks-date-btn{background:rgba(0,0,0,.06);border-color:rgba(0,0,0,.12)}
.theme-light .check-ico.terminal{background:rgba(10,132,255,.08);color:#0055CC}
.theme-light .check-ico.cash{background:rgba(52,199,89,.08);color:#1A7A3A}
.theme-light .check-ico.expense{background:rgba(204,58,46,.08);color:#CC3A2E}
/* ═══ ОБЪЯВЛЕНИЯ ═══ */
.ann-card{background:rgba(255,255,255,0.04);border:1px solid rgba(255,255,255,0.07);border-radius:16px;padding:14px 14px 12px;margin-bottom:8px;}
.ann-card.ann-urgent{background:rgba(255,69,58,0.08);border-color:rgba(255,69,58,0.25);}
.ann-card-main{display:flex;align-items:flex-start;gap:10px;}
.ann-icon{font-size:20px;flex-shrink:0;margin-top:1px;}
.ann-body{flex:1;min-width:0;}
.ann-title{font-size:15px;font-weight:700;color:var(--text);line-height:1.35;margin-bottom:2px;}
.ann-sub{font-size:13px;color:var(--t2);line-height:1.5;margin-bottom:4px;}
.ann-time{font-size:11.5px;color:var(--t3);}
.ann-del{width:28px;height:28px;display:flex;align-items:center;justify-content:center;background:rgba(255,255,255,0.06);border:1px solid rgba(255,255,255,0.08);border-radius:8px;color:var(--t2);cursor:pointer;flex-shrink:0;transition:all .15s;}
.ann-del:active{background:rgba(255,69,58,0.2);color:#FF453A;}
.ann-urgent .ann-title{color:#FF8A82;}

/* ═══ ЗАГРУЗИТЬ ЕЩЁ ═══ */
.checks-load-more-btn{width:100%;padding:11px;background:rgba(255,255,255,0.05);border:1px solid rgba(255,255,255,0.08);border-radius:12px;color:var(--t2);font-size:13.5px;font-weight:600;cursor:pointer;transition:all .15s;letter-spacing:-0.1px;}
.checks-load-more-btn:active{background:rgba(255,255,255,0.09);}

/* ═══ FAB: Новое объявление ═══ */
.ann-fab{
  position:fixed;
  bottom:calc(env(safe-area-inset-bottom,0px) + 76px);
  right:16px;
  display:flex;
  align-items:center;
  gap:7px;
  padding:13px 18px;
  background:linear-gradient(135deg,#a78bfa,#7c3aed);
  color:#fff;
  font-size:14px;
  font-weight:700;
  border-radius:50px;
  box-shadow:0 4px 20px rgba(124,58,237,0.45);
  z-index:900;
  cursor:pointer;
  border:none;
  letter-spacing:-0.2px;
  transition:transform .15s, box-shadow .15s;
}
.ann-fab:active{transform:scale(0.95);box-shadow:0 2px 10px rgba(124,58,237,0.3);}

/* ═══ BADGE объявлений на карточке проекта ═══ */
.pcard-ann-badge{
  position:absolute;
  top:-6px;right:-6px;
  min-width:20px;height:20px;
  background:#FF453A;
  color:#fff;
  font-size:11px;font-weight:800;
  border-radius:50px;
  display:flex;align-items:center;justify-content:center;
  padding:0 5px;
  box-shadow:0 2px 8px rgba(255,69,58,0.5);
  border:2px solid var(--bg);
  z-index:5;
  pointer-events:none;
}

/* ═══ Кнопка объявления в проекте ═══ */
.ann-add-btn{
  background:rgba(167,139,250,0.15)!important;
  border-color:rgba(167,139,250,0.3)!important;
  color:#a78bfa!important;
}
.ann-add-btn:active{background:rgba(167,139,250,0.25)!important;}

/* ═══ ГОЛОСОВЫЕ СООБЩЕНИЯ ═══ */
.ann-voice-row{display:flex;gap:8px;margin-bottom:6px;}
.ann-rec-btn{
  display:flex;align-items:center;gap:6px;
  padding:9px 14px;
  background:rgba(255,255,255,0.06);
  border:1px solid rgba(255,255,255,0.1);
  border-radius:10px;
  color:var(--t2);font-size:13px;font-weight:600;
  cursor:pointer;transition:all .15s;
}
.ann-rec-btn:active{background:rgba(255,255,255,0.1);}
.ann-rec-btn.rec-stop{background:rgba(255,69,58,0.15);border-color:rgba(255,69,58,0.3);color:#FF6B6B;}
.ann-rec-btn.rec-stop:active{background:rgba(255,69,58,0.25);}
.ann-rec-btn.rec-clear{padding:9px 12px;flex-shrink:0;}
.ann-voice-status{font-size:12px;color:var(--t3);min-height:16px;margin-bottom:4px;}

/* ═══ PLAY кнопка голосового в объявлении ═══ */
.ann-play-btn{
  display:inline-flex;align-items:center;gap:5px;
  padding:6px 12px;margin:4px 0;
  background:rgba(167,139,250,0.12);
  border:1px solid rgba(167,139,250,0.25);
  border-radius:20px;
  color:#a78bfa;font-size:12px;font-weight:600;
  cursor:pointer;transition:all .15s;
}
.ann-play-btn:active{background:rgba(167,139,250,0.22);}
.ann-play-btn:disabled{opacity:.5;}

/* Убираем старый FAB если остался */
.ann-fab{display:none!important;}

/* ═══ Кнопка "Добавить" объявление в проекте ═══ */
.ann-proj-add-btn{
  display:inline-flex;align-items:center;gap:5px;
  padding:7px 13px;
  background:rgba(167,139,250,0.15);
  border:1px solid rgba(167,139,250,0.35);
  border-radius:10px;
  color:#c4b5fd;
  font-size:13px;font-weight:700;
  cursor:pointer;
  transition:all .15s;
  letter-spacing:-0.1px;
}
.ann-proj-add-btn:active{background:rgba(167,139,250,0.28);}

/* ═══ ОШИБКА ЗАГРУЗКИ ФОТО ═══ */
.photo-thumb-wrap.upload-error{border:2px solid #FF453A!important;}
.photo-thumb-wrap.upload-error::after{
  content:'✕';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);
  font-size:24px;color:#FF453A;font-weight:900;text-shadow:0 0 8px rgba(0,0,0,.8);
}

/* ═══ VOICE BUBBLE — мессенджер стиль ═══ */
.ann-voice-bubble{
  background:rgba(255,255,255,.04);
  border:1px solid rgba(255,255,255,.09);
  border-radius:18px;padding:12px 16px;
  margin-bottom:12px;min-height:58px;
  display:flex;align-items:center;
}
.avb-mic-btn{
  width:46px;height:46px;border-radius:50%;flex-shrink:0;
  background:rgba(167,139,250,.15);border:1.5px solid rgba(167,139,250,.3);
  color:#c4b5fd;cursor:pointer;
  display:flex;align-items:center;justify-content:center;
  transition:background .15s,transform .1s;
}
.avb-mic-btn:active{background:rgba(167,139,250,.32);transform:scale(.92);}
.avb-pulse{
  width:12px;height:12px;border-radius:50%;background:#FF453A;flex-shrink:0;
  animation:avbPulse 1.1s ease-in-out infinite;
}
@keyframes avbPulse{0%,100%{opacity:1;transform:scale(1)}50%{opacity:.45;transform:scale(.7)}}
.avb-wave{display:flex;align-items:center;gap:3px;flex:1;height:28px;}
.avb-wave span{display:block;width:3px;border-radius:2px;background:rgba(167,139,250,.65);animation:avbBar .9s ease-in-out infinite;}
.avb-wave span:nth-child(1){height:10px;animation-delay:0s}
.avb-wave span:nth-child(2){height:22px;animation-delay:.12s}
.avb-wave span:nth-child(3){height:14px;animation-delay:.24s}
.avb-wave span:nth-child(4){height:26px;animation-delay:.18s}
.avb-wave span:nth-child(5){height:11px;animation-delay:.06s}
@keyframes avbBar{0%,100%{transform:scaleY(1)}50%{transform:scaleY(1.9)}}
.avb-timer{font-size:14px;font-weight:700;color:var(--text);font-variant-numeric:tabular-nums;flex-shrink:0;min-width:36px;}
.avb-stop-btn{
  width:36px;height:36px;border-radius:50%;flex-shrink:0;
  background:rgba(255,69,58,.15);border:1.5px solid rgba(255,69,58,.3);
  color:#FF453A;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s;
}
.avb-stop-btn:active{background:rgba(255,69,58,.3);}
.avb-play-preview{
  width:42px;height:42px;border-radius:50%;flex-shrink:0;
  background:rgba(52,199,89,.14);border:1.5px solid rgba(52,199,89,.28);
  color:#34C759;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background .15s;
}
.avb-play-preview:active{background:rgba(52,199,89,.28);}
.avb-del-btn{
  width:28px;height:28px;border-radius:50%;flex-shrink:0;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);
  color:var(--t2);cursor:pointer;font-size:12px;
  display:flex;align-items:center;justify-content:center;transition:background .15s;
}
.avb-del-btn:active{background:rgba(255,255,255,.14);}

/* ═══ ANN BADGE — поверх карточки ═══ */
.pcard-ann-badge{
  position:absolute;top:-8px;right:-8px;
  min-width:22px;height:22px;
  background:#FF453A;color:#fff;
  font-size:11px;font-weight:800;border-radius:50px;
  display:flex;align-items:center;justify-content:center;padding:0 6px;
  box-shadow:0 2px 10px rgba(255,69,58,.55);
  border:2.5px solid var(--bg);z-index:10;
  pointer-events:none;
  animation:badgePop .3s cubic-bezier(.34,1.56,.64,1) both;
}
@keyframes badgePop{0%{transform:scale(0)}100%{transform:scale(1)}}

/* ═══ ANN BANNER внизу карточки ═══ */
.pcard-ann-banner{
  position:absolute;bottom:0;left:0;right:0;
  background:linear-gradient(135deg,rgba(109,40,217,.88),rgba(139,92,246,.78));
  backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  border-radius:0 0 20px 20px;
  padding:6px 10px 8px;
  display:flex;align-items:center;gap:6px;z-index:4;
}

/* ═══ STAFF AVATAR IMG ═══ */
.staff-ava img,.best-ava img{width:100%;height:100%;object-fit:cover;border-radius:50%;}
