/* Noto Sans v42, self-hosted. Source: Google Fonts; license: ../fonts/OFL-NotoSans.txt. */
@font-face { font-family: "Noto Sans"; font-style: normal; font-weight: 400 800; font-display: swap; src: url("../fonts/noto-sans-greek-ext-v42.woff2") format("woff2"); unicode-range: U+1F00-1FFF; }
@font-face { font-family: "Noto Sans"; font-style: normal; font-weight: 400 800; font-display: swap; src: url("../fonts/noto-sans-greek-v42.woff2") format("woff2"); unicode-range: U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF; }
@font-face { font-family: "Noto Sans"; font-style: normal; font-weight: 400 800; font-display: swap; src: url("../fonts/noto-sans-latin-v42.woff2") format("woff2"); unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD; }
/* Add/import: a focused mobile form, with batch entry available on larger screens. */
#view-import { gap: 18px; font-family: "Noto Sans", system-ui, sans-serif; color-scheme: light; }
.entry-heading { display: flex; align-items: center; justify-content: space-between; gap: 16px; padding: 4px 2px 0; }
.entry-heading h2 { margin: 0; font-size: 28px; line-height: 1.15; letter-spacing: -.035em; font-weight: 750; }
.entry-heading p:last-child { margin: 8px 0 0; font-size: 13px; color: var(--muted); }
.entry-modes { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 4px; padding: 5px; background: var(--bg-elev2); border: 1px solid var(--line); border-radius: 16px; }
.entry-modes button { display: flex; align-items: center; justify-content: center; gap: 7px; min-height: 44px; padding: 9px 8px; border-radius: 11px; background: transparent; color: var(--muted); font-size: 14px; font-weight: 650; white-space: nowrap; }
.entry-modes button[aria-selected="true"] { background: var(--bg-elev); color: var(--accent); box-shadow: 0 2px 7px rgba(20,40,35,.07); }
#view-import svg { flex: 0 0 auto; width: 19px; height: 19px; }
#view-import button:focus-visible, #view-import textarea:focus-visible, #view-import .file-drop:focus-within { outline: 3px solid var(--accent); outline-offset: 3px; }
#view-import .entry-panel { padding: 24px; border-radius: 22px; box-shadow: 0 3px 16px rgba(20,40,35,.035); }
.entry-panel h3 { margin: 0 0 8px; font-size: 21px; line-height: 1.3; letter-spacing: -.025em; }
.entry-panel-lead { margin: 0 0 24px; color: var(--muted); font-size: 14px; line-height: 1.6; }
.entry-feature-icon { display: grid; place-items: center; width: 44px; height: 44px; border-radius: 14px; color: var(--accent); background: var(--accent-soft); margin-bottom: 18px; }
.entry-desktop-intro p { margin: 0; font-size: 13px; }
#view-import .batch-grid { min-width: 790px; }
#view-import .batch-head, #view-import .batch-row { grid-template-columns: 100px 98px minmax(130px, 1fr) 140px 140px 130px 34px; }
.b-field { min-width: 0; }
.b-currency, .b-type-buttons, .b-row-heading, .b-field-error { display: none; }
.b-amount-wrap { display: block; min-width: 0; }
.b-field:has([aria-invalid="true"]) .b-field-error { display: block; color: var(--danger); font-size: 12px; line-height: 1.4; padding-top: 5px; }
#view-import [aria-invalid="true"] { border-color: var(--danger); }
.entry-category-hint { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.5; }
#view-import .batch-actions button { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; font-size: 14px; }
#view-import #saveBatchBtn { background: #0f7659; color: #fff; box-shadow: 0 4px 12px rgba(15,118,89,.12); }
#view-import #saveBatchBtn:hover:not(:disabled) { background: #0b6048; }
#view-import .entry-feedback { padding: 10px 12px; border-radius: 10px; margin: 0 0 10px; background: var(--accent-soft); color: var(--text); font-size: 13px; line-height: 1.45; }
#view-import .entry-feedback[data-status="error"] { background: color-mix(in srgb, var(--danger) 10%, var(--bg-elev)); }
#view-import .quick-form { display: flex; flex-direction: column; gap: 12px; margin: 0; }
.entry-input-label { color: var(--text); font-size: 13px; font-weight: 650; }
#view-import textarea { resize: vertical; width: 100%; min-height: 120px; border: 1px solid var(--line); border-radius: 14px; padding: 14px; font: inherit; font-size: 16px; line-height: 1.6; background: var(--bg-elev2); color: var(--text); }
#view-import textarea::placeholder { color: var(--muted); opacity: 1; }
#view-import #quickBtn, #view-import #importBtn { display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 48px; background: #0f7659; color: #fff; }
.entry-examples { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 8px; }
.entry-examples button { background: var(--bg-elev); color: var(--muted); border: 1px solid var(--line); border-radius: 999px; font-size: 12px; min-height: 36px; padding: 8px 12px; }
.entry-review-note { display: flex; align-items: flex-start; gap: 7px; color: var(--muted); font-size: 12px; line-height: 1.5; margin: 16px 0 0; }
.entry-review-note svg { color: var(--accent); }
#view-import .file-drop { position: relative; display: flex; align-items: center; justify-content: center; flex-direction: column; gap: 10px; min-height: 172px; padding: 24px 12px; border: 1.5px dashed var(--accent); border-radius: 16px; background: color-mix(in srgb, var(--accent-soft) 45%, var(--bg-elev)); color: var(--accent); font-size: 15px; font-weight: 650; text-align: center; }
#view-import .file-drop > svg { width: 28px; height: 28px; }
#view-import .file-drop small { font-size: 12px; color: var(--muted); font-weight: 400; }
#view-import .entry-file-input { position: absolute; inset: 0; opacity: 0; width: 100%; height: 100%; cursor: pointer; }
.entry-excel { margin-top: 24px; padding-top: 20px; border-top: 1px solid var(--line); }
#view-import #pasteToggle { display: flex; align-items: center; gap: 9px; min-height: 48px; padding: 12px; font-size: 14px; text-align: left; }
.entry-chevron { margin-left: auto; transition: transform .15s; }
#pasteToggle[aria-expanded="true"] .entry-chevron { transform: rotate(180deg); }
#view-import .import-acct { align-items: stretch; flex-direction: column; }
#view-import .import-acct select { min-width: 0; width: 100%; min-height: 48px; font-size: 16px; }
#view-import .paste-actions button { min-height: 44px; font-size: 13px; }
[data-theme="dark"] #view-import, [data-theme="aurora"] #view-import { color-scheme: dark; }
@media (min-width: 768px) {
  .b-label { position: absolute; width: 1px; height: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
  .entry-heading { display: none; }
  .entry-modes { max-width: 470px; }
  #view-import .entry-panel { min-width: 0; }
  #view-import #entryAi, #view-import #entryFile { max-width: 760px; }
  #view-import .b-del { min-height: 38px; }
}
@media (max-width: 767px) {
  #view-import { padding-bottom: 94px; gap: 16px; }
  #view-import .entry-panel { padding: 18px; border-radius: 20px; }
  #view-import .manual-card { padding: 0; border: 0; background: transparent; box-shadow: none; gap: 12px; }
  .entry-desktop-intro, .entry-desktop-default { display: none; }
  #view-import .batch-scroll { overflow: visible; }
  #view-import .batch-grid { min-width: 0; }
  #view-import .batch-head { display: none; }
  #view-import #batchRows { gap: 16px; }
  #view-import .batch-row { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); grid-template-areas: "heading delete" "kind kind" "amount amount" "description description" "date category" "account account"; gap: 12px; padding: 18px; border: 1px solid var(--line); border-radius: 22px; background: var(--bg-elev); box-shadow: 0 3px 16px rgba(20,40,35,.035); }
  #view-import .batch-row:only-child { grid-template-areas: "kind kind" "amount amount" "description description" "date category" "account account"; }
  .b-row-heading { display: block; grid-area: heading; margin: 0; align-self: center; font-size: 12px; font-weight: 650; color: var(--muted); }
  .batch-row:only-child .b-row-heading, #view-import .batch-row:only-child .b-del { display: none; }
  #view-import .b-direction-field { grid-area: kind; }
  #view-import .b-dir { display: none; }
  .b-type-buttons { display: grid; grid-template-columns: 1fr 1fr; padding: 4px; gap: 4px; border-radius: 13px; background: var(--bg-elev2); }
  .b-type-buttons button { display: flex; align-items: center; justify-content: center; gap: 6px; min-height: 44px; border-radius: 10px; background: transparent; color: var(--muted); font-size: 14px; padding: 7px; }
  .b-type-buttons button[aria-pressed="true"] { background: var(--bg-elev); color: var(--text); box-shadow: 0 2px 5px rgba(20,40,35,.06); }
  .b-type-buttons button[data-direction="credit"][aria-pressed="true"] { color: var(--accent); }
  #view-import .b-amount-field { grid-area: amount; padding: 2px 0 12px; text-align: center; border-bottom: 1px solid var(--line); }
  .b-label { display: block; margin-bottom: 7px; color: var(--muted); font-size: 12px; line-height: 1.3; font-weight: 550; }
  .b-direction-field > .b-label { display: none; }
  .b-amount-wrap { display: flex; align-items: baseline; justify-content: center; gap: 5px; }
  .b-currency { display: block; color: var(--muted); font-size: 26px; font-weight: 500; }
  #view-import .batch-row .b-amount { width: calc(var(--entry-amount-ch, 4) * 1ch); max-width: calc(100% - 30px); padding: 0; border: 0; border-radius: 4px; background: transparent; box-shadow: none; text-align: right; font-size: 40px; line-height: 1.15; font-weight: 650; font-variant-numeric: tabular-nums; letter-spacing: -.04em; }
  #view-import .batch-row .b-amount::placeholder { color: var(--muted); opacity: 1; }
  #view-import .batch-row .b-amount:focus { outline: 2px solid var(--accent); outline-offset: 4px; }
  #view-import .batch-row[data-direction="credit"] .b-amount { color: var(--accent); }
  .b-description-field { grid-area: description; }
  .b-date-field { grid-area: date; }
  .b-account-field { grid-area: account; }
  .b-category-field { grid-area: category; }
  #view-import .b-field input:not(.b-amount), #view-import .b-field select:not(.b-dir) { display: block; width: 100%; min-width: 0; min-height: 48px; padding: 11px; border-radius: 12px; font-size: 16px; line-height: 1.4; background: var(--bg-elev); box-shadow: none; }
  #view-import input[type="date"] { appearance: none; -webkit-appearance: none; }
  #view-import input[type="date"]::-webkit-date-and-time-value { text-align: left; }
  #view-import .b-del { grid-area: delete; justify-self: end; min-height: 44px; width: 44px; padding: 8px; border-radius: 12px; }
  .entry-category-hint { padding: 0 4px; }
  #view-import .entry-save-bar { position: fixed; z-index: 12; left: 0; right: 0; bottom: calc(var(--entry-nav-height, 60px) + var(--entry-keyboard-gap, 0px)); padding: 12px 16px; background: var(--bg-elev); border-top: 1px solid var(--line); box-shadow: 0 -4px 18px rgba(20,40,35,.035); }
  #view-import .batch-actions { max-width: 728px; margin: 0 auto; gap: 10px; }
  #view-import .batch-actions button { min-height: 48px; border-radius: 13px; padding: 12px; }
  #view-import #addRowBtn { flex: 0 0 auto; background: transparent; color: var(--muted); border: 1px solid var(--line); }
  #view-import #saveBatchBtn { flex: 1; min-width: 0; }
  #view-import .entry-feedback { max-width: 728px; margin: 0 auto 10px; }
  #view-import .batch-row input, #view-import .batch-row select { scroll-margin: 140px 0 180px; }
  #view-import .qr-actions { flex-wrap: wrap; }
}
@media (max-width: 359px) {
  #view-import .batch-row { grid-template-areas: "heading delete" "kind kind" "amount amount" "description description" "date date" "category category" "account account"; }
  #view-import .batch-row:only-child { grid-template-areas: "kind kind" "amount amount" "description description" "date date" "category category" "account account"; }
  #view-import .batch-row { padding: 16px; gap: 14px 8px; }
  #view-import .batch-actions button { font-size: 12px; padding: 10px; gap: 5px; }
  #view-import .b-date-field, #view-import .b-account-field { min-width: 0; }
  #view-import .b-field input:not(.b-amount), #view-import .b-field select:not(.b-dir) { padding: 9px 7px; font-size: 16px; }
}
