/* ============================================
   THEME ENHANCEMENTS 2024
   Soft Glassmorphism + Aurora Accents + Micro-interactions
   Loaded LAST — overrides base styles safely.
   
   Trends applied:
   • Soft Glass (frosted layers, subtle backdrop-blur)
   • Aurora gradients (gentle color washes on backgrounds)
   • Refined spacing & generous radius
   • Fluid micro-animations (spring-like easing)
   • Typographic hierarchy with variable weight
   • Accessible contrast with style
   ============================================ */

/* ===== CUSTOM EASING ===== */
:root{
    --ease-spring:cubic-bezier(.34,1.56,.64,1);
    --ease-smooth:cubic-bezier(.4,0,.2,1);
    --ease-out:cubic-bezier(0,.55,.45,1);
    --dur-fast:.15s;
    --dur-mid:.25s;
    --dur-slow:.4s;
}

/* ===== REFINED COLOR TOKENS — DARK ===== */
[data-theme="dark"]{
    --acc:#7c3aed;
    --acc2:#6366f1;
    --acc-light:#a78bfa;

    --bg0:#0a0a0f;
    --bg1:#0d0d14;
    --bg2:#111118;
    --bg3:#161620;
    --bg3h:#1c1c28;

    --brd:rgba(255,255,255,0.08);
    --brd-hover:rgba(124,58,237,0.5);
    --brd-accent:rgba(124,58,237,0.35);

    --t1:#ffffff;
    --t2:#94a3b8;
    --t3:#475569;

    --glass-bg:rgba(255,255,255,0.04);
    --glass-border:rgba(255,255,255,0.08);
    --glass-blur:12px;

    --shadow-sm:0 2px 8px rgba(0,0,0,.4);
    --shadow-md:0 8px 24px rgba(0,0,0,.5);
    --shadow-lg:0 16px 48px rgba(0,0,0,.6);
    --shadow-glow:0 0 60px rgba(124,58,237,0.25);
}

    /* Aurora — cool navy wash */
    --aurora-1:radial-gradient(ellipse 80% 60% at 10% 20%,rgba(92,200,240,.04) 0%,transparent 70%);
    --aurora-2:radial-gradient(ellipse 60% 80% at 90% 80%,rgba(239,68,104,.03) 0%,transparent 70%);
    --aurora-3:radial-gradient(ellipse 70% 50% at 50% 50%,rgba(52,232,165,.02) 0%,transparent 70%);
}

/* ===== REFINED COLOR TOKENS — LIGHT ===== */
[data-theme="light"]{
    --acc:#e03d5e;
    --grn:#1db87a;
    --blu:#2ea8d8;
    --ylw:#e8a820;
    --org:#e07830;

    /* White to light ice-blue-grey */
    --bg0:#eef1f6;
    --bg1:#f6f8fc;
    --bg2:#eff2f8;
    --bg3:#e6eaf4;
    --bg3h:#dce2f0;

    /* Cool grey-blue borders */
    --brd:rgba(80,100,140,.08);
    --brd-hover:rgba(80,100,140,.15);
    --brd-accent:rgba(224,61,94,.2);

    /* Dark navy text for contrast */
    --t1:#10162a;
    --t2:#4a5574;
    --t3:#8892ae;

    /* Glass — icy white */
    --glass-bg:rgba(246,248,252,.75);
    --glass-border:rgba(80,100,140,.07);
    --glass-blur:16px;

    /* Shadows — cool blue-grey */
    --shadow-sm:0 1px 4px rgba(40,60,100,.05);
    --shadow-md:0 4px 16px rgba(40,60,100,.07);
    --shadow-lg:0 12px 40px rgba(40,60,100,.09);
    --shadow-glow:0 0 16px rgba(224,61,94,.06);

    /* Aurora — icy blue wash */
    --aurora-1:radial-gradient(ellipse 80% 60% at 10% 20%,rgba(46,168,216,.04) 0%,transparent 70%);
    --aurora-2:radial-gradient(ellipse 60% 80% at 90% 80%,rgba(224,61,94,.02) 0%,transparent 70%);
    --aurora-3:radial-gradient(ellipse 70% 50% at 50% 50%,rgba(29,184,122,.02) 0%,transparent 70%);
}

/* ===== TYPOGRAPHY ===== */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&display=swap');
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800;900&family=Space+Grotesk:wght@400;500;600;700&display=swap');

body,
input,textarea,select,button{
    font-family:'Inter',system-ui,-apple-system,'Segoe UI',sans-serif;
    -webkit-font-smoothing:antialiased;
    -moz-osx-font-smoothing:grayscale;
    text-rendering:optimizeLegibility;
}

/* ===== AURORA BACKGROUND ===== */
.page{
    position:relative;
}
.page>*{position:relative;z-index:1}

/* Точечная сетка — как на сайте */
[data-theme="dark"] .page::before{
    content:'';
    position:fixed;
    inset:0;
    background-image:radial-gradient(rgba(255,255,255,0.055) 1px, transparent 1px);
    background-size:32px 32px;
    mask-image:radial-gradient(ellipse 100% 100% at 50% 50%, black 20%, transparent 100%);
    -webkit-mask-image:radial-gradient(ellipse 100% 100% at 50% 50%, black 20%, transparent 100%);
    pointer-events:none;
    z-index:0;
}

/* Фиолетовый градиент — всегда внизу экрана */
[data-theme="dark"] body::after{
    content:'';
    position:fixed;
    bottom:0;
    left:0;
    right:0;
    height:55vh;
    background:
        radial-gradient(ellipse 85% 100% at 50% 100%,
            rgba(109,40,217,0.18) 0%,
            rgba(88,28,220,0.08) 50%,
            transparent 75%);
    pointer-events:none;
    z-index:0;
}

/* Убираем старый ::after с .page */
[data-theme="dark"] .page::after{
    display:none;
}

/* Светлая тема — оригинальная aurora */
[data-theme="light"] .page::before{
    content:'';
    position:fixed;
    inset:0;
    background:var(--aurora-1),var(--aurora-2),var(--aurora-3);
    pointer-events:none;
    z-index:0;
}
[data-theme="light"] .page::after{
    display:none;
}

/* ===== GLOBAL TRANSITIONS ===== */
*,*::before,*::after{
    transition-property:background-color,border-color,color,box-shadow,opacity,transform,filter;
    transition-duration:var(--dur-fast);
    transition-timing-function:var(--ease-smooth);
}
/* Exclude layout-breaking transitions */
table,tr,colgroup,col{transition:none!important}

/* ===== SCROLLBAR ===== */
::-webkit-scrollbar{width:5px;height:5px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{
    background:var(--t3);
    border-radius:10px;
    border:1px solid transparent;
    background-clip:content-box;
}
::-webkit-scrollbar-thumb:hover{background:var(--t2)}

/* Firefox */
*{scrollbar-width:thin;scrollbar-color:var(--t3) transparent}

/* ===== SUMMARY CARDS ===== */
.sum-card{
    background:var(--glass-bg);
    backdrop-filter:blur(var(--glass-blur));
    -webkit-backdrop-filter:blur(var(--glass-blur));
    border:1px solid var(--glass-border);
    border-radius:16px;
    padding:18px 16px;
    box-shadow:var(--shadow-sm);
    transition:transform var(--dur-mid) var(--ease-spring),
               box-shadow var(--dur-mid) var(--ease-smooth),
               border-color var(--dur-mid);
}
.sum-card:hover{
    transform:translateY(-3px);
    box-shadow:var(--shadow-md);
    border-color:var(--brd-hover);
}
.sum-card:active{
    transform:translateY(-1px) scale(.99);
}
.sum-icon{
    border-radius:12px;
    background:var(--bg1);
    border:1px solid var(--brd);
    box-shadow:var(--shadow-sm);
    font-size:1.3rem;
    transition:transform var(--dur-mid) var(--ease-spring);
}
.sum-card:hover .sum-icon{
    transform:scale(1.08) rotate(-3deg);
}
.sum-val{
    font-weight:800;
    letter-spacing:-.02em;
    line-height:1.15;
}
.sum-lbl{
    font-size:.62rem;
    font-weight:700;
    letter-spacing:1px;
    opacity:.6;
    margin-top:2px;
}

/* Card accent borders — refined */
.s-total{border-left:3px solid var(--grn);border-left-color:var(--grn)}
.s-avg{border-left:3px solid var(--blu);border-left-color:var(--blu)}
.s-best{border-left:3px solid var(--ylw);border-left-color:var(--ylw)}
.s-days{border-left:3px solid var(--org);border-left-color:var(--org)}

/* Stagger entrance */
.fin-summary .sum-card{
    animation:cardSlideIn var(--dur-slow) var(--ease-out) both;
}
.fin-summary .sum-card:nth-child(1){animation-delay:.05s}
.fin-summary .sum-card:nth-child(2){animation-delay:.1s}
.fin-summary .sum-card:nth-child(3){animation-delay:.15s}
.fin-summary .sum-card:nth-child(4){animation-delay:.2s}

@keyframes cardSlideIn{
    from{opacity:0;transform:translateY(12px)}
    to{opacity:1;transform:translateY(0)}
}

/* ===== FINANCE TABLE ===== */
.fin-table th{
    background:var(--glass-bg);
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
    border:1px solid var(--glass-border);
    border-radius:10px;
    font-size:.67rem;
    font-weight:700;
    letter-spacing:.6px;
    padding:10px 5px;
}
.fin-table td{
    border-radius:10px;
    transition:transform var(--dur-mid) var(--ease-spring),
               box-shadow var(--dur-mid) var(--ease-smooth);
}
.fin-table td:not(.cell-dec):not(.cell-tot):not(.cell-e):hover{
    transform:scale(1.08);
    box-shadow:var(--shadow-glow);
    z-index:3;
}

/* Refined cell colors — DARK */
[data-theme="dark"] .cell-r{background:rgba(239,68,104,.18);color:#ffa0b4;border:1px solid rgba(239,68,104,.22)}
[data-theme="dark"] .cell-o{background:rgba(255,148,100,.18);color:#ffc8ac;border:1px solid rgba(255,148,100,.22)}
[data-theme="dark"] .cell-b{background:rgba(92,200,240,.18);color:#a8e6fa;border:1px solid rgba(92,200,240,.22)}
[data-theme="dark"] .cell-g{background:rgba(52,232,165,.18);color:#84f2cc;border:1px solid rgba(52,232,165,.22)}
[data-theme="dark"] .cell-e{background:rgba(255,255,255,.02);border:1px solid rgba(255,255,255,.03)}
[data-theme="dark"] .cell-zero{background:rgba(239,68,104,.1);color:#ff8ca0;border:1px solid rgba(239,68,104,.12)}

/* Refined cell colors — LIGHT */
[data-theme="light"] .cell-r{background:rgba(224,61,94,.1);color:#c0304a;border:1px solid rgba(224,61,94,.15)}
[data-theme="light"] .cell-o{background:rgba(224,120,48,.1);color:#b05818;border:1px solid rgba(224,120,48,.15)}
[data-theme="light"] .cell-b{background:rgba(46,168,216,.1);color:#1878a8;border:1px solid rgba(46,168,216,.15)}
[data-theme="light"] .cell-g{background:rgba(29,184,122,.1);color:#107a4c;border:1px solid rgba(29,184,122,.15)}
[data-theme="light"] .cell-e{background:rgba(0,0,0,.02);border:1px solid rgba(0,0,0,.04)}
[data-theme="light"] .cell-zero{background:rgba(224,61,94,.06);color:#a82040;border:1px solid rgba(224,61,94,.1)}

/* Decade label cells */
.cell-dec{
    border-radius:10px!important;
    font-weight:700!important;
    letter-spacing:.3px!important;
}
/* ===== FINANCE TOTALS BAR ===== */
.fin-totals{
    padding:0 24px 20px;
}
.fin-total-card{
    background:var(--glass-bg);
    backdrop-filter:blur(var(--glass-blur));
    -webkit-backdrop-filter:blur(var(--glass-blur));
    border:1px solid var(--glass-border);
    border-radius:16px;
    padding:18px 20px;
    box-shadow:var(--shadow-sm);
    transition:transform var(--dur-mid) var(--ease-spring),
               box-shadow var(--dur-mid) var(--ease-smooth),
               border-color var(--dur-fast);
}
.fin-total-card:hover{
    transform:translateY(-3px);
    box-shadow:var(--shadow-md);
    border-color:var(--brd-hover);
}
.fin-total-card:active{
    transform:translateY(-1px) scale(.99);
}
.ft-icon{
    border-radius:12px;
    box-shadow:var(--shadow-sm);
    transition:transform var(--dur-mid) var(--ease-spring);
}
.fin-total-card:hover .ft-icon{
    transform:scale(1.1) rotate(-3deg);
}
.ft-val{
    font-weight:800;
    letter-spacing:-.02em;
}
.ft-lbl{
    font-weight:700;
    letter-spacing:.8px;
    opacity:.55;
}

/* Accent left borders */
.ft-income{border-left:3px solid var(--blu)}
.ft-expense{border-left:3px solid var(--acc)}
.ft-profit{border-left:3px solid var(--grn)}

/* Entrance stagger */
.fin-totals .fin-total-card{
    animation:cardSlideIn var(--dur-slow) var(--ease-out) both;
}
.fin-totals .fin-total-card:nth-child(1){animation-delay:.08s}
.fin-totals .fin-total-card:nth-child(2){animation-delay:.14s}
.fin-totals .fin-total-card:nth-child(3){animation-delay:.2s}

/* ===== BOTTOM ACTION BUTTONS ===== */
.fin-bottom{
    padding:4px 24px 24px;
}
.btn-stats{
    background:var(--glass-bg);
    backdrop-filter:blur(var(--glass-blur));
    -webkit-backdrop-filter:blur(var(--glass-blur));
    border:1px solid var(--glass-border);
    border-radius:12px;
    color:var(--t1);
    font-weight:600;
    font-size:.82rem;
    padding:12px 20px;
    cursor:pointer;
    box-shadow:var(--shadow-sm);
    transition:transform var(--dur-mid) var(--ease-spring),
               box-shadow var(--dur-mid) var(--ease-smooth),
               border-color var(--dur-fast),
               background var(--dur-fast);
    position:relative;
    overflow:hidden;
}
.btn-stats::after{
    content:'';
    position:absolute;
    inset:0;
    background:linear-gradient(135deg,rgba(239,68,104,.04),rgba(92,200,240,.04));
    opacity:0;
    transition:opacity var(--dur-mid);
    pointer-events:none;
    border-radius:12px;
}
.btn-stats:hover{
    transform:translateY(-2px);
    box-shadow:var(--shadow-md);
    border-color:var(--brd-accent);
}
.btn-stats:hover::after{
    opacity:1;
}
.btn-stats:active{
    transform:translateY(0) scale(.97);
    box-shadow:var(--shadow-sm);
}

/* ===== MODALS — GLASS STYLE ===== */
.overlay{
    background:rgba(0,0,0,.5);
    backdrop-filter:blur(6px);
    -webkit-backdrop-filter:blur(6px);
}
.overlay.open{
    animation:overlayIn var(--dur-mid) var(--ease-smooth);
}
@keyframes overlayIn{
    from{opacity:0;backdrop-filter:blur(0);-webkit-backdrop-filter:blur(0)}
    to{opacity:1;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
}

.modal{
    background:var(--bg1);
    border:1px solid var(--glass-border);
    border-radius:20px;
    box-shadow:var(--shadow-lg);
    overflow:hidden;
}
.overlay.open .modal{
    animation:modalIn .35s var(--ease-spring);
}
@keyframes modalIn{
    from{opacity:0;transform:translateY(24px) scale(.97)}
    to{opacity:1;transform:translateY(0) scale(1)}
}

.modal-head{
    border-bottom:1px solid var(--brd);
    padding:20px 24px;
    background:var(--glass-bg);
    backdrop-filter:blur(10px);
    -webkit-backdrop-filter:blur(10px);
}
.modal-head h3{
    font-weight:800;
    letter-spacing:-.01em;
    font-size:1.05rem;
}
.close-btn{
    border-radius:10px;
    border:1px solid var(--brd);
    background:var(--bg3);
    transition:all var(--dur-mid) var(--ease-spring);
}
.close-btn:hover{
    background:var(--acc);
    color:#fff;
    border-color:var(--acc);
    transform:rotate(90deg) scale(1.05);
}

/* ===== DAY DETAIL MODAL ===== */
.day-card{
    background:var(--glass-bg);
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
    border:1px solid var(--glass-border);
    border-radius:14px;
    padding:16px 18px;
    transition:border-color var(--dur-fast),
               box-shadow var(--dur-mid),
               transform var(--dur-mid) var(--ease-spring);
}
.day-card:hover{
    border-color:var(--brd-accent);
    box-shadow:var(--shadow-sm);
    transform:translateX(3px);
}
.day-card-name{
    font-weight:700;
    letter-spacing:-.01em;
}
.day-card-amount{
    font-weight:800;
    letter-spacing:-.02em;
}
.day-card-badge{
    font-weight:800;
    border-radius:6px;
    letter-spacing:.3px;
}
.day-total-bar{
    border-radius:14px;
    padding:16px 20px;
    animation:totalPulse 3s ease infinite;
}
@keyframes totalPulse{
    0%,100%{opacity:1}
    50%{opacity:.88}
}

/* ===== EXPENSE CARDS ===== */
.exp-card{
    background:var(--glass-bg);
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
    border:1px solid var(--glass-border);
    border-radius:14px;
    padding:16px 18px;
    box-shadow:var(--shadow-sm);
    transition:transform var(--dur-mid) var(--ease-spring),
               box-shadow var(--dur-mid),
               border-color var(--dur-fast);
}
.exp-card:hover{
    transform:translateY(-2px);
    box-shadow:var(--shadow-md);
    border-color:var(--brd-hover);
}

/* ===== EXPENSE DONUT CARD ===== */
.exp-donut-card{
    background:var(--glass-bg);
    backdrop-filter:blur(var(--glass-blur));
    -webkit-backdrop-filter:blur(var(--glass-blur));
    border:1px solid var(--glass-border);
    border-radius:18px;
    padding:28px;
    box-shadow:var(--shadow-sm);
}
.exp-leg-chip{
    background:var(--glass-bg);
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
    border:1px solid var(--glass-border);
    border-radius:12px;
    padding:12px 18px;
    transition:transform var(--dur-mid) var(--ease-spring),
               box-shadow var(--dur-mid),
               border-color var(--dur-fast);
}
.exp-leg-chip:hover{
    transform:translateY(-2px);
    box-shadow:var(--shadow-sm);
    border-color:var(--brd-hover);
}
.exp-leg-chip .exp-leg-dot{
    box-shadow:0 0 6px currentColor;
}

/* ===== PROMO CARDS ===== */
.promo-card{
    background:var(--glass-bg);
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
    border:1px solid var(--glass-border);
    border-radius:14px;
    box-shadow:var(--shadow-sm);
    transition:transform var(--dur-mid) var(--ease-spring),
               box-shadow var(--dur-mid);
}
.promo-card:hover{
    transform:translateY(-2px);
    box-shadow:var(--shadow-md);
}
.promo-card-roi{
    border-radius:8px;
    font-weight:800;
    letter-spacing:.3px;
}
.promo-bar-track{
    border-radius:4px;
    overflow:hidden;
}
.promo-bar-fill{
    border-radius:4px;
    transition:width .6s var(--ease-out);
}
.promo-total-item{
    background:var(--glass-bg);
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
    border:1px solid var(--glass-border);
    border-radius:12px;
    transition:transform var(--dur-mid) var(--ease-spring),
               box-shadow var(--dur-mid),
               border-color var(--dur-fast);
}
.promo-total-item:hover{
    transform:translateY(-2px);
    box-shadow:var(--shadow-sm);
    border-color:var(--brd-accent);
}

/* ===== PROMO MODAL NAV ===== */
.promo-nav-btn{
    border-radius:10px;
    border:1px solid var(--glass-border);
    background:var(--glass-bg);
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
    transition:all var(--dur-mid) var(--ease-spring);
}
.promo-nav-btn:hover{
    background:var(--acc);
    color:#fff;
    border-color:var(--acc);
    transform:scale(1.08);
    box-shadow:0 0 12px rgba(239,68,104,.3);
}
.promo-nav-btn:active{
    transform:scale(.95);
}

/* ===== SOURCE STATS ===== */
.src-leg-item{
    border-bottom:1px solid var(--brd);
    padding:10px 0;
    transition:padding-left var(--dur-mid) var(--ease-spring);
}
.src-leg-item:hover{
    padding-left:6px;
}
.src-leg-dot{
    box-shadow:0 0 8px currentColor;
    transition:transform var(--dur-mid) var(--ease-spring);
}
.src-leg-item:hover .src-leg-dot{
    transform:scale(1.3);
}

/* ===== YEAR STATS ===== */
.ys-month{
    background:var(--glass-bg);
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
    border:1px solid var(--glass-border);
    border-radius:12px;
    transition:transform var(--dur-mid) var(--ease-spring),
               box-shadow var(--dur-mid);
}
.ys-month:hover{
    transform:translateY(-2px);
    box-shadow:var(--shadow-sm);
}
.ys-bar{
    border-radius:5px 5px 0 0;
    transition:height .5s var(--ease-spring);
}
.ys-bar:hover{
    filter:brightness(1.2);
    transform:scaleX(1.08);
}
.ys-leg-dot{
    border-radius:4px;
    box-shadow:0 0 6px currentColor;
}
/* ===== CALC DISTRIBUTION ===== */
.calc-dist-table tbody tr{
    background:var(--glass-bg);
    backdrop-filter:blur(6px);
    -webkit-backdrop-filter:blur(6px);
    border-radius:10px;
    transition:transform var(--dur-mid) var(--ease-spring),
               box-shadow var(--dur-mid);
}
.calc-dist-table tbody tr:hover{
    transform:translateX(3px);
    box-shadow:var(--shadow-sm);
}
.calc-dist-add{
    border:1.5px dashed var(--brd);
    border-radius:10px;
    font-weight:700;
    padding:12px;
    transition:all var(--dur-mid) var(--ease-spring);
}
.calc-dist-add:hover{
    border-color:var(--acc);
    color:var(--acc);
    background:rgba(239,68,104,.04);
    transform:translateY(-1px);
}
.calc-dist-status{
    border-radius:10px;
    font-weight:800;
    letter-spacing:.3px;
}

/* ===== CLIENT CARDS ===== */
.client-card{
    background:var(--glass-bg);
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
    border:1px solid var(--glass-border);
    border-radius:14px;
    box-shadow:var(--shadow-sm);
    transition:transform var(--dur-mid) var(--ease-spring),
               box-shadow var(--dur-mid),
               border-color var(--dur-fast);
}
.client-card:hover{
    transform:translateY(-3px);
    box-shadow:var(--shadow-md);
    border-color:var(--brd-hover);
}

/* ===== ORDERS LIST ===== */
.order-card{
    background:var(--glass-bg);
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
    border:1px solid var(--glass-border);
    border-radius:14px;
    box-shadow:var(--shadow-sm);
    transition:transform var(--dur-mid) var(--ease-spring),
               box-shadow var(--dur-mid),
               border-color var(--dur-fast);
}
.order-card:hover{
    transform:translateY(-2px);
    box-shadow:var(--shadow-md);
    border-color:var(--brd-hover);
}

/* ===== FORM INPUTS ===== */
input[type="text"],
input[type="number"],
input[type="date"],
input[type="url"],
input[type="tel"],
input[type="email"],
input[type="password"],
textarea,
select{
    background:var(--bg2);
    border:1.5px solid var(--brd);
    border-radius:10px;
    color:var(--t1);
    padding:11px 14px;
    font-size:.88rem;
    font-weight:500;
    transition:border-color var(--dur-fast),
               box-shadow var(--dur-mid),
               background var(--dur-fast);
}
input:focus,
textarea:focus,
select:focus{
    border-color:var(--acc);
    box-shadow:0 0 0 3px rgba(239,68,104,.1);
    background:var(--bg1);
    outline:none;
}
input::placeholder,
textarea::placeholder{
    color:var(--t3);
    opacity:.6;
    font-weight:400;
}

/* ===== SELECT DROPDOWN ===== */
select{
    appearance:none;
    -webkit-appearance:none;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath d='M2 4l4 4 4-4' fill='none' stroke='%239090ae' stroke-width='1.5' stroke-linecap='round'/%3E%3C/svg%3E");
    background-repeat:no-repeat;
    background-position:right 12px center;
    padding-right:36px;
}

/* ===== NAV BAR / TABS ===== */
.tab,
.nav-item,
.nav-btn{
    border-radius:10px;
    font-weight:600;
    letter-spacing:.3px;
    transition:all var(--dur-mid) var(--ease-spring);
}
.tab:hover,
.nav-item:hover,
.nav-btn:hover{
    background:var(--bg3);
}
.tab.active,
.nav-item.active,
.nav-btn.active{
    background:linear-gradient(135deg,#7c3aed,#6366f1);
    color:#fff;
    box-shadow:0 4px 14px rgba(124,58,237,0.4);
}
/* ===== MONTH NAVIGATION ===== */
.fin-month-nav{
    padding:16px 24px 8px;
}
.fin-month-btn{
    border-radius:10px;
    border:1px solid var(--glass-border);
    background:var(--glass-bg);
    backdrop-filter:blur(8px);
    -webkit-backdrop-filter:blur(8px);
    transition:all var(--dur-mid) var(--ease-spring);
    box-shadow:var(--shadow-sm);
}
.fin-month-btn:hover{
    border-color:var(--acc);
    background:rgba(239,68,104,.06);
    transform:scale(1.06);
    box-shadow:0 0 10px rgba(239,68,104,.12);
}
.fin-month-btn:active{
    transform:scale(.95);
}

/* ===== FORECAST CARD SHIMMER ===== */
.forecast-card{
    position:relative;
    overflow:hidden;
}
.forecast-card::after{
    content:'';
    position:absolute;
    top:0;left:-100%;
    width:60%;height:100%;
    background:linear-gradient(90deg,transparent,rgba(255,255,255,.04),transparent);
    animation:shimmer 4s ease infinite;
    pointer-events:none;
}
[data-theme="light"] .forecast-card::after{
    background:linear-gradient(90deg,transparent,rgba(255,255,255,.15),transparent);
}
@keyframes shimmer{
    0%{left:-100%}
    40%,100%{left:200%}
}

/* ===== TOOLTIP / STATUS BADGES ===== */
.badge,.status-badge,.tag{
    border-radius:8px;
    font-weight:700;
    letter-spacing:.3px;
    padding:3px 10px;
    font-size:.7rem;
}

/* ===== EMPTY STATES ===== */
.day-empty,.empty-state{
    opacity:.7;
    font-weight:500;
    letter-spacing:.01em;
}

/* ===== NUMBER COUNTERS — TABULAR FIGURES ===== */
.sum-val,.ft-val,.day-card-amount,.day-total-sum,
.cell-r,.cell-o,.cell-b,.cell-g,.cell-zero,.cell-tot,
.ys-val,.promo-total-val{
    font-variant-numeric:tabular-nums;
    font-feature-settings:'tnum';
}

/* ===== SELECTION COLOR ===== */
::selection{
    background:rgba(239,68,104,.25);
    color:var(--t1);
}
[data-theme="light"] ::selection{
    background:rgba(224,61,94,.2);
}

/* ===== FOCUS-VISIBLE FOR ACCESSIBILITY ===== */
*:focus-visible{
    outline:2px solid var(--acc);
    outline-offset:2px;
    border-radius:8px;
}
input:focus-visible,
textarea:focus-visible,
select:focus-visible{
    outline:none;
}

/* ===== PAGE ENTER ANIMATION ===== */
.page.active{
    animation:pageIn .3s var(--ease-out) both;
}
@keyframes pageIn{
    from{opacity:0;transform:translateY(8px)}
    to{opacity:1;transform:translateY(0)}
}

/* ===== DARK — EXTRA DEPTH ===== */
[data-theme="dark"] .sum-card,
[data-theme="dark"] .fin-total-card,
[data-theme="dark"] .day-card,
[data-theme="dark"] .exp-card,
[data-theme="dark"] .promo-card,
[data-theme="dark"] .client-card,
[data-theme="dark"] .order-card,
[data-theme="dark"] .btn-stats{
    box-shadow:var(--shadow-sm),
               inset 0 1px 0 rgba(255,255,255,.03);
}
[data-theme="dark"] .sum-card:hover,
[data-theme="dark"] .fin-total-card:hover,
[data-theme="dark"] .day-card:hover,
[data-theme="dark"] .exp-card:hover,
[data-theme="dark"] .promo-card:hover,
[data-theme="dark"] .client-card:hover,
[data-theme="dark"] .order-card:hover{
    box-shadow:var(--shadow-md),
               inset 0 1px 0 rgba(255,255,255,.05);
}

/* ===== LIGHT — CRISP SHADOWS ===== */
[data-theme="light"] .sum-card,
[data-theme="light"] .fin-total-card,
[data-theme="light"] .day-card,
[data-theme="light"] .exp-card,
[data-theme="light"] .promo-card,
[data-theme="light"] .client-card,
[data-theme="light"] .order-card,
[data-theme="light"] .btn-stats{
    box-shadow:0 1px 3px rgba(0,0,0,.04),
               0 4px 12px rgba(0,0,0,.03);
}
[data-theme="light"] .sum-card:hover,
[data-theme="light"] .fin-total-card:hover,
[data-theme="light"] .exp-card:hover,
[data-theme="light"] .promo-card:hover,
[data-theme="light"] .client-card:hover,
[data-theme="light"] .order-card:hover{
    box-shadow:0 2px 6px rgba(0,0,0,.05),
               0 8px 24px rgba(0,0,0,.05);
}

/* ===== LIGHT — GLASS TINTING ===== */
[data-theme="light"] .modal{
    background:rgba(255,255,255,.92);
    backdrop-filter:blur(20px);
    -webkit-backdrop-filter:blur(20px);
}
[data-theme="light"] .modal-head{
    background:rgba(248,248,252,.8);
}
[data-theme="light"] .overlay{
    background:rgba(26,26,46,.3);
}

/* ===== RESPONSIVE POLISH ===== */
@media(max-width:768px){
    .sum-card{border-radius:14px;padding:14px 14px}
    .fin-total-card{border-radius:14px;padding:14px 16px}
    .modal{border-radius:16px}
    .btn-stats{border-radius:10px;padding:10px 16px;font-size:.8rem}
    .day-card{border-radius:12px;padding:12px 14px}
    .exp-donut-card{border-radius:14px;padding:20px}
}
@media(max-width:480px){
    .sum-card{border-radius:12px;padding:12px}
    .fin-total-card{border-radius:12px}
    .modal{border-radius:14px;margin:8px}
    .day-card{border-radius:10px}
}

/* ===== REDUCED MOTION ===== */
@media(prefers-reduced-motion:reduce){
    *,*::before,*::after{
        animation-duration:.01ms!important;
        animation-iteration-count:1!important;
        transition-duration:.01ms!important;
    }
    .forecast-card::after{animation:none!important}
}
/* ===== FIX: spacer row between decades — no hover, no animation ===== */
.fin-table tr td[colspan]{
    transform:none!important;
    box-shadow:none!important;
    transition:none!important;
    pointer-events:none;
    overflow:hidden;
}

/* ===== FIX: "Доход" label cells — no hover effect ===== */
.fin-table td.cell-dec{
    transform:none!important;
    box-shadow:none!important;
    cursor:default!important;
    pointer-events:none;
}

/* ===== FIX: "Итого" total cells — no hover effect ===== */
.fin-table td.cell-tot,
.fin-table td.no-hover{
    transform:none!important;
    box-shadow:none!important;
    cursor:default!important;
}

/* ===== FIX: empty cells — no hover ===== */
.fin-table td.cell-e{
    transform:none!important;
    box-shadow:none!important;
    cursor:default!important;
    pointer-events:none;
}

/* ===== FIX: prevent horizontal scrollbar from table overflow ===== */
#finTableWrap{
    overflow-x:hidden;
}/* ===== FIX: remove glow from dots/squares in modals ===== */
.exp-leg-dot,
.src-leg-dot,
.ys-leg-dot,
.day-card-badge,
.promo-card-roi,
.calc-dist-status{
    box-shadow:none!important;
}
/* ===== FIX: disable browser autocomplete dropdown ===== */
input,textarea,select{
    autocomplete:off;
}
/* ===== FIX: prevent search field ghost input ===== */
#orderSearch{
    -webkit-text-security:none;
}
/* ===== FIX: search input width inside form wrapper ===== */
.archive-search form{
    display:contents;
}
.archive-search input[type="text"]{
    width:100%;
    min-width:0;
    box-sizing:border-box;
}
/* ===== SETTINGS: visual separation of blocks ===== */
#sttGeneral .theme-toggle-wrap{
    padding-bottom:20px;
    margin-bottom:20px;
    border-bottom:1px solid var(--brd);
}

#sttGeneral .stt-legend{
    margin-bottom:8px;
}

#sttGeneral .stt-legend + div{
    padding-bottom:20px;
    margin-bottom:20px;
    border-bottom:1px solid var(--brd);
}

/* ===== SETTINGS: blocks separation ===== */
.stt-block{
    padding:20px 0;
    border-bottom:1px solid var(--brd);
}
.stt-block:first-child{
    padding-top:8px;
}
.stt-block:last-child{
    border-bottom:none;
    padding-bottom:8px;
}
/* ===== FIX: password fields styling ===== */
input[type="password"]{
    display:block;
    width:100%;
    box-sizing:border-box;
    background:var(--bg2);
    border:1.5px solid var(--brd);
    border-radius:10px;
    color:var(--t1);
    padding:11px 14px;
    font-family:'Inter',system-ui,sans-serif;
    font-size:.88rem;
    font-weight:500;
}
input[type="password"]:focus{
    border-color:var(--acc);
    box-shadow:0 0 0 3px rgba(239,68,104,.1);
    background:var(--bg1);
    outline:none;
}
input[type="password"]::placeholder{
    color:var(--t3);
    opacity:.6;
    font-weight:400;
}

/* ===== FIX: settings password tab spacing ===== */
#sttPassword .fg{
    margin-bottom:16px;
}
#sttPassword .fg label{
    display:block;
    margin-bottom:6px;
}
#sttPassword .f-act{
    margin-top:20px;
    padding-top:16px;
    border-top:1px solid var(--brd);
}
#sttPassword #cpError{
    margin-top:8px;
    margin-bottom:0;
}
/* ===== SETTINGS: block titles & descriptions ===== */
.stt-block-title{
    font-size:.9rem;
    font-weight:700;
    color:var(--t1);
    margin-bottom:8px;
}
.stt-block-desc{
    font-size:.82rem;
    color:var(--t2);
    line-height:1.5;
    margin-bottom:14px;
}

/* ===== SETTINGS: password fields ===== */
input[type="password"]{
    display:block;
    width:100%;
    box-sizing:border-box;
    background:var(--bg2);
    border:1.5px solid var(--brd);
    border-radius:10px;
    color:var(--t1);
    padding:11px 14px;
    font-family:'Inter',system-ui,sans-serif;
    font-size:.88rem;
    font-weight:500;
    transition:border-color var(--dur-fast),
               box-shadow var(--dur-mid),
               background var(--dur-fast);
}
input[type="password"]:focus{
    border-color:var(--acc);
    box-shadow:0 0 0 3px rgba(239,68,104,.1);
    background:var(--bg1);
    outline:none;
}
input[type="password"]::placeholder{
    color:var(--t3);
    opacity:.6;
    font-weight:400;
}

/* ===== SETTINGS: custom file upload button ===== */
.file-upload-btn{
    display:inline-flex;
    align-items:center;
    gap:8px;
    padding:11px 22px;
    background:var(--bg3);
    border:1.5px solid var(--brd);
    border-radius:10px;
    color:var(--t1);
    font-size:.85rem;
    font-weight:600;
    cursor:pointer;
    transition:all var(--dur-mid) var(--ease-spring);
}
.file-upload-btn:hover{
    border-color:var(--acc);
    background:var(--bg3h);
    transform:translateY(-1px);
    box-shadow:var(--shadow-sm);
}
.file-upload-btn:active{
    transform:translateY(0) scale(.98);
}
.file-upload-btn input[type="file"]{
    position:absolute;
    width:1px;
    height:1px;
    opacity:0;
    overflow:hidden;
    clip:rect(0,0,0,0);
    pointer-events:none;
}
.file-upload-name{
    margin-top:10px;
    font-size:.8rem;
    color:var(--t2);
    min-height:1.2em;
}

/* ===== SETTINGS: password tab spacing ===== */
#sttPassword .fg{
    margin-bottom:14px;
}
#sttPassword .fg label{
    display:block;
    margin-bottom:6px;
}
#sttPassword #cpError{
    margin-top:4px;
    margin-bottom:0;
    border-radius:8px;
    padding:8px 12px;
    background:rgba(233,69,96,.08);
    border:1px solid rgba(233,69,96,.15);
}

/* ===== SETTINGS: backup tab spacing ===== */
#sttBackup .stt-block{
    text-align:left;
}
#sttBackup .btn-s{
    width:100%;
}
/* ===== SETTINGS: password block title spacing ===== */
#sttPassword .stt-block-title{
    margin-bottom:18px;
    padding-bottom:14px;
    border-bottom:1px solid var(--brd);
}
.header{
    height: 62px;
    min-height: 62px;
    max-height: 62px;
    overflow: visible;
}
}
.header img {
    width: 110px !important;
    height: 30px !important;
    flex-shrink: 0 !important;
    display: block !important;
    max-height: none !important;
}