*{margin:0;padding:0;box-sizing:border-box}

/* ============================================
   DARK THEME (default)
   ============================================ */
:root{
    --bg1:#0b0b14;
    --bg2:#131320;
    --bg3:#1a1a2e;
    --bg3h:#222240;
    --acc:#e94560;
    --acc2:#ff6b81;
    --grn:#2ee8a5;
    --ylw:#ffd166;
    --org:#ff8c61;
    --blu:#56ccf2;
    --t1:#f0f2ff;
    --t2:#9ba3bf;
    --t3:#6b7280;
    --brd:#252547;
    --rad:10px;
    --safe-bottom:env(safe-area-inset-bottom,0px)
}

/* ============================================
   LIGHT THEME
   ============================================ */
[data-theme="light"]{
    --bg1:#e8eaef;--bg2:#f5f6f8;--bg3:#ffffff;--bg3h:#edeef2;
    --acc:#d6364d;--acc2:#e8556b;--grn:#15946a;--ylw:#b8911e;
    --org:#c75c30;--blu:#2b82b5;--t1:#1a1a2e;--t2:#3d4155;
    --t3:#6b7080;--brd:#c8cbd5;--rad:10px;
}
[data-theme="light"] body{background:var(--bg1);color:var(--t1)}
[data-theme="light"] ::-webkit-scrollbar-thumb{background:#b5b9c5}
[data-theme="light"] .auth-overlay{background:var(--bg1)}
[data-theme="light"] .auth-card{background:var(--bg3);border-color:var(--brd);box-shadow:0 12px 40px rgba(0,0,0,.1)}
[data-theme="light"] .auth-input{background:var(--bg1);border-color:var(--brd);color:var(--t1)}
[data-theme="light"] .header{background:var(--bg3);border-bottom-color:var(--brd);box-shadow:0 1px 4px rgba(0,0,0,.06)}
[data-theme="light"] .nav{background:var(--bg1)}
[data-theme="light"] .nav-btn{color:var(--t2)}
[data-theme="light"] .nav-btn:hover{color:var(--t1);background:rgba(0,0,0,.04)}
[data-theme="light"] .nav-btn.active{color:#fff;background:var(--acc)}
[data-theme="light"] .btn-logout{border-color:var(--brd);color:var(--t3)}
[data-theme="light"] .btn-logout:hover{background:var(--acc);border-color:var(--acc);color:#fff}
[data-theme="light"] .btn-mn{background:var(--bg1);border-color:var(--brd);color:var(--t1)}
[data-theme="light"] .btn-mn:hover{background:var(--acc);border-color:var(--acc);color:#fff}
[data-theme="light"] .overlay{background:rgba(0,0,0,.3);backdrop-filter:blur(4px)}
[data-theme="light"] .modal{background:var(--bg3);border-color:var(--brd);box-shadow:0 16px 48px rgba(0,0,0,.12)}
[data-theme="light"] .m-head{background:var(--bg3);border-bottom-color:var(--brd)}
[data-theme="light"] .confirm-cancel{background:var(--bg1);border-color:var(--brd);color:var(--t2)}
[data-theme="light"] .confirm-cancel:hover{background:var(--bg3h);color:var(--t1)}
[data-theme="light"] .fg input,[data-theme="light"] .fg select{background:var(--bg1);border-color:var(--brd);color:var(--t1)}
[data-theme="light"] .fg label{color:var(--t3)}
[data-theme="light"] .pay-date,[data-theme="light"] .pay-amount{background:var(--bg1);border-color:var(--brd);color:var(--t1)}
[data-theme="light"] .pay-add{border-color:var(--brd);color:var(--t3)}
[data-theme="light"] .pay-add:hover{border-color:var(--acc);color:var(--acc)}
[data-theme="light"] .pay-del{border-color:rgba(214,54,77,.2);color:var(--acc)}
[data-theme="light"] .client-dropdown{background:var(--bg3);border-color:var(--brd);box-shadow:0 8px 24px rgba(0,0,0,.1)}
[data-theme="light"] .client-opt:hover{background:var(--bg1)}
[data-theme="light"] .board{background:var(--bg1)}
[data-theme="light"] .col-icon{background:var(--bg3)}
[data-theme="light"] .col-count{background:var(--bg3);border-color:var(--brd);color:var(--t2)}
[data-theme="light"] .cards.drag-over{background:rgba(214,54,77,.06);outline-color:rgba(214,54,77,.25)}
[data-theme="light"] .card{background:var(--bg3);border-color:var(--brd)}
[data-theme="light"] .card:hover{background:var(--bg3h);border-color:#b0b4c0;box-shadow:0 4px 16px rgba(0,0,0,.08)}
[data-theme="light"] .card-title{color:var(--t1)}
[data-theme="light"] .card-client{color:var(--t2)}
[data-theme="light"] .card-price{color:var(--t1)}
[data-theme="light"] .card-bar{background:var(--brd)}
[data-theme="light"] .card-dl{color:var(--t2)}
[data-theme="light"] .card-delegate{color:var(--blu);border-top-color:var(--brd)}
[data-theme="light"] .sidebar{background:var(--bg2);border-left-color:var(--brd)}
[data-theme="light"] .ring-legend{background:var(--bg1);border-color:var(--brd)}
[data-theme="light"] .mini-stat{background:var(--bg3);border-color:var(--brd)}
[data-theme="light"] .sum-card{background:var(--bg3);border-color:var(--brd)}
[data-theme="light"] .sum-icon{background:var(--bg1);border-color:var(--brd)}
[data-theme="light"] .fin-table th{background:#d5d8e0;color:#3d4155;border-color:#c0c4d0}
[data-theme="light"] .fin-table td{border-color:#d0d3dc}
[data-theme="light"] .cell-dec{background:#dce0e8!important;color:#2a2d3e!important;border-color:#c5c9d4!important;font-weight:700}
[data-theme="light"] .cell-tot{background:#cfd3dd!important;color:#1a1a2e!important;border-color:#b8bcc8!important;font-weight:700}
[data-theme="light"] .row-total td{background:#c8ccd8!important;border-top:2px solid var(--acc)!important;color:#1a1a2e!important;font-weight:800}
[data-theme="light"] .cell-r{background:rgba(214,54,77,.18);color:#a1213a;border-color:rgba(214,54,77,.3);font-weight:600}
[data-theme="light"] .cell-o{background:rgba(199,92,48,.18);color:#8e4420;border-color:rgba(199,92,48,.3);font-weight:600}
[data-theme="light"] .cell-b{background:rgba(43,130,181,.18);color:#185e82;border-color:rgba(43,130,181,.3);font-weight:600}
[data-theme="light"] .cell-g{background:rgba(21,148,106,.18);color:#0c6644;border-color:rgba(21,148,106,.3);font-weight:600}
[data-theme="light"] .cell-zero{background:rgba(214,54,77,.1);color:#b22e44;border-color:rgba(214,54,77,.15)}
[data-theme="light"] .cell-e{background:#eef0f4;color:#9a9eb0;border-color:#dfe1e8}
[data-theme="light"] .fin-total-card{background:var(--bg3);border-color:var(--brd)}
[data-theme="light"] .ft-icon{background:var(--bg1);border-color:var(--brd)}
[data-theme="light"] .btn-stats{background:var(--bg3);border-color:var(--brd);color:var(--t2)}
[data-theme="light"] .btn-stats:hover{background:var(--acc);color:#fff;border-color:var(--acc)}
[data-theme="light"] .fc-red::before{background:rgba(214,54,77,.18);border-color:rgba(214,54,77,.3)}
[data-theme="light"] .fc-red .sum-val,[data-theme="light"] .fc-red .mini-val{color:#a1213a!important}
[data-theme="light"] .fc-red .sum-lbl,[data-theme="light"] .fc-red .mini-lbl{color:#b82e44!important}
[data-theme="light"] .fc-red .sum-icon{color:#a1213a!important}

[data-theme="light"] .fc-orange::before{background:rgba(199,92,48,.18);border-color:rgba(199,92,48,.3)}
[data-theme="light"] .fc-orange .sum-val,[data-theme="light"] .fc-orange .mini-val{color:#8e4420!important}
[data-theme="light"] .fc-orange .sum-lbl,[data-theme="light"] .fc-orange .mini-lbl{color:#a14e28!important}
[data-theme="light"] .fc-orange .sum-icon{color:#8e4420!important}

[data-theme="light"] .fc-blue::before{background:rgba(43,130,181,.18);border-color:rgba(43,130,181,.3)}
[data-theme="light"] .fc-blue .sum-val,[data-theme="light"] .fc-blue .mini-val{color:#185e82!important}
[data-theme="light"] .fc-blue .sum-lbl,[data-theme="light"] .fc-blue .mini-lbl{color:#1a6e9a!important}
[data-theme="light"] .fc-blue .sum-icon{color:#185e82!important}

[data-theme="light"] .fc-green::before{background:rgba(21,148,106,.18);border-color:rgba(21,148,106,.3)}
[data-theme="light"] .fc-green .sum-val,[data-theme="light"] .fc-green .mini-val{color:#0c6644!important}
[data-theme="light"] .fc-green .sum-lbl,[data-theme="light"] .fc-green .mini-lbl{color:#0a7a50!important}
[data-theme="light"] .fc-green .sum-icon{color:#0c6644!important}
[data-theme="light"] .st-progress{background:rgba(43,130,181,.1);color:#1f6d96}
[data-theme="light"] .st-delegated{background:rgba(184,145,30,.1);color:#8a6e14}
[data-theme="light"] .st-payment{background:rgba(199,92,48,.1);color:#a14e28}
[data-theme="light"] .st-done{background:rgba(21,148,106,.1);color:#107a54}
[data-theme="light"] .p-full{background:rgba(21,148,106,.1);color:#107a54}
[data-theme="light"] .p-part{background:rgba(184,145,30,.1);color:#8a6e14}
[data-theme="light"] .p-none{background:rgba(199,92,48,.1);color:#a14e28}
[data-theme="light"] .arch-table th{background:#d5d8e0;color:#3d4155;border-color:#c0c4d0}
[data-theme="light"] .arch-table td{background:var(--bg3);color:var(--t1);border-color:#d0d3dc}
[data-theme="light"] .arch-table tr:hover td{background:var(--bg3h)}
[data-theme="light"] .archive-search input{background:var(--bg3);border-color:var(--brd);color:var(--t1)}
[data-theme="light"] .client-card{background:var(--bg3);border-color:var(--brd)}
[data-theme="light"] .client-card:hover{border-color:var(--acc);box-shadow:0 4px 16px rgba(0,0,0,.06)}
[data-theme="light"] .cc-contact{color:var(--t3)}
[data-theme="light"] .co-item{border-bottom-color:var(--brd)}
[data-theme="light"] .exp-donut-card{background:var(--bg3);border-color:var(--brd)}
[data-theme="light"] .exp-donut-svg{filter:drop-shadow(0 0 8px rgba(0,0,0,.04))}
[data-theme="light"] .exp-donut-total{color:var(--t1)}
[data-theme="light"] .exp-leg-item{background:var(--bg1);border-color:var(--brd)}
[data-theme="light"] .exp-leg-item:hover{background:var(--bg3h)}
[data-theme="light"] .exp-leg-name{color:var(--t1)}
[data-theme="light"] .exp-card{background:var(--bg3);border-color:var(--brd)}
[data-theme="light"] .exp-card:hover{background:var(--bg3h)}
[data-theme="light"] .day-item{background:var(--bg1)}
[data-theme="light"] .day-total-bar{background:linear-gradient(135deg,rgba(21,148,106,.06),rgba(43,130,181,.06));border-color:rgba(21,148,106,.12)}
[data-theme="light"] .day-table td{background:var(--bg1)}
[data-theme="light"] .ys-month{background:var(--bg3);border-color:var(--brd)}
[data-theme="light"] .toast{background:var(--bg3);color:var(--t1);box-shadow:0 4px 20px rgba(0,0,0,.1)}
[data-theme="light"] .mob-nav{background:var(--bg3);border-top-color:var(--brd);box-shadow:0 -2px 12px rgba(0,0,0,.04)}
[data-theme="light"] .mob-nav-btn{color:var(--t3)}
[data-theme="light"] .mob-nav-btn.active{color:var(--acc)}
[data-theme="light"] .fab{box-shadow:0 6px 20px rgba(214,54,77,.25)}
[data-theme="light"] .stt-tabs{background:var(--bg1)}
[data-theme="light"] .stt-tab{color:var(--t2)}
[data-theme="light"] .stt-tab:hover{color:var(--t1);background:rgba(0,0,0,.04)}
[data-theme="light"] .stt-legend{background:var(--bg1);border-color:var(--brd)}
[data-theme="light"] .stt-dot{box-shadow:0 0 6px rgba(0,0,0,.1)}
[data-theme="light"] .btn-edit{background:var(--bg1);border-color:var(--brd);color:var(--t2)}
[data-theme="light"] .btn-del-sm{background:var(--bg1);border-color:var(--brd);color:var(--t2)}
[data-theme="light"] .fm-row-today{background:rgba(214,54,77,.05)!important}
[data-theme="light"] .today-bar-track{background:var(--brd)}
/* ============================================
   BASE STYLES
   ============================================ */
body{font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,sans-serif;background:var(--bg1);color:var(--t1);min-height:100vh;-webkit-font-smoothing:antialiased;overflow-x:hidden}

.auth-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background:var(--bg1);z-index:9999;display:flex;justify-content:center;align-items:center}
.auth-card{background:var(--bg2);border:1px solid var(--brd);border-radius:16px;padding:40px;text-align:center;max-width:360px;width:90%;box-shadow:0 24px 64px rgba(0,0,0,.5)}
.auth-icon{font-size:3rem;margin-bottom:16px}
.auth-title{font-size:1.3rem;font-weight:700;margin-bottom:6px;color:var(--t1)}
.auth-hint{font-size:.82rem;color:var(--t3);margin-bottom:24px}
.auth-input{width:100%;padding:12px 16px;border-radius:8px;border:1px solid var(--brd);background:var(--bg1);color:var(--t1);font-size:1rem;outline:none;text-align:center;letter-spacing:2px;margin-bottom:12px}
.auth-input:focus{border-color:var(--acc);box-shadow:0 0 0 3px rgba(233,69,96,.15)}
.auth-error{color:var(--acc);font-size:.82rem;font-weight:600;margin-bottom:12px}
.auth-btn{width:100%;padding:12px;border-radius:8px;background:var(--acc);color:#fff;border:none;font-size:.95rem;font-weight:700;cursor:pointer;transition:.15s}
.auth-btn:hover{background:var(--acc2)}

.header{display:grid;grid-template-columns:200px 1fr 200px;align-items:center;padding:12px 24px;background:var(--bg2);border-bottom:1px solid var(--brd);position:sticky;top:0;z-index:100;height:58px}
.header h1{font-size:1.1rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nav{display:flex;gap:2px;background:var(--bg1);padding:3px;border-radius:8px;justify-content:center;width:fit-content;margin:0 auto}
.nav-btn{background:none;border:none;color:var(--t2);padding:7px 14px;border-radius:6px;font-size:.78rem;font-weight:600;cursor:pointer;transition:.15s;white-space:nowrap;-webkit-tap-highlight-color:transparent}
.nav-btn:hover{color:var(--t1);background:rgba(255,255,255,.05)}
.nav-btn.active{color:#fff;background:var(--acc);box-shadow:0 2px 8px rgba(233,69,96,.3)}
.hdr-right{display:flex;align-items:center;gap:8px;justify-content:flex-end;flex-shrink:0;overflow:visible;z-index:101}
.btn-add{background:var(--acc);color:#fff;border:none;padding:8px 18px;border-radius:8px;font-size:.82rem;font-weight:600;cursor:pointer;transition:.15s;white-space:nowrap;-webkit-tap-highlight-color:transparent}
.btn-add:hover{background:var(--acc2)}
.btn-logout{background:none;border:1px solid var(--brd);color:var(--t3);width:34px;height:34px;border-radius:7px;cursor:pointer;font-size:1rem;display:flex;align-items:center;justify-content:center;transition:.15s;-webkit-tap-highlight-color:transparent}
.btn-logout:hover{background:var(--acc);border-color:var(--acc);color:#fff}
.btn-mn{background:var(--bg1);border:1px solid var(--brd);color:var(--t1);width:34px;height:34px;border-radius:7px;cursor:pointer;font-size:.85rem;display:flex;align-items:center;justify-content:center;transition:.15s;-webkit-tap-highlight-color:transparent;flex-shrink:0}
.btn-mn:hover{background:var(--acc);border-color:var(--acc)}
.cur-month{font-size:.9rem;font-weight:700;padding:0 10px;white-space:nowrap}

.page{display:none;padding:0}.page.active{display:block}

.overlay{display:none;position:fixed;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.75);backdrop-filter:blur(6px);z-index:1000;justify-content:center;align-items:center;padding:20px}
.overlay.open{display:flex}
.modal{background:var(--bg2);border-radius:14px;width:100%;max-width:500px;border:1px solid var(--brd);box-shadow:0 24px 64px rgba(0,0,0,.5);max-height:90vh;overflow-y:auto}
.modal-wide{max-width:95vw;width:1200px}
.modal-year{max-width:96vw;width:96vw;max-height:94vh}
.modal-confirm{max-width:380px;padding:32px;text-align:center;overflow:visible}
.confirm-icon{font-size:2.5rem;margin-bottom:16px}
.confirm-title{font-size:1.1rem;font-weight:700;margin-bottom:8px;color:var(--t1)}
.confirm-text{font-size:.82rem;color:var(--t3);margin-bottom:24px;line-height:1.5}
.confirm-btns{display:flex;gap:10px;justify-content:center}
.confirm-cancel{background:var(--bg3);border:1px solid var(--brd);color:var(--t2);padding:10px 28px;border-radius:8px;font-size:.85rem;font-weight:600;cursor:pointer;transition:.15s}
.confirm-cancel:hover{background:var(--bg3h);color:var(--t1)}
.confirm-ok{background:var(--acc);border:none;color:#fff;padding:10px 28px;border-radius:8px;font-size:.85rem;font-weight:700;cursor:pointer;transition:.15s}
.confirm-ok:hover{background:var(--acc2)}

.m-head{display:flex;justify-content:space-between;align-items:center;padding:18px 22px;border-bottom:1px solid var(--brd);position:sticky;top:0;background:var(--bg2);border-radius:14px 14px 0 0;z-index:1}
.m-head h2{font-size:1rem;font-weight:700}
.m-close{background:none;border:none;color:var(--t3);font-size:1.2rem;cursor:pointer;padding:4px 8px;border-radius:6px;transition:.15s;-webkit-tap-highlight-color:transparent}
.m-close:hover{background:var(--brd);color:var(--t1)}
.m-body{padding:22px}
.fg{margin-bottom:14px}
.fg label{display:block;font-size:.72rem;font-weight:700;color:var(--t3);margin-bottom:5px;text-transform:uppercase;letter-spacing:.8px}
.fg input,.fg select{width:100%;padding:9px 13px;border-radius:7px;border:1px solid var(--brd);background:var(--bg1);color:var(--t1);font-size:.85rem;outline:none;transition:.15s}
.fg input:focus,.fg select:focus{border-color:var(--acc);box-shadow:0 0 0 3px rgba(233,69,96,.1)}
.fr{display:flex;gap:10px}.fr .fg{flex:1}
.f-act{display:flex;justify-content:space-between;gap:10px;margin-top:6px}
.btn-s{flex:1;background:var(--acc);color:#fff;border:none;padding:11px 22px;border-radius:8px;font-size:.85rem;font-weight:700;cursor:pointer;transition:.15s;-webkit-tap-highlight-color:transparent}
.btn-s:hover{background:var(--acc2)}
.btn-d{background:none;border:1px solid rgba(233,69,96,.3);color:var(--acc);padding:11px 18px;border-radius:8px;font-size:.85rem;font-weight:600;cursor:pointer;transition:.15s;-webkit-tap-highlight-color:transparent}
.btn-d:hover{background:var(--acc);color:#fff}

.pay-row{display:flex;gap:6px;margin-bottom:6px;align-items:center}
.pay-date{flex:1;padding:7px 9px;border-radius:6px;border:1px solid var(--brd);background:var(--bg1);color:var(--t1);font-size:.82rem;outline:none}
.pay-amount{width:110px;padding:7px 9px;border-radius:6px;border:1px solid var(--brd);background:var(--bg1);color:var(--t1);font-size:.82rem;outline:none}
.pay-date:focus,.pay-amount:focus{border-color:var(--acc)}
.pay-del{background:none;border:1px solid rgba(233,69,96,.25);color:var(--acc);width:30px;height:30px;border-radius:6px;cursor:pointer;font-size:.8rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:.15s;-webkit-tap-highlight-color:transparent}
.pay-del:hover{background:var(--acc);color:#fff}
.pay-total{font-size:.82rem;font-weight:700;color:var(--grn);margin:6px 0}
.pay-add{background:none;border:1px dashed var(--brd);color:var(--t3);width:100%;padding:7px;border-radius:6px;cursor:pointer;font-size:.76rem;transition:.15s;-webkit-tap-highlight-color:transparent}
.pay-add:hover{border-color:var(--acc);color:var(--acc)}

.client-field{display:flex;gap:6px;position:relative}
.client-field input{flex:1}
.client-add-btn{background:var(--acc);color:#fff;border:none;width:36px;height:36px;border-radius:7px;cursor:pointer;font-size:1.1rem;display:flex;align-items:center;justify-content:center;flex-shrink:0;-webkit-tap-highlight-color:transparent}
.client-dropdown{position:absolute;top:100%;left:0;right:44px;background:var(--bg3);border:1px solid var(--brd);border-radius:7px;max-height:140px;overflow-y:auto;z-index:10;display:none;box-shadow:0 8px 24px rgba(0,0,0,.3)}
.client-dropdown.show{display:block}
.client-opt{padding:9px 13px;cursor:pointer;font-size:.82rem;transition:.1s;-webkit-tap-highlight-color:transparent}
.client-opt:hover{background:var(--bg3h);color:var(--acc)}
.client-opt small{display:block;color:var(--t3);font-size:.68rem}

.status-badge{font-size:.66rem;padding:3px 8px;border-radius:5px;font-weight:700;white-space:nowrap}
.st-progress{background:rgba(86,204,242,.12);color:var(--blu)}
.st-delegated{background:rgba(255,209,102,.12);color:var(--ylw)}
.st-payment{background:rgba(255,140,97,.12);color:var(--org)}
.st-done{background:rgba(46,232,165,.12);color:var(--grn)}

.row-actions{display:flex;gap:6px}
.btn-edit{background:var(--bg3h);border:1px solid var(--brd);color:var(--t2);width:30px;height:30px;border-radius:6px;cursor:pointer;font-size:.82rem;display:flex;align-items:center;justify-content:center;transition:.15s;-webkit-tap-highlight-color:transparent}
.btn-edit:hover{background:var(--blu);color:#fff;border-color:var(--blu)}
.btn-del-sm{background:var(--bg3h);border:1px solid var(--brd);color:var(--t2);width:30px;height:30px;border-radius:6px;cursor:pointer;font-size:.82rem;display:flex;align-items:center;justify-content:center;transition:.15s;-webkit-tap-highlight-color:transparent}
.btn-del-sm:hover{background:var(--acc);color:#fff;border-color:var(--acc)}

.toasts{position:fixed;bottom:20px;right:20px;z-index:2000;display:flex;flex-direction:column;gap:8px}
.toast{background:var(--bg3);color:var(--t1);padding:12px 18px;border-radius:8px;border-left:3px solid var(--acc);box-shadow:0 4px 20px rgba(0,0,0,.3);font-size:.82rem;font-weight:600;animation:tIn .25s,tOut .25s 2.75s forwards;max-width:300px}
.toast.ok{border-left-color:var(--grn)}.toast.warn{border-left-color:var(--ylw)}
@keyframes tIn{from{opacity:0;transform:translateX(80px)}to{opacity:1;transform:translateX(0)}}
@keyframes tOut{from{opacity:1}to{opacity:0;transform:translateX(80px)}}

::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--brd);border-radius:3px}

/* ============================================
  /* ============================================
   FORECAST CARD — same style as finance cells
   ============================================ */
.forecast-card{position:relative;overflow:hidden}
.forecast-card::before{content:'';position:absolute;top:0;left:0;right:0;bottom:0;border-radius:inherit;z-index:0;transition:background .5s,border-color .5s;pointer-events:none}
.forecast-card .sum-val,
.forecast-card .sum-icon,
.forecast-card .mini-val{position:relative;z-index:1}
.forecast-card .sum-lbl,
.forecast-card .mini-lbl{position:relative;z-index:1}

.fc-red::before{background:rgba(233,69,96,.2);border:1px solid rgba(233,69,96,.25)}
.fc-red .sum-val,.fc-red .mini-val{color:#ffa0b0!important}
.fc-red .sum-lbl,.fc-red .mini-lbl{color:#ff8a9e!important}
.fc-red .sum-icon{color:#ffa0b0!important}

.fc-orange::before{background:rgba(255,140,97,.2);border:1px solid rgba(255,140,97,.25)}
.fc-orange .sum-val,.fc-orange .mini-val{color:#ffc4a8!important}
.fc-orange .sum-lbl,.fc-orange .mini-lbl{color:#ffb08e!important}
.fc-orange .sum-icon{color:#ffc4a8!important}

.fc-blue::before{background:rgba(86,204,242,.2);border:1px solid rgba(86,204,242,.25)}
.fc-blue .sum-val,.fc-blue .mini-val{color:#a8e4f8!important}
.fc-blue .sum-lbl,.fc-blue .mini-lbl{color:#8ed8f2!important}
.fc-blue .sum-icon{color:#a8e4f8!important}

.fc-green::before{background:rgba(46,232,165,.2);border:1px solid rgba(46,232,165,.25)}
.fc-green .sum-val,.fc-green .mini-val{color:#80f0cc!important}
.fc-green .sum-lbl,.fc-green .mini-lbl{color:#6aeabc!important}
.fc-green .sum-icon{color:#80f0cc!important}

/* ============================================
   SETTINGS
   ============================================ */
.stt-tabs{display:flex;gap:2px;background:var(--bg1);padding:3px;border-radius:8px;margin-bottom:20px;margin-top:18px}
.stt-tab{flex:1;background:none;border:none;color:var(--t2);padding:9px 12px;border-radius:6px;font-size:.78rem;font-weight:600;cursor:pointer;transition:.15s;text-align:center;-webkit-tap-highlight-color:transparent}
.stt-tab:hover{color:var(--t1);background:rgba(255,255,255,.05)}
.stt-tab.stt-active{color:#fff;background:var(--acc);box-shadow:0 2px 8px rgba(233,69,96,.3)}
.stt-pane{animation:sttFadeIn .2s ease}
@keyframes sttFadeIn{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}
.stt-legend{display:flex;flex-direction:column;gap:8px;padding:14px;background:var(--bg1);border:1px solid var(--brd);border-radius:10px;margin-top:8px}
.stt-legend-row{display:flex;align-items:center;gap:10px;font-size:.82rem;color:var(--t2)}
.stt-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0;box-shadow:0 0 6px rgba(0,0,0,.3)}

/* ============================================
   THEME TOGGLE
   ============================================ */
.theme-toggle-wrap{display:flex;align-items:center;justify-content:space-between;padding:14px;background:var(--bg1);border:1px solid var(--brd);border-radius:10px;margin-bottom:16px}
.theme-toggle-label{font-size:.85rem;font-weight:600;color:var(--t1)}
.theme-toggle-sub{font-size:.68rem;color:var(--t3);margin-top:2px}
.theme-switch{position:relative;width:52px;height:28px;flex-shrink:0}
.theme-switch input{opacity:0;width:0;height:0}
.theme-slider{position:absolute;cursor:pointer;top:0;left:0;right:0;bottom:0;background:var(--bg3);border:1px solid var(--brd);border-radius:28px;transition:.3s}
.theme-slider::before{content:'';position:absolute;height:20px;width:20px;left:3px;bottom:3px;background:var(--t2);border-radius:50%;transition:.3s}
.theme-switch input:checked + .theme-slider{background:var(--acc);border-color:var(--acc)}
.theme-switch input:checked + .theme-slider::before{transform:translateX(24px);background:#fff}

/* ============================================
   VOICE — Mic Button Push-to-Talk
   ============================================ */
.btn-voice{
    width:40px;height:40px;border-radius:50%;border:1px solid var(--brd);
    background:var(--bg3);color:var(--t2);font-size:1.1rem;cursor:pointer;
    transition:all .2s;display:flex;align-items:center;justify-content:center;
    flex-shrink:0;user-select:none;-webkit-user-select:none;position:relative;
}
.btn-voice:hover{background:var(--acc);color:#fff;border-color:var(--acc);transform:scale(1.1)}
.btn-voice.mic-active{
    animation:micPulse .8s ease-in-out infinite;
    background:rgba(239,68,68,.2)!important;
    box-shadow:0 0 0 4px rgba(239,68,68,.3),0 0 20px rgba(239,68,68,.2);
    border-radius:50%;transform:scale(1.15);
}
@keyframes micPulse{
    0%,100%{box-shadow:0 0 0 4px rgba(239,68,68,.3),0 0 20px rgba(239,68,68,.2)}
    50%{box-shadow:0 0 0 8px rgba(239,68,68,.15),0 0 30px rgba(239,68,68,.3)}
}

/* ============================================
   VOICE — Bottom Notification Bar
   ============================================ */
.vf-bar{
    position:fixed;
    bottom:-80px;
    left:50%;
    transform:translateX(-50%);
    z-index:9000;
    display:flex;
    align-items:center;
    gap:10px;
    padding:14px 20px;
    background:var(--bg2);
    border:1px solid var(--brd);
    border-radius:16px;
    box-shadow:0 8px 40px rgba(0,0,0,.45),0 0 0 1px rgba(255,255,255,.05) inset;
    transition:bottom .4s cubic-bezier(.4,0,.2,1);
    backdrop-filter:blur(20px);
    -webkit-backdrop-filter:blur(20px);
    white-space:nowrap;
    max-width:94vw;
}
.vf-bar.vf-show{
    bottom:24px;
    animation:vfSlideUp .35s cubic-bezier(.4,0,.2,1);
}
@keyframes vfSlideUp{
    0%{transform:translateX(-50%) translateY(20px);opacity:0}
    100%{transform:translateX(-50%) translateY(0);opacity:1}
}

.vf-bar-icon{
    width:36px;height:36px;border-radius:10px;
    display:flex;align-items:center;justify-content:center;
    font-size:1.1rem;flex-shrink:0;
}

.vf-bar-msg{
    font-size:13px;font-weight:600;color:var(--t1);
    line-height:1.3;overflow:hidden;text-overflow:ellipsis;
    max-width:400px;
}
.vf-bar-sub{
    font-size:11px;color:var(--t3);font-weight:500;
    margin-top:2px;
}

.vf-bar.vf-listening{border-color:rgba(239,68,68,.4)}
.vf-bar.vf-listening .vf-bar-icon{background:rgba(239,68,68,.15);color:#ef4444}
.vf-bar.vf-listening .vf-bar-icon{animation:listenBlink .8s infinite}

.vf-bar.vf-thinking{border-color:rgba(99,102,241,.4)}
.vf-bar.vf-thinking .vf-bar-icon{background:rgba(99,102,241,.15);color:#6366f1}
.vf-bar.vf-thinking .vf-bar-icon{animation:thinkSpin 1.2s linear infinite}

.vf-bar.vf-success{border-color:rgba(46,232,165,.4)}
.vf-bar.vf-success .vf-bar-icon{background:rgba(46,232,165,.15);color:#2ee8a5}

.vf-bar.vf-error{border-color:rgba(239,68,68,.4)}
.vf-bar.vf-error .vf-bar-icon{background:rgba(239,68,68,.15);color:#ef4444}

.vf-bar.vf-feedback{border-color:rgba(99,102,241,.3)}
.vf-bar.vf-feedback .vf-bar-icon{background:rgba(99,102,241,.15);color:#6366f1}

@keyframes listenBlink{0%,100%{opacity:1}50%{opacity:.3}}
@keyframes thinkSpin{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}

.vf-actions{display:flex;gap:6px;margin-left:auto;flex-shrink:0}
.vf-btn{
    border:none;border-radius:8px;padding:7px 14px;
    font-size:12px;font-weight:700;cursor:pointer;
    transition:all .15s;letter-spacing:.3px;
}
.vf-btn:active{transform:scale(.95)}
.vf-btn-ok{background:#22c55e;color:#fff}
.vf-btn-ok:hover{background:#16a34a}
.vf-btn-bad{background:#ef4444;color:#fff}
.vf-btn-bad:hover{background:#dc2626}
.vf-btn-close{
    background:transparent;color:var(--t3);
    font-size:16px;padding:7px 8px;line-height:1;
}
.vf-btn-close:hover{color:var(--t1)}

@media(max-width:768px){
    .vf-bar{
        left:8px;right:8px;transform:none;width:auto;
        padding:12px 14px;gap:8px;flex-wrap:wrap;
        justify-content:center;
    }
    .vf-bar.vf-show{
        bottom:72px;
        animation:vfSlideUpMob .35s ease;
    }
    @keyframes vfSlideUpMob{
        0%{transform:translateY(20px);opacity:0}
        100%{transform:translateY(0);opacity:1}
    }
    .vf-bar-msg{max-width:200px;font-size:12px}
    .vf-btn{padding:6px 12px;font-size:11px}
}

[data-theme="light"] .vf-bar{
    background:var(--bg3);border-color:var(--brd);
    box-shadow:0 8px 40px rgba(0,0,0,.12),0 0 0 1px rgba(0,0,0,.04) inset;
}
/* Убрать стрелки у number input */
input[type="number"]::-webkit-inner-spin-button,
input[type="number"]::-webkit-outer-spin-button {
    -webkit-appearance: none;
    margin: 0;
}
input[type="number"] {
    -moz-appearance: textfield;
}