:root{--bg-primary:#fff;--bg-secondary:#f5f5f5;--bg-tertiary:#e8e8e8;--text-primary:#212121;--text-secondary:#616161;--border:#e0e0e0;--accent:#1976d2;--accent-hover:#1565c0;--income:#2e7d32;--expense:#c62828;--tab-active-bg:#fff;--tab-bg:#e0e0e0;--table-header-bg:#1976d2;--table-header-text:#fff;--table-stripe:#fafafa;--input-bg:#fff;--card-bg:#fff;color:var(--text-primary);background:var(--bg-primary);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;font-size:15px;line-height:1.5}*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}body{background:var(--bg-primary);overscroll-behavior:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0}#root{width:100%}h1,h2,h3{margin:0}select,input,button,textarea{font-family:inherit}input,select,textarea{font-size:16px}@media (width<=499px){input,select{font-size:16px!important}}@media (display-mode:standalone){body{padding-top:env(safe-area-inset-top);padding-bottom:env(safe-area-inset-bottom);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}}.app{max-width:1200px;min-height:100dvh;margin:0 auto;padding:8px}.toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:6px;margin-bottom:6px;display:flex}.toolbar h1{color:var(--text-primary);margin:0;font-size:clamp(16px,4vw,22px);font-weight:600}.toolbar-right{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.toolbar-user{color:var(--text-secondary);border:1px solid var(--border);border-radius:4px;padding:2px 8px;font-size:12px;font-weight:500}.toolbar label{color:var(--text-secondary);align-items:center;gap:4px;font-size:12px;display:flex}.toolbar select{background:var(--input-bg);color:var(--text-primary);border:1px solid var(--border);border-radius:4px;padding:4px 8px;font-size:12px}.tabs{gap:0;margin-bottom:0;display:flex}.tab{border:1px solid var(--border);background:var(--tab-bg);color:var(--text-primary);cursor:pointer;text-align:center;-webkit-tap-highlight-color:transparent;touch-action:manipulation;border-bottom:none;border-radius:6px 6px 0 0;flex:1;padding:10px 12px;font-size:13px;transition:background .2s}.tab.active{background:var(--tab-active-bg);border-bottom:2px solid var(--accent);font-weight:600}.tab-content{border:1px solid var(--border);background:var(--bg-secondary);border-radius:0 6px 6px;padding:8px}.panel{flex-direction:column;gap:8px;display:flex}.card{background:var(--card-bg);border:1px solid var(--border);border-radius:6px;padding:8px}.form-card{padding:8px 10px}.form-row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.form-row label{color:var(--text-secondary);flex-direction:column;gap:2px;width:auto;font-size:12px;display:flex}.form-row select,.form-row input{background:var(--input-bg);color:var(--text-primary);border:1px solid var(--border);border-radius:4px;width:100%;min-width:0;padding:6px 8px;font-size:14px}.form-row input[type=number],.form-row input[type=text],.form-row input[type=date],.form-row select{width:100%}@media (width>=500px){.form-row label{flex-direction:row;align-items:center;gap:4px}.form-row input[type=number]{width:90px}.form-row input[type=date]{width:120px}.form-row input[type=text]{width:130px}.form-row select{width:auto}}@media (width>=800px){.form-row label{white-space:nowrap}}@media (width<=499px){.form-row{flex-direction:column;align-items:stretch}.form-row label:first-child{margin-top:0}}.btn-group{gap:6px;margin-top:6px;display:flex}@media (width<=499px){.btn-group{flex-direction:column}}.btn{cursor:pointer;-webkit-tap-highlight-color:transparent;touch-action:manipulation;border:none;border-radius:4px;padding:8px 14px;font-size:14px;font-weight:500;transition:opacity .2s}@media (width<=499px){.btn{padding:10px 14px;font-size:15px}}.btn:hover{opacity:.85}.btn-primary{background:var(--accent);color:#fff}.btn-secondary{background:var(--bg-tertiary);color:var(--text-primary)}.btn-danger{background:var(--expense);color:#fff}.btn-accent{background:var(--accent);color:#fff}.btn-logout{color:var(--expense);border:1px solid var(--expense);background:0 0;padding:3px 10px;font-size:12px}.filter-bar{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.filter-bar label{color:var(--text-secondary);align-items:center;gap:4px;font-size:12px;display:flex}.filter-bar select{background:var(--input-bg);color:var(--text-primary);border:1px solid var(--border);border-radius:4px;padding:5px 8px;font-size:13px}@media (width<=499px){.filter-bar{gap:6px}.filter-bar .btn{text-align:center;flex:1;padding:6px 10px;font-size:12px}}.table-wrapper{border:1px solid var(--border);-webkit-overflow-scrolling:touch;border-radius:6px;overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:500px;font-size:12px}thead{background:var(--table-header-bg);color:var(--table-header-text)}th{text-align:left;white-space:nowrap;padding:7px 6px;font-size:12px;font-weight:600;position:sticky;top:0}td{border-bottom:1px solid var(--border);cursor:pointer;padding:6px}tbody tr:hover{background:var(--bg-tertiary);opacity:.7}tbody tr.selected{background:var(--bg-tertiary)}tbody tr:nth-child(2n){background:var(--table-stripe)}@media (width<=499px){th,td{padding:5px 4px;font-size:11px}}.text-income{color:var(--income);font-weight:600}.text-expense{color:var(--expense);font-weight:600}.empty{text-align:center;color:var(--text-secondary);padding:24px}.summary-bar{justify-content:space-around;gap:4px;padding:8px 10px;display:flex}.summary-bar div{flex-direction:column;flex:1;align-items:center;gap:2px;display:flex}.summary-label{color:var(--text-secondary);white-space:nowrap;font-size:11px}.summary-bar span:last-child{white-space:nowrap;font-size:clamp(13px,3vw,15px);font-weight:700}@media (width<=399px){.summary-bar{flex-direction:column;gap:6px}.summary-bar div{flex-direction:row;justify-content:space-between;width:100%}}.login-screen{justify-content:center;align-items:center;min-height:100dvh;padding:16px;display:flex}.login-card{background:var(--card-bg);border:1px solid var(--border);text-align:center;border-radius:12px;width:100%;max-width:360px;padding:32px 24px;box-shadow:0 2px 12px #00000014}.login-icon{color:var(--accent);margin-bottom:8px;font-size:48px;line-height:1}.login-card h1{color:var(--text-primary);margin-bottom:2px;font-size:22px;font-weight:600}.login-subtitle{color:var(--text-secondary);margin:0 0 20px;font-size:13px}.login-field{text-align:left;margin-bottom:14px}.login-field label{color:var(--text-secondary);margin-bottom:4px;font-size:12px;display:block}.login-field input{background:var(--input-bg);width:100%;color:var(--text-primary);border:1px solid var(--border);box-sizing:border-box;border-radius:6px;padding:10px 12px;font-size:15px}.login-field input:focus{border-color:var(--accent);outline:none}.login-error{color:var(--expense);margin:0 0 10px;font-size:12px}.login-btn{width:100%;margin-top:4px;padding:10px;font-size:15px}.login-hint{color:var(--text-secondary);margin:14px 0 0;font-size:11px}.modal-overlay{z-index:1000;background:#0006;justify-content:center;align-items:center;padding:16px;display:flex;position:fixed;inset:0}.modal{background:var(--card-bg);border:1px solid var(--border);border-radius:10px;width:100%;max-width:340px;padding:24px}.modal h3{color:var(--text-primary);margin:0 0 14px;font-size:17px;font-weight:600}.pwd-success{color:var(--income);text-align:center;margin:12px 0;font-size:14px}
