:root{--bg: var(--tg-theme-bg-color, #ffffff);--bg2: var(--tg-theme-secondary-bg-color, #f0f0f5);--text: var(--tg-theme-text-color, #1c1c1e);--hint: var(--tg-theme-hint-color, #8e8e93);--link: var(--tg-theme-link-color, #007aff);--btn: var(--tg-theme-button-color, #007aff);--btn-text: var(--tg-theme-button-text-color, #ffffff);--accent: var(--tg-theme-accent-text-color, var(--link));--section-bg: var(--tg-theme-section-bg-color, #ffffff);--section-header: var(--tg-theme-section-header-text-color, var(--hint));--subtitle: var(--tg-theme-subtitle-text-color, var(--hint));--destructive: var(--tg-theme-destructive-text-color, #ff3b30);--card-shadow: 0 1px 3px rgba(0,0,0,.06), 0 1px 2px rgba(0,0,0,.04);--card-radius: 14px;--radius-sm: 10px;--radius-xs: 8px;--gap: 12px;--nav-h: 56px;--green: #34c759;--orange: #ff9500;--red: #ff3b30}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%;font-family:-apple-system,SF Pro Text,Helvetica Neue,system-ui,sans-serif;font-size:15px;line-height:1.45;color:var(--text);background:var(--bg2);-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent;overflow-x:hidden}.auth-gate{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100dvh;padding:32px;text-align:center;background:var(--bg)}.auth-gate .logo{font-size:64px;margin-bottom:16px;animation:pulse 2s ease-in-out infinite}.auth-gate h1{font-size:28px;font-weight:700;margin-bottom:8px}.auth-gate p{color:var(--hint);font-size:16px;max-width:280px}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.shell{display:flex;flex-direction:column;height:100dvh;background:var(--bg2)}.page-content{flex:1;overflow-y:auto;padding:12px 16px 80px;-webkit-overflow-scrolling:touch}.bottom-nav{position:fixed;bottom:0;left:0;right:0;height:var(--nav-h);background:var(--bg);border-top:.5px solid var(--hint);display:flex;align-items:center;justify-content:space-around;padding-bottom:env(safe-area-inset-bottom,0);z-index:100;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px)}.nav-item{display:flex;flex-direction:column;align-items:center;gap:2px;text-decoration:none;color:var(--hint);font-size:10px;font-weight:500;transition:color .15s;padding:4px 0;min-width:52px}.nav-item .nav-icon{font-size:22px;line-height:1}.nav-item.active{color:var(--btn)}.page-header{padding:8px 0 12px}.page-header h1{font-size:32px;font-weight:800;letter-spacing:-.5px}.page-header .subtitle{color:var(--hint);font-size:14px;margin-top:2px}.card{background:var(--section-bg);border-radius:var(--card-radius);padding:16px;box-shadow:var(--card-shadow);transition:transform .15s}.card+.card{margin-top:var(--gap)}.card:active{transform:scale(.98)}.section-title{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;color:var(--section-header);padding:16px 4px 8px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:12px 20px;border-radius:var(--radius-sm);border:none;font-size:15px;font-weight:600;cursor:pointer;transition:opacity .15s,transform .1s}.btn:active{transform:scale(.96)}.btn:disabled{opacity:.5;pointer-events:none}.btn-primary{background:var(--btn);color:var(--btn-text)}.btn-secondary{background:var(--bg2);color:var(--text)}.btn-outline{background:transparent;color:var(--btn);border:1.5px solid var(--btn)}.btn-sm{padding:8px 14px;font-size:13px;border-radius:var(--radius-xs)}.btn-block{width:100%}.chip{display:inline-flex;align-items:center;gap:4px;padding:4px 10px;border-radius:20px;font-size:13px;font-weight:500;background:var(--bg2);color:var(--text)}.chip-green{background:#d1fae5;color:#065f46}.chip-orange{background:#fff3cd;color:#856404}.chip-red{background:#fee2e2;color:#991b1b}.chip-blue{background:#dbeafe;color:#1e40af}.input,.textarea,.select{width:100%;padding:12px 14px;border-radius:var(--radius-sm);border:1.5px solid transparent;background:var(--bg2);color:var(--text);font-size:15px;font-family:inherit;outline:none;transition:border-color .15s,background .15s}.input:focus,.textarea:focus,.select:focus{border-color:var(--btn);background:var(--bg)}.input::placeholder,.textarea::placeholder{color:var(--hint)}.textarea{resize:vertical;min-height:120px}.select{-webkit-appearance:none;-moz-appearance:none;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 fill='%238e8e93' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:32px}.input-row{display:flex;gap:8px;align-items:center}label.label{display:block;font-size:13px;font-weight:600;color:var(--subtitle);margin-bottom:6px}.tx-item{display:flex;align-items:center;gap:12px;padding:14px 0;border-bottom:.5px solid var(--bg2)}.tx-item:last-child{border-bottom:none}.tx-icon{width:40px;height:40px;border-radius:12px;background:var(--bg2);display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}.tx-info{flex:1;min-width:0}.tx-merchant{font-weight:600;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tx-desc{color:var(--hint);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tx-amount{font-weight:700;font-size:16px;text-align:right;flex-shrink:0}.tx-amount.expense{color:var(--text)}.tx-amount.income{color:var(--green)}.tx-date{font-size:12px;color:var(--hint);text-align:right}.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:10px}.cat-card{background:var(--section-bg);border-radius:var(--card-radius);padding:16px 12px;text-align:center;box-shadow:var(--card-shadow);transition:transform .15s}.cat-card:active{transform:scale(.96)}.cat-card .cat-icon{font-size:32px;margin-bottom:6px}.cat-card .cat-name{font-weight:600;font-size:14px}.cat-card .cat-slug{color:var(--hint);font-size:11px;margin-top:2px}.cat-card.archived{opacity:.4}.upload-card{background:var(--section-bg);border-radius:var(--card-radius);padding:16px;box-shadow:var(--card-shadow);display:flex;align-items:center;gap:14px}.upload-icon{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:22px;flex-shrink:0}.upload-icon.sber{background:#d4edda}.upload-icon.alfa{background:#fce4ec}.upload-icon.tbank{background:#fff9c4}.review-card{background:var(--section-bg);border-radius:var(--card-radius);padding:16px;box-shadow:var(--card-shadow);border-left:4px solid var(--orange)}.review-question{font-weight:600;font-size:16px;margin-bottom:10px}.review-meta{font-size:12px;color:var(--hint);margin-bottom:12px}.review-answers{display:flex;flex-wrap:wrap;gap:8px}.progress-bar{height:8px;border-radius:4px;background:var(--bg2);overflow:hidden}.progress-fill{height:100%;border-radius:4px;transition:width .5s ease}.stat-row{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:.5px solid var(--bg2)}.stat-row:last-child{border-bottom:none}.stat-icon{font-size:24px;width:36px;text-align:center;flex-shrink:0}.stat-info{flex:1;min-width:0}.stat-name{font-weight:600;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.stat-bar{margin-top:4px}.stat-amount{font-weight:700;font-size:15px;text-align:right;flex-shrink:0}.stat-count{font-size:12px;color:var(--hint);text-align:right}.big-number{font-size:38px;font-weight:800;letter-spacing:-1px;text-align:center;padding:20px 0 4px}.big-label{font-size:14px;color:var(--hint);text-align:center;margin-bottom:16px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#00000073;display:flex;align-items:flex-end;justify-content:center;z-index:200;animation:fadeIn .2s}.modal-sheet{background:var(--bg);border-radius:20px 20px 0 0;width:100%;max-height:85dvh;overflow-y:auto;padding:20px 16px calc(20px + env(safe-area-inset-bottom,0));animation:slideUp .25s ease-out}.modal-handle{width:36px;height:5px;border-radius:3px;background:var(--hint);opacity:.3;margin:0 auto 16px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}.upload-area{border:2px dashed var(--hint);border-radius:var(--card-radius);padding:32px 16px;text-align:center;cursor:pointer;transition:border-color .2s,background .2s;background:var(--section-bg)}.upload-area:active{border-color:var(--btn);background:var(--bg2)}.upload-area .upload-emoji{font-size:48px;margin-bottom:8px}.upload-area p{color:var(--hint);font-size:14px}.empty-state{text-align:center;padding:48px 16px}.empty-state .empty-emoji{font-size:56px;margin-bottom:12px}.empty-state p{color:var(--hint);font-size:15px}.spinner{width:24px;height:24px;border:3px solid var(--bg2);border-top-color:var(--btn);border-radius:50%;animation:spin .6s linear infinite;margin:0 auto}@keyframes spin{to{transform:rotate(360deg)}}.loading-page{display:flex;flex-direction:column;align-items:center;justify-content:center;height:60dvh;gap:12px}.loading-page p{color:var(--hint);font-size:14px}.version-item{padding:14px;background:var(--section-bg);border-radius:var(--radius-sm);margin-bottom:8px}.version-item pre{background:var(--bg2);color:var(--text);padding:10px;border-radius:var(--radius-xs);font-size:13px;white-space:pre-wrap;word-break:break-word;max-height:100px;overflow:auto;margin:8px 0}.audit-step{padding:12px 0 12px 16px;border-left:3px solid var(--btn);position:relative}.audit-step:before{content:"";position:absolute;left:-6px;top:18px;width:9px;height:9px;border-radius:50%;background:var(--btn)}.payer-section{display:flex;gap:10px;margin-top:12px}.payer-pill{flex:1;background:var(--section-bg);border-radius:var(--radius-sm);padding:14px;text-align:center;box-shadow:var(--card-shadow)}.payer-pill .payer-amount{font-size:20px;font-weight:700;margin-top:4px}.payer-pill .payer-label{font-size:12px;color:var(--hint)}.flex{display:flex}.flex-between{display:flex;justify-content:space-between;align-items:center}.flex-center{display:flex;align-items:center;justify-content:center}.gap-sm{gap:6px}.gap{gap:12px}.mt-sm{margin-top:8px}.mt{margin-top:12px}.mt-lg{margin-top:20px}.mb{margin-bottom:12px}.text-hint{color:var(--hint)}.text-sm{font-size:13px}.text-xs{font-size:11px}.text-bold{font-weight:700}.text-center{text-align:center}.w-full{width:100%}
