:root{--bg: #ffffff;--text: #1f2937;--muted: #6b7280;--line: #eef1f4;--green: #3db89a;--green-dark: #2f9a82;--gold: #e3b23c;--blue: #3b82f6;--danger: #dc2626;--page: #f7f8fa;font-family:Manrope,system-ui,sans-serif;color:var(--text);background:var(--page)}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%}body{background:var(--page)}.boot{min-height:100vh;display:grid;place-items:center;color:var(--muted)}.login-page{min-height:100vh;display:grid;place-items:center;background:radial-gradient(1200px 500px at 50% -10%,#d8f3ea 0%,transparent 55%),linear-gradient(180deg,#f4fbf8,#f7f8fa 40%,#fff);padding:24px}.login-card{width:min(400px,100%);background:#fff;border:1px solid #e8edf2;border-radius:16px;padding:32px 28px;display:flex;flex-direction:column;gap:14px;box-shadow:0 18px 50px #0f172a0f}.login-card h1{margin:0;font-size:22px;font-weight:700;text-align:center}.login-sub{margin:-4px 0 8px;text-align:center;color:var(--muted);font-size:14px}.login-card label{display:flex;flex-direction:column;gap:6px;font-size:13px;color:var(--muted)}.login-card input{border:1px solid #dbe2ea;border-radius:10px;padding:11px 12px;font:inherit;color:var(--text)}.login-card button{margin-top:6px;border:0;border-radius:10px;padding:12px;background:var(--green);color:#fff;font:inherit;font-weight:600;cursor:pointer}.login-card button:disabled{opacity:.7;cursor:wait}.login-error{color:var(--danger);font-size:13px}.app-shell{min-height:100vh;background-color:#0f172a;background-image:url(/bg-resort.png);background-size:cover;background-position:center bottom;background-repeat:no-repeat;background-attachment:fixed}.glass{background:#ffffffb3;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.topbar{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;padding:18px 28px 8px;gap:16px;background:#ffffffb3;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-bottom:1px solid rgba(255,255,255,.35)}.topbar-title{margin:0;font-size:22px;font-weight:700;text-align:center;letter-spacing:-.01em}.user-block{justify-self:end;display:flex;align-items:center;gap:10px}.avatar{width:36px;height:36px;border-radius:50%;background:var(--blue);color:#fff;display:grid;place-items:center;font-size:13px;font-weight:700}.user-name{border:0;background:transparent;font:inherit;font-size:14px;color:var(--text);cursor:pointer;display:inline-flex;align-items:center;gap:6px;padding:0}.chev{color:var(--muted);font-size:12px}.logout-btn{border:0;background:transparent;color:var(--muted);font-size:18px;cursor:pointer;padding:4px 6px}.main{max-width:1280px;margin:0 auto;padding:8px 28px 40px;display:flex;flex-direction:column;gap:18px}.dropzone{border:1.5px dashed rgba(201,212,222,.9);border-radius:12px;background:#ffffffb3;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);padding:22px 16px;text-align:center;cursor:pointer;transition:border-color .15s,background .15s}.dropzone--over{border-color:var(--green);background:#f1fbf7d9}.dropzone--busy{opacity:.65;pointer-events:none}.dropzone-icon{width:36px;height:36px;margin:0 auto 8px;border-radius:50%;background:#e8f7f2;color:var(--green-dark);display:grid;place-items:center;font-size:18px}.dropzone-title{font-weight:600;font-size:15px}.dropzone-sub{margin-top:4px;font-size:13px;color:var(--muted)}.section-label{margin:0 0 10px;font-size:14px;font-weight:600;color:var(--muted)}.history{background:#ffffffb3;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-radius:12px;padding:12px 14px;border:1px solid rgba(255,255,255,.35)}.history-list{list-style:none;margin:0;padding:0;border:1px solid rgba(238,241,244,.8);border-radius:12px;overflow:hidden;background:#ffffff73}.history-item{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:12px 14px;border-bottom:1px solid var(--line)}.history-item:last-child{border-bottom:0}.history-main{display:flex;flex-direction:column;gap:2px;min-width:0}.history-name{font-weight:600;font-size:14px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-meta{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.history-del{flex-shrink:0;border:1px solid #f0caca;background:#fff5f5;color:var(--danger);border-radius:8px;padding:7px 12px;font:inherit;font-size:13px;cursor:pointer}.history-del:disabled{opacity:.5;cursor:wait}.banner-error{background:#fef2f2d9;color:#991b1b;border:1px solid #fecaca;border-radius:10px;padding:10px 12px;font-size:13px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.banner-notice{background:#fffbebd9;color:#92400e;border:1px solid #fde68a;border-radius:10px;padding:10px 12px;font-size:13px;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.accounts{background:#ffffffb3;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-radius:12px;padding:10px 12px 12px;border:1px solid rgba(255,255,255,.35)}.scroll-hint{display:none;margin:0 0 8px;font-size:12px;color:var(--muted);text-align:center}.accounts-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scrollbar-width:thin}.accounts-table{display:flex;flex-direction:column;min-width:980px}.account-row{display:grid;grid-template-columns:36px 190px minmax(160px,1.3fr) 150px 120px 130px 130px 120px;gap:10px;align-items:center;padding:12px 6px;border-bottom:1px solid var(--line);font-size:13px}.account-row--head{font-size:11px;font-weight:600;color:var(--muted);text-transform:uppercase;letter-spacing:.02em;border-bottom:1px solid #dde3ea;padding-top:6px;padding-bottom:8px}.account-row--head .col.money,.account-row--head .col.period{text-align:right}.ok-badge{width:22px;height:22px;border-radius:50%;background:var(--green);color:#fff;display:grid;place-items:center;font-size:12px;font-weight:700}.col.account{font-variant-numeric:tabular-nums;font-weight:500}.col.bank{color:#374151;text-transform:uppercase;font-size:12px;letter-spacing:.01em;line-height:1.35}.col.period,.col.money{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.money--out{color:#4b5563}.empty-hint{color:var(--muted);font-size:14px;padding:24px 8px;text-align:center}.chart-section{margin-top:8px;padding:14px;background:#ffffffb3;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border-radius:12px;border:1px solid rgba(255,255,255,.35)}.chart-legend-row{display:flex;gap:22px;margin-bottom:8px;font-size:13px;color:#4b5563}.legend-item{display:inline-flex;align-items:center;gap:8px}.dot{width:10px;height:10px;border-radius:50%;display:inline-block}.dot--in{background:var(--green)}.dot--out{background:var(--gold)}.chart-wrap{width:100%;min-height:300px}.chart-scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;padding-bottom:4px}.chart-inner{min-height:300px}.chart-month-hint{text-align:center;font-size:12px;color:var(--muted);margin:0 0 10px}.chart-month-card{margin:0 auto 12px;max-width:420px;min-height:68px;text-align:center;background:#ffffffeb;border:1px solid #e5e7eb;border-radius:12px;padding:10px 14px;box-shadow:0 8px 24px #0f172a14;display:flex;flex-direction:column;justify-content:center}.chart-month-card-placeholder{font-size:12px;color:var(--muted);line-height:1.4}.chart-month-card-title{font-weight:700;font-size:14px;margin-bottom:6px}.chart-month-card-rows{display:flex;flex-direction:column;gap:4px;font-size:13px;color:#374151}.chart-month-card-rows .dot{margin-right:6px;vertical-align:middle}@media(max-width:1100px){.app-shell{background-attachment:scroll;background-position:center bottom}.topbar{grid-template-columns:auto 1fr auto;padding:12px 14px;gap:8px;align-items:center}.topbar-spacer{display:none}.topbar-title{font-size:17px;justify-self:start}.user-block{justify-self:end;gap:6px}.user-name{max-width:42vw;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px}.main{padding:10px 12px 28px;gap:12px}.scroll-hint{display:block}.history-item{align-items:flex-start;gap:10px}.history-name,.history-meta{white-space:normal}.dropzone{padding:16px 12px}.dropzone-title{font-size:14px}.chart-legend-row{justify-content:center;flex-wrap:wrap;gap:12px 18px}}@media(max-width:640px){.app-shell{background-position:62% bottom}.user-name .chev{display:none}.avatar{width:32px;height:32px;font-size:12px}.login-page{padding:16px}.login-card{padding:24px 18px}}
