/* Vardagsekonomi Core — isolated app CSS, mobile first */
html, body.ve-fullscreen-body {
    margin: 0 !important;
    padding: 0 !important;
    width: 100%;
    min-height: 100%;
    background: #fff !important;
}
body.ve-fullscreen-body {
    overflow-x: hidden;
}
body.ve-fullscreen-body > * {
    max-width: none !important;
}
.ve-app {
    --ve-blue: #007AFF;
    --ve-blue-soft: #EAF3FF;
    --ve-green: #34C759;
    --ve-green-soft: #EAF9EF;
    --ve-red: #FF3B30;
    --ve-red-soft: #FFF0EF;
    --ve-text: #171717;
    --ve-muted: #737373;
    --ve-line: #E8E8E8;
    --ve-bg: #F7F7F8;
    --ve-card: #FFFFFF;
    width: 100%;
    min-height: 100vh;
    box-sizing: border-box;
    color: var(--ve-text);
    background: var(--ve-bg);
    font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "Segoe UI", sans-serif;
    -webkit-font-smoothing: antialiased;
}
.ve-app *, .ve-app *::before, .ve-app *::after { box-sizing: border-box; }
.ve-app button { font: inherit; }
.ve-topbar {
    display:flex; align-items:center; justify-content:space-between;
    padding:18px 20px 10px; background:#fff;
}
.ve-brand { font-size:19px; font-weight:750; letter-spacing:-.02em; }
.ve-subtitle { margin-top:2px; font-size:12px; color:var(--ve-muted); }
.ve-icon-button {
    width:40px; height:40px; border:0; border-radius:50%;
    background:#F2F2F7; color:#444; font-size:18px;
}
.ve-content { padding:8px 16px 110px; max-width:720px; margin:0 auto; }
.ve-greeting { padding:10px 2px 12px; }
.ve-greeting h1 { margin:0; font-size:28px; letter-spacing:-.04em; }
.ve-month { border:0; padding:3px 0; background:none; color:var(--ve-muted); font-size:14px; }
.ve-summary-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.ve-summary-card {
    border-radius:18px; padding:15px; background:var(--ve-card);
    border:1px solid rgba(0,0,0,.035);
}
.ve-summary-card span { display:block; color:var(--ve-muted); font-size:12px; }
.ve-summary-card strong { display:block; margin-top:4px; font-size:20px; letter-spacing:-.035em; }
.ve-income { background:var(--ve-green-soft); }
.ve-expense { background:var(--ve-red-soft); }
.ve-balance { grid-column:1/-1; background:var(--ve-card); }
.ve-balance strong { color:var(--ve-green); font-size:23px; }
.ve-actions { display:grid; gap:9px; margin-top:16px; }
.ve-primary-action, .ve-secondary-action {
    min-height:52px; width:100%; border:0; border-radius:15px;
    display:flex; align-items:center; gap:12px; padding:0 16px;
    font-weight:650; text-align:left; cursor:pointer;
}
.ve-primary-action { background:var(--ve-blue); color:#fff; box-shadow:0 7px 18px rgba(0,122,255,.16); }
.ve-secondary-action { background:#fff; color:var(--ve-text); border:1px solid var(--ve-line); }
.ve-action-icon { width:25px; text-align:center; font-size:20px; }
.ve-hidden-file { display:none !important; }
.ve-section { margin-top:25px; }
.ve-section-heading { display:flex; justify-content:space-between; align-items:center; }
.ve-section-heading h2 { margin:0; font-size:17px; letter-spacing:-.02em; }
.ve-text-button { border:0; background:none; color:var(--ve-blue); font-size:13px; font-weight:600; }
.ve-empty-state {
    margin-top:10px; padding:25px 18px; border-radius:18px; background:#fff;
    border:1px solid var(--ve-line); text-align:center;
}
.ve-empty-icon { font-size:30px; color:#B7B7BC; }
.ve-empty-state strong { display:block; margin-top:8px; font-size:15px; }
.ve-empty-state span { display:block; margin:5px auto 0; max-width:280px; color:var(--ve-muted); font-size:12px; line-height:1.45; }

.ve-desktop-overview { display:none; }

.ve-bottom-nav {
    position:fixed; left:0; right:0; bottom:0; z-index:20;
    height:72px; display:grid; grid-template-columns:1fr 1fr 1fr 1fr 1fr;
    padding:7px 8px max(7px, env(safe-area-inset-bottom));
    background:rgba(255,255,255,.94); backdrop-filter:blur(16px);
    border-top:1px solid rgba(0,0,0,.08);
}
.ve-bottom-nav button {
    border:0; background:none; color:#85858A; display:flex; flex-direction:column;
    align-items:center; justify-content:center; gap:2px; font-size:20px;
}
.ve-bottom-nav button.is-active { color:var(--ve-blue); }
.ve-bottom-nav small { font-size:10px; font-weight:600; }
.ve-bottom-nav .ve-fab {
    width:52px; height:52px; margin:-2px auto 0; border-radius:50%;
    color:#fff; background:var(--ve-blue); font-size:27px;
    box-shadow:0 7px 18px rgba(0,122,255,.25);
}

.ve-camera-sheet[hidden], .ve-processing[hidden] { display:none; }
.ve-camera-sheet { position:fixed; inset:0; z-index:100; }
.ve-camera-backdrop { position:absolute; inset:0; background:rgba(0,0,0,.72); }
.ve-camera-panel {
    position:absolute; inset:0; display:flex; flex-direction:column;
    color:#fff; background:#111;
}
.ve-camera-header {
    display:flex; align-items:center; justify-content:space-between;
    padding:14px 16px; padding-top:max(14px, env(safe-area-inset-top));
    font-size:15px;
}
.ve-camera-header button { border:0; background:none; color:#fff; padding:8px; }
.ve-camera-view {
    position:relative; flex:1; display:flex; align-items:center; justify-content:center;
    overflow:hidden; background:#171717;
}
.ve-camera-view video, .ve-camera-view img {
    width:100%; height:100%; object-fit:cover;
}
.ve-camera-preview { background:#111; }
.ve-photo-confirm { padding:18px 20px max(18px, env(safe-area-inset-bottom)); background:#111; }
.ve-photo-question { text-align:center; font-size:16px; font-weight:650; margin-bottom:13px; }
.ve-photo-actions { display:grid; grid-template-columns:1fr 1.35fr; gap:10px; }
.ve-photo-actions button { min-height:50px; border:0; border-radius:14px; font-weight:650; cursor:pointer; }
.ve-retake { background:#303030; color:#fff; }
.ve-use-photo { background:var(--ve-blue); color:#fff; }
.ve-camera-frame {
    position:absolute; width:min(84vw, 370px); height:62%;
    border:2px solid rgba(255,255,255,.9); border-radius:12px;
    box-shadow:0 0 0 999px rgba(0,0,0,.24);
}
.ve-camera-hint {
    position:absolute; bottom:28px; left:0; right:0; text-align:center;
    font-size:12px; color:rgba(255,255,255,.82);
}
.ve-camera-controls {
    display:flex; align-items:center; justify-content:space-between;
    padding:22px 28px max(22px, env(safe-area-inset-bottom));
    background:#111;
}
.ve-thumb, .ve-camera-switch {
    width:44px; height:44px; border:0; border-radius:50%;
    background:#303030; color:#fff; font-size:21px;
}
.ve-shutter {
    width:72px; height:72px; border-radius:50%; border:5px solid #fff;
    background:transparent; padding:6px;
}
.ve-shutter span { display:block; width:100%; height:100%; border-radius:50%; background:#fff; }
.ve-camera-status { text-align:center; margin:0 18px 10px; color:#FFCC00; font-size:12px; }

.ve-processing {
    position:fixed; inset:0; z-index:120; display:flex; align-items:center;
    justify-content:center; padding:22px; background:rgba(247,247,248,.96);
}
.ve-processing-card {
    width:min(100%, 380px); padding:25px 21px; border-radius:24px;
    background:#fff; border:1px solid var(--ve-line);
}
.ve-processing-icon {
    width:48px; height:48px; margin:0 auto 14px; display:grid; place-items:center;
    border-radius:15px; background:var(--ve-blue-soft); color:var(--ve-blue); font-size:23px;
}
.ve-processing-card h2 { margin:0; text-align:center; font-size:20px; letter-spacing:-.03em; }
.ve-progress { height:6px; margin:18px 0; border-radius:99px; background:#E8E8ED; overflow:hidden; }
.ve-progress span { display:block; width:0; height:100%; border-radius:99px; background:var(--ve-blue); transition:width .5s ease; }
.ve-processing-card ul { list-style:none; margin:0; padding:0; }
.ve-processing-card li { padding:7px 0; color:#A0A0A5; font-size:13px; }
.ve-processing-card li::before { content:"○"; display:inline-block; width:25px; }
.ve-processing-card li.is-done { color:var(--ve-text); }
.ve-processing-card li.is-done::before { content:"✓"; color:var(--ve-green); font-weight:800; }

/* Desktop app: theme-independent, white full-screen canvas */
@media (min-width: 900px) {
    .ve-app {
        min-height: 100vh;
        background:#fff;
    }
    .ve-topbar {
        padding:28px 40px 14px;
        max-width:1500px;
        margin:0 auto;
    }
    .ve-content {
        max-width:1500px;
        margin:0 auto;
        padding:16px 40px 100px;
        display:grid;
        grid-template-columns:360px minmax(0,1fr);
        gap:20px;
        align-items:start;
    }
    .ve-greeting {
        grid-column:1;
        grid-row:1;
        padding:12px 4px 10px;
    }
    .ve-summary-grid {
        grid-column:1;
        grid-row:2;
    }
    .ve-actions {
        grid-column:1;
        grid-row:3;
        margin-top:14px;
    }
    .ve-section {
        grid-column:1;
        grid-row:4;
        margin-top:22px;
    }
    .ve-desktop-overview {
        display:grid;
        grid-column:2;
        grid-row:1 / span 4;
        gap:14px;
    }
    .ve-desktop-panel {
        background:#fff;
        border:1px solid var(--ve-line);
        border-radius:18px;
        padding:20px;
    }
    .ve-panel-heading {
        display:flex;
        justify-content:space-between;
        align-items:flex-start;
        gap:20px;
    }
    .ve-panel-heading h2 { margin:0; font-size:17px; letter-spacing:-.025em; }
    .ve-panel-heading span { display:block; margin-top:3px; color:var(--ve-muted); font-size:12px; }
    .ve-select-button {
        border:1px solid var(--ve-line); background:#FAFAFA; border-radius:10px;
        padding:8px 11px; font-size:12px; color:var(--ve-text);
    }
    .ve-bar-chart {
        display:grid;
        grid-template-columns:58px minmax(0,1fr);
        grid-template-rows:180px 24px;
        margin-top:16px;
        position:relative;
    }
    .ve-y-labels { display:flex; flex-direction:column; justify-content:space-between; padding-bottom:20px; color:#8A8A8F; font-size:10px; text-align:right; padding-right:8px; }
    .ve-chart-area { position:relative; min-width:0; }
    .ve-chart-grid {
        position:absolute; inset:0 0 22px 0;
        background:repeating-linear-gradient(to bottom, #F0F0F2 0, #F0F0F2 1px, transparent 1px, transparent 25%);
    }
    .ve-bars { position:absolute; inset:0 8px 0 8px; display:flex; align-items:flex-end; justify-content:space-around; gap:16px; }
    .ve-week { height:100%; display:flex; align-items:flex-end; justify-content:center; gap:4px; position:relative; flex:1; }
    .ve-week i { display:block; width:16px; max-width:35%; min-height:3px; border-radius:4px 4px 0 0; }
    .ve-week .income { background:#45C98A; }
    .ve-week .expense { background:#FF7774; }
    .ve-week small { position:absolute; bottom:-19px; color:#8A8A8F; font-size:10px; white-space:nowrap; }
    .ve-chart-legend { grid-column:2; display:flex; gap:20px; justify-content:flex-end; padding-top:5px; font-size:11px; color:#707075; }
    .ve-chart-legend span { display:flex; align-items:center; gap:5px; }
    .income-dot,.expense-dot { width:8px; height:8px; border-radius:50%; display:inline-block; }
    .income-dot { background:#45C98A; } .expense-dot { background:#FF7774; }
    .ve-category-layout { display:grid; grid-template-columns:minmax(0,1fr) 190px; gap:20px; align-items:center; margin-top:14px; }
    .ve-category-list { display:grid; gap:8px; }
    .ve-category-list > div { display:grid; grid-template-columns:13px 1fr auto 42px; gap:8px; align-items:center; font-size:12px; }
    .ve-category-list strong { font-size:12px; font-weight:650; }
    .ve-category-list em { color:#7D7D82; font-style:normal; text-align:right; }
    .cat-dot { width:10px; height:10px; border-radius:3px; display:block; }
    .cat-mat{background:#45C98A}.cat-boende{background:#398CF5}.cat-bil{background:#FF4D4D}.cat-nojen{background:#FFC83D}.cat-hushall{background:#9254E8}.cat-ovrigt{background:#A5A7AB}
    .ve-donut {
        width:170px; aspect-ratio:1; border-radius:50%;
        background:conic-gradient(#45C98A 0 28%, #398CF5 28% 54%, #FF4D4D 54% 71%, #FFC83D 71% 81%, #9254E8 81% 88%, #A5A7AB 88% 100%);
        position:relative; display:grid; place-items:center; margin:auto;
    }
    .ve-donut::after { content:""; position:absolute; width:105px; height:105px; border-radius:50%; background:#fff; }
    .ve-donut > span { position:relative; z-index:1; text-align:center; }
    .ve-donut strong { display:block; font-size:15px; }
    .ve-donut small { display:block; margin-top:2px; color:#7D7D82; font-size:10px; }
    .ve-context-grid { display:grid; grid-template-columns:repeat(6, minmax(90px,1fr)); gap:8px; margin-top:14px; }
    .ve-context-grid > div, .ve-context-new {
        min-height:92px; border:1px solid var(--ve-line); border-radius:13px; background:#fff;
        padding:10px 7px; display:flex; flex-direction:column; align-items:center; justify-content:center;
        text-align:center;
    }
    .ve-context-grid span { font-size:19px; line-height:1; }
    .ve-context-grid strong { margin-top:6px; font-size:11px; }
    .ve-context-grid b { margin-top:5px; font-size:11px; }
    .ve-context-grid small { color:#85858A; font-size:9px; margin-top:2px; }
    .ve-context-new { border:0; color:var(--ve-blue); cursor:pointer; }
    .ve-context-new span { font-size:24px; }
    .ve-bottom-nav {
        position:fixed;
        left:50%;
        right:auto;
        bottom:0;
        transform:translateX(-50%);
        width:min(100%, 1500px);
        height:66px;
        background:rgba(255,255,255,.96);
        border-top:1px solid var(--ve-line);
    }
}

@media (min-width: 1250px) {
    .ve-topbar, .ve-content { padding-left:60px; padding-right:60px; }
    .ve-content { grid-template-columns:390px minmax(0,1fr); }
}

/* Receipt review from v0.1.4 */
.ve-receipt-review[hidden] { display:none; }
.ve-receipt-review { position:fixed; inset:0; z-index:130; background:#F7F7F8; }
.ve-review-backdrop { position:absolute; inset:0; background:rgba(0,0,0,.25); }
.ve-review-panel { position:absolute; inset:0; display:flex; flex-direction:column; background:#F7F7F8; }
.ve-review-header { flex:0 0 auto; display:flex; justify-content:space-between; align-items:center; padding:14px 16px; padding-top:max(14px,env(safe-area-inset-top)); background:#fff; border-bottom:1px solid var(--ve-line); }
.ve-review-header button { border:0; background:none; color:var(--ve-blue); font-weight:600; }
.ve-review-body { overflow:auto; padding:16px 16px 120px; }
.ve-receipt-image-wrap { width:100%; max-width:520px; margin:0 auto 14px; background:#fff; border:1px solid var(--ve-line); border-radius:18px; overflow:hidden; text-align:center; }
.ve-receipt-image-wrap img { display:block; width:100%; max-height:46vh; object-fit:contain; background:#eee; }
.ve-review-summary { background:#fff; border:1px solid var(--ve-line); border-radius:18px; padding:15px; }
.ve-review-summary label { display:block; color:var(--ve-muted); font-size:12px; font-weight:600; }
.ve-review-summary input { display:block; width:100%; margin-top:5px; min-height:44px; border:1px solid #D9D9DE; border-radius:12px; padding:0 12px; font:inherit; color:var(--ve-text); background:#fff; }
.ve-review-two { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin-top:10px; }
.ve-review-note { display:flex; flex-direction:column; gap:4px; margin:12px 2px; padding:12px 14px; border-radius:14px; background:var(--ve-blue-soft); color:#274E73; font-size:12px; line-height:1.4; }
.ve-review-note strong { color:var(--ve-text); }
.ve-items-empty { margin-top:12px; padding:18px; border:1px dashed #CFCFD4; border-radius:16px; background:#fff; text-align:center; }
.ve-items-empty strong { display:block; font-size:14px; }
.ve-items-empty span { display:block; margin-top:5px; color:var(--ve-muted); font-size:12px; line-height:1.45; }
.ve-review-footer { position:absolute; bottom:0; left:0; right:0; display:grid; grid-template-columns:1fr 1.5fr; gap:10px; padding:10px 16px max(10px,env(safe-area-inset-bottom)); background:rgba(255,255,255,.96); border-top:1px solid var(--ve-line); backdrop-filter:blur(12px); }
.ve-review-footer button { min-height:52px; border-radius:15px; font-weight:700; }
.ve-review-secondary { background:#fff; border:1px solid var(--ve-line); color:var(--ve-text); }
.ve-review-primary { background:var(--ve-blue); color:#fff; border:0; }
@media (min-width:700px) { .ve-review-panel { max-width:760px; margin:auto; border-left:1px solid var(--ve-line); border-right:1px solid var(--ve-line); } }

/* Actions open from the persistent plus button on desktop and mobile. */
.ve-quick-menu[hidden] { display:none; }
.ve-quick-menu {
    position:fixed; z-index:125; left:50%; bottom:86px; transform:translateX(-50%);
    width:min(340px, calc(100vw - 28px)); padding:8px; display:grid; gap:4px;
    border:1px solid var(--ve-line); border-radius:18px; background:rgba(255,255,255,.98);
    box-shadow:0 12px 38px rgba(0,0,0,.18); backdrop-filter:blur(14px);
}
.ve-quick-menu button {
    min-height:48px; display:flex; align-items:center; gap:12px; padding:0 13px;
    border:0; border-radius:12px; background:transparent; color:var(--ve-text);
    text-align:left; cursor:pointer; font-size:14px;
}
.ve-quick-menu button:hover, .ve-quick-menu button:focus-visible { background:var(--ve-blue-soft); outline:none; }
.ve-quick-menu button span { width:22px; color:var(--ve-blue); font-size:18px; text-align:center; }
.ve-items-heading { display:block; margin:18px 2px 8px; font-size:14px; }
.ve-item-row { display:grid; grid-template-columns:minmax(0,1fr) 82px 112px; gap:8px; margin-top:8px; padding:12px; border:1px solid var(--ve-line); border-radius:14px; background:#fff; }
.ve-item-row label { color:var(--ve-muted); font-size:11px; font-weight:600; }
.ve-item-row input { display:block; width:100%; min-width:0; min-height:40px; margin-top:4px; padding:0 8px; border:1px solid #D9D9DE; border-radius:9px; color:var(--ve-text); background:#fff; font:inherit; font-size:13px; }
.ve-item-row select { display:block; width:100%; min-width:0; min-height:40px; margin-top:4px; padding:0 8px; border:1px solid #D9D9DE; border-radius:9px; color:var(--ve-text); background:#fff; font:inherit; font-size:13px; }
.ve-item-category-label { grid-column:1 / -1; }
.ve-item-suggestion { grid-column:1 / -1; color:var(--ve-muted); font-size:11px; }
.ve-item-needs-review { border-color:#f0b44d; background:#fffaf0; }
.ve-item-source { grid-column:1 / -1; color:#6f7480; font-size:11px; overflow-wrap:anywhere; }
.ve-item-review-flag { grid-column:1 / -1; color:#8a4b00; font-size:11px; font-weight:700; }
.ve-transaction-list { min-height:142px; padding:12px 14px; border:1px solid var(--ve-line); border-radius:16px; background:#fff; }
.ve-transaction-row { display:flex; justify-content:space-between; align-items:center; gap:12px; padding:12px 2px; border-bottom:1px solid var(--ve-line); }
.ve-transaction-row:last-child { border-bottom:0; }
.ve-transaction-row strong { display:block; color:var(--ve-text); font-size:14px; }
.ve-transaction-row small { display:block; margin-top:3px; color:var(--ve-muted); font-size:11px; }
.ve-transaction-row b { flex:0 0 auto; color:var(--ve-text); font-size:14px; }
.ve-chart-empty { position:absolute; inset:0; display:grid; place-items:center; color:var(--ve-muted); font-size:13px; text-align:center; }
.ve-category-list > .ve-category-empty { display:block; grid-column:1 / -1; padding:18px 0; color:var(--ve-muted); font-size:12px; }
.ve-context-empty { grid-column:1 / -1; display:grid; place-items:center; min-height:92px; color:var(--ve-muted); font-size:12px; text-align:center; }
.ve-review-summary select { display:block; width:100%; min-height:44px; margin-top:5px; border:1px solid #D9D9DE; border-radius:12px; padding:0 12px; font:inherit; color:var(--ve-text); background:#fff; }
.ve-context-select-label { margin-top:10px; }
.ve-context-dialog[hidden] { display:none; }
.ve-context-dialog { position:fixed; inset:0; z-index:150; display:grid; place-items:center; padding:20px; }
.ve-context-dialog-backdrop { position:absolute; inset:0; background:rgba(0,0,0,.38); }
.ve-context-dialog-card { position:relative; width:min(100%, 440px); padding:26px; border-radius:22px; background:#fff; box-shadow:0 18px 60px rgba(0,0,0,.22); }
.ve-context-dialog-card h2 { margin:0; font-size:20px; }
.ve-context-dialog-card p { margin:8px 0 18px; color:var(--ve-muted); font-size:13px; line-height:1.45; }
.ve-context-dialog-card label { display:block; color:var(--ve-muted); font-size:12px; font-weight:600; }
.ve-context-dialog-card input { display:block; width:100%; height:46px; margin-top:6px; padding:0 12px; border:1px solid var(--ve-line); border-radius:12px; font:inherit; }
.ve-context-dialog-close { position:absolute; top:10px; right:13px; border:0; background:transparent; color:var(--ve-muted); font-size:26px; cursor:pointer; }
.ve-context-dialog-actions { display:flex; justify-content:flex-end; gap:8px; margin-top:20px; }
.ve-context-dialog-actions button { min-height:42px; padding:0 14px; border:1px solid var(--ve-line); border-radius:11px; background:#fff; color:var(--ve-text); font:inherit; cursor:pointer; }
.ve-context-dialog-actions button[type="submit"] { border-color:var(--ve-blue); background:var(--ve-blue); color:#fff; }
.ve-context-dialog-actions button:disabled { opacity:.6; cursor:wait; }
.ve-context-form-error { color:#B42318 !important; }
.ve-transaction-context { color:var(--ve-blue) !important; }
.ve-bank-dialog[hidden] { display:none; }
.ve-bank-dialog { position:fixed; inset:0; z-index:160; display:grid; place-items:center; padding:18px; }
.ve-bank-backdrop { position:absolute; inset:0; background:rgba(0,0,0,.42); }
.ve-bank-card { position:relative; width:min(100%, 860px); max-height:min(92vh, 900px); display:flex; flex-direction:column; overflow:hidden; border-radius:20px; background:#fff; box-shadow:0 18px 60px rgba(0,0,0,.24); }
.ve-bank-card > header { flex:0 0 auto; display:grid; grid-template-columns:1fr auto 1fr; align-items:center; padding:16px 20px; border-bottom:1px solid var(--ve-line); }
.ve-bank-card > header button { justify-self:start; border:0; background:none; color:var(--ve-blue); font:inherit; cursor:pointer; }
.ve-bank-card > p { margin:12px 20px; color:var(--ve-muted); font-size:13px; }
.ve-bank-filename { font-weight:600; }
.ve-bank-mapping { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; padding:0 20px 14px; }
.ve-bank-mapping label { color:var(--ve-muted); font-size:11px; font-weight:600; }
.ve-bank-mapping select { width:100%; min-height:40px; margin-top:5px; padding:0 8px; border:1px solid var(--ve-line); border-radius:10px; background:#fff; color:var(--ve-text); font:inherit; font-size:12px; }
.ve-bank-preview { min-height:90px; overflow:auto; padding:0 20px; }
.ve-bank-preview table { width:100%; border-collapse:collapse; font-size:12px; }
.ve-bank-preview th,.ve-bank-preview td { padding:9px 8px; border-bottom:1px solid var(--ve-line); text-align:left; white-space:nowrap; }
.ve-bank-preview th { position:sticky; top:0; background:#F7F7F8; }
.ve-bank-preview td:last-child,.ve-bank-preview th:last-child { text-align:right; }
.ve-bank-status { min-height:18px; }
.ve-bank-card > footer { display:flex; justify-content:flex-end; gap:9px; padding:12px 20px max(12px, env(safe-area-inset-bottom)); border-top:1px solid var(--ve-line); }
.ve-bank-card > footer button { min-height:44px; padding:0 16px; border:1px solid var(--ve-line); border-radius:12px; background:#fff; color:var(--ve-text); font:inherit; cursor:pointer; }
.ve-bank-card > footer button[data-ve-action="import-bank"] { border-color:var(--ve-blue); background:var(--ve-blue); color:#fff; }
.ve-bank-card > footer button:disabled { opacity:.48; cursor:not-allowed; }
@media (max-width:640px) {
    .ve-bank-dialog { padding:8px; }
    .ve-bank-card { max-height:96vh; }
    .ve-bank-mapping { grid-template-columns:repeat(2,minmax(0,1fr)); padding-left:14px; padding-right:14px; }
    .ve-bank-preview { padding:0 14px; }
    .ve-bank-card > header { padding-left:14px; padding-right:14px; }
    .ve-bank-preview th,.ve-bank-preview td { padding:8px 5px; }
}
@media (max-width:480px) { .ve-item-row { grid-template-columns:minmax(0,1fr) 68px 92px; gap:6px; padding:9px; } }
