/* Teendőközpontú ügyfélportál. A meglévő modulok közös felületi rétege. */
:root { --portal-sidebar:224px; --portal-nav-height:76px; }
:root:not([data-theme="dark"]) { --p:#0f766e; }
html { scroll-padding-top:100px; }
body { line-height:1.5; }
button,input,select,textarea { font:inherit; }
button { touch-action:manipulation; }
button:focus-visible,summary:focus-visible,a:focus-visible { outline:3px solid var(--p); outline-offset:3px; }
[hidden] { display:none!important; }
.portal-icon { width:21px;height:21px;display:inline-block;vertical-align:middle;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round; }
.sr-only { position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0; }
.topbar { min-height:76px;padding:12px 28px;gap:16px; }
.portal-brand { display:flex;align-items:center;gap:9px;background:transparent;border:0;color:var(--text);font-size:21px;font-weight:800;letter-spacing:-.8px;cursor:pointer; }
.portal-brand-mark { width:32px;height:32px;flex-shrink:0;color:#0b1a33; }
[data-theme="dark"] .portal-brand-mark { color:#fff; }
.portal-icon-btn { min-width:44px;min-height:44px;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px; }
.portal-user { max-width:240px;overflow-wrap:anywhere; }
.firm-lbl { overflow-wrap:anywhere; }
#company-switcher { max-width:min(40vw,420px);min-height:44px;font-size:14px; }
.portal-nav { position:fixed;top:var(--portal-header-height,76px);bottom:0;left:0;width:var(--portal-sidebar);padding:24px 16px;border-right:1px solid var(--border);background:var(--bg2);z-index:15;display:flex;flex-direction:column;gap:6px; }
.portal-nav button { display:flex;align-items:center;gap:12px;min-height:48px;padding:12px 16px;width:100%;border:0;border-radius:12px;background:transparent;color:var(--text2);text-align:left;font-family:inherit;font-size:15px;cursor:pointer; }
.portal-nav button:hover { background:var(--bg3); }
.portal-nav button[aria-current="page"] { background:var(--info-bg);color:var(--info-text);font-weight:600; }
.portal-nav-caption { font-size:11px;letter-spacing:.09em;text-transform:uppercase;color:var(--text3);margin:0 16px 12px; }
#view-app>.wrap { margin-left:var(--portal-sidebar);max-width:1320px;padding:32px clamp(24px,4vw,64px); }
.portal-page-head { margin-bottom:24px; }
.portal-page-head h1 { font-size:30px;line-height:1.2;font-weight:600;letter-spacing:-.7px;overflow-wrap:anywhere; }
.portal-page-head p { color:var(--text2);font-size:15px;margin-top:7px; }
.portal-eyebrow { font-size:11px;letter-spacing:.1em;color:var(--text3);text-transform:uppercase;margin-bottom:6px; }
.portal-home-grid { display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:24px;align-items:start; }
.portal-home-grid>* { min-width:0; }
.hero { border-radius:16px;padding:24px;margin:0; }
.hero::before { display:none; }
.hero-grid { display:block; }
.hero-lbl { font-size:14px;letter-spacing:0;text-transform:none;font-weight:500;line-height:1.5; }
.hero-amt-empty { font-size:22px!important;letter-spacing:0!important;color:var(--text2)!important; }
.hero-amt { font-family:var(--font);font-size:42px;font-weight:600;letter-spacing:-1px;margin:16px 0 8px;overflow-wrap:anywhere; }
.hero-due { font-size:14px;line-height:1.6; }
.hero .portal-pay-button { margin-top:20px;display:flex;align-items:center;justify-content:space-between;width:100%; }
.portal-section-title { font-size:17px;font-weight:600;margin-bottom:10px; }
.portal-actions { padding:0 0 8px; }
.portal-action { display:flex;align-items:center;gap:14px;min-height:76px;padding:14px 0;width:100%;border:0;border-bottom:1px solid var(--border);background:transparent;color:var(--text);text-align:left;cursor:pointer; }
.portal-action-icon { width:42px;height:42px;display:grid;place-items:center;flex-shrink:0;border-radius:12px;background:var(--info-bg);color:var(--info-text); }
.portal-action-copy { flex:1;min-width:0; }
.portal-action-copy strong { display:block;font-size:16px;font-weight:500;overflow-wrap:anywhere; }
.portal-action-copy small { display:block;font-size:13px;color:var(--text2);margin-top:3px;line-height:1.5; }
.portal-action>.portal-icon { color:var(--text3); }
#ov-bank-card,#files-upload-box,#editor-steps { scroll-margin-top:150px; }
.portal-progress { grid-column:1/-1;padding:24px 0 0;border-top:1px solid var(--border); }
.portal-progress .hero-chip { background:transparent;padding:0;font-size:14px;gap:10px; }
.portal-progress .hero-prog { max-width:600px; }
.portal-bank-followup { display:flex;align-items:center;gap:10px;text-align:left;margin-top:14px;min-height:44px;border:0;background:transparent;color:var(--text2);font:inherit;font-size:13px;cursor:pointer; }
.portal-progress .hero-prog>div:first-child { font-size:14px!important; }
.hero-prog-bar { height:7px;margin-top:10px; }
.portal-shortcuts { display:flex;flex-wrap:wrap;gap:12px;margin-top:20px; }
.portal-shortcuts .btn { background:transparent; }
.card { box-shadow:none; }
.card:hover { box-shadow:none; }
.ctitle { font-size:17px;gap:12px; }
.ctitle>span:first-child { display:inline-flex;align-items:center;gap:10px; }
.btn { min-height:44px;font-size:14px;padding:10px 16px;display:inline-flex;align-items:center;justify-content:center;gap:8px;line-height:1.4; }
.btn-sm { min-height:40px;font-size:13px;padding:8px 12px; }
.btn-p:hover { color:var(--on-p); }
.badge { font-size:11px;white-space:normal; }
.empty { font-size:14px;line-height:1.6; }
.portal-invoice-nav { display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px; }
.portal-invoice-nav .tab-btn { min-height:44px;font-size:14px;padding:10px 16px;border-radius:10px; }
.portal-more-grid { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:32px; }
.portal-more-grid .portal-action { align-self:start; }
.portal-more-account { margin-top:32px;border-top:1px solid var(--border);padding-top:24px; }
.portal-upload-actions { display:flex;flex-wrap:wrap;gap:10px;margin:16px 0; }
.portal-help { font-size:14px;color:var(--text2);line-height:1.6; }
#client-upload-msg,#bank-upload-msg { display:block;font-size:14px;margin:12px 0 0!important;overflow-wrap:anywhere; }
.portal-file-tabs { display:flex;flex-wrap:wrap;gap:8px;margin:20px 0 16px; }
.portal-file-tabs .stab { min-height:44px;padding:10px 14px;font-size:13px;border-radius:10px; }
.portal-copy-row { display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:10px; }
.portal-copy-row code { overflow-wrap:anywhere;flex:1;font-size:13px; }
.pay-details { font-size:14px;margin-top:8px; }
.pay-details summary { display:inline-flex;align-items:center;min-height:44px;font-size:14px;color:var(--p);padding:8px 0; }
.pay-iban { font-size:14px; }
.portal-payment-row { padding:20px 0!important;gap:16px; }
.portal-payment-row>span:first-child { flex:1; }
.portal-payment-total { margin-bottom:20px;font-size:16px; }
.portal-payment-total strong { font-size:22px;font-variant-numeric:tabular-nums; }
.portal-feedback { white-space:pre-line;cursor:pointer;position:fixed;left:50%;bottom:24px;transform:translateX(-50%);z-index:250;background:var(--text);color:var(--bg2);padding:12px 20px;border-radius:12px;font-size:14px;max-width:calc(100% - 32px);box-shadow:var(--card-shadow); }
.invoice-table-wrap { overflow-x:auto; }
.invoice-table { min-width:760px; }
.invoice-table td { padding:14px 8px; }
.invoice-receipts { display:flex;flex-direction:column;font-size:12px;margin-top:5px;overflow-wrap:anywhere;color:var(--text2); }
.invoice-receipt-void { color:var(--text3); }
.invoice-list-tools { display:inline-flex!important;align-items:center;gap:6px; }
.invoice-icon-btn { min-width:40px;padding:8px;color:var(--text2);background:transparent;border-color:transparent; }
.invoice-icon-btn:hover { color:var(--text);background:var(--bg3); }
.invoice-more.invoice-tools-menu>summary::after { display:none; }
.invoice-icon-btn[aria-busy="true"] .portal-icon { animation:invoice-spin 1s linear infinite; }
@keyframes invoice-spin { to { transform:rotate(360deg); } }
.invoice-tools-menu .invoice-more-list { right:0;left:auto;min-width:220px; }
.invoice-filters { display:flex;align-items:flex-end;flex-wrap:wrap;gap:12px 24px;margin-bottom:16px; }
.invoice-month-field { width:220px; }
.invoice-month-field select { min-height:40px; }
.invoice-chips { display:flex;flex-wrap:wrap;gap:8px; }
.invoice-filter-scroll { display:flex;align-items:flex-end;flex-wrap:wrap;gap:12px 24px;min-width:0; }
.invoice-filters>.invoice-list-tools { margin-left:auto; }
.invoice-chip { display:inline-flex;align-items:center;gap:8px;min-height:40px;padding:8px 14px;border:1px solid var(--border);border-radius:999px;background:var(--bg2);color:var(--text2);font-size:14px;cursor:pointer; }
.invoice-chip:hover { background:var(--bg3);color:var(--text); }
.invoice-chip[aria-pressed="true"] { background:var(--info-bg);border-color:var(--p);color:var(--info-text);font-weight:600; }
.invoice-chip-count { font-family:var(--font-mono);font-size:12px;opacity:.8; }
.invoice-chip.is-alert .invoice-chip-count { color:var(--red);opacity:1;font-weight:600; }
.invoice-ar { display:grid;grid-template-columns:repeat(2,minmax(0,1fr)) minmax(0,2fr);gap:16px;margin-bottom:16px;padding:16px;border-radius:12px;background:var(--bg3); }
.invoice-ar-stat { display:flex;flex-direction:column;gap:2px;min-width:0; }
.invoice-ar-stat span,.invoice-ar-top>span { font-size:12px;letter-spacing:.05em;text-transform:uppercase;color:var(--text2); }
.invoice-ar-stat strong { font-family:var(--font-mono);font-size:20px;font-weight:600;font-variant-numeric:tabular-nums;overflow-wrap:anywhere; }
.invoice-ar-stat small { font-size:13px;color:var(--text2); }
.invoice-ar-stat.is-alert strong { color:var(--red); }
.invoice-ar-top { min-width:0; }
.invoice-ar-top ol { list-style:none;margin-top:4px; }
.invoice-ar-top li { display:flex;justify-content:space-between;gap:12px;font-size:13px;padding:2px 0; }
.invoice-ar-top li span:first-child { overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0; }
.invoice-ar-top li .num { white-space:nowrap;font-family:var(--font-mono);font-size:12.5px; }
.invoice-month-row th { padding:20px 8px 8px;font-size:12px;letter-spacing:.05em;text-transform:uppercase;color:var(--text2);border-bottom:1px solid var(--border); }
.invoice-month-sum { float:right;font-family:var(--font-mono);text-transform:none;letter-spacing:0;font-weight:500; }
.invoice-dates { white-space:nowrap; }
.invoice-partner .portal-help,.invoice-partner .invoice-error { font-weight:400; }
.invoice-dates small,.invoice-sent { display:block;font-weight:400;font-size:12.5px;color:var(--text2);margin-top:3px; }
.invoice-row.is-overdue .invoice-dates small { color:var(--red); }
.invoice-status .badge { margin:0 4px 4px 0; }
.invoice-pay { display:inline-flex;vertical-align:middle;align-items:center;gap:6px;margin:0 4px 4px 0;min-height:32px;padding:4px 10px 4px 8px;border:1px solid var(--border);border-radius:999px;background:transparent;color:var(--text2);font-size:12.5px;text-align:left;cursor:pointer; }
.invoice-pay .portal-icon { width:16px;height:16px; }
.invoice-pay:hover { background:var(--bg3); }
.invoice-pay.is-paid { color:var(--green);border-color:transparent;background:var(--green-bg); }
.invoice-pay.is-overdue { color:var(--red);border-color:var(--red-border);background:var(--red-bg); }
.invoice-actions { width:1%;white-space:nowrap; }
.invoice-actions-row { display:flex;align-items:center;justify-content:flex-end;gap:6px; }
.invoice-more { position:relative; }
/* Összecsukható kártya (pl. Legtöbbet vásárolt termékek): alapból zárva. */
.fold-card>summary { list-style:none;cursor:pointer;min-height:44px;margin-bottom:0;flex-wrap:nowrap; }
.fold-card>summary::-webkit-details-marker { display:none; }
.fold-card>summary>span { min-width:0;flex-wrap:wrap; }
.fold-card>summary::after { content:"";flex-shrink:0;width:8px;height:8px;margin-right:4px;border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;transform:rotate(-45deg);transition:transform .15s; }
.fold-card[open]>summary::after { transform:rotate(45deg); }
.fold-card[open]>summary { margin-bottom:12px; }
.invoice-more>summary { list-style:none; }
.invoice-more>summary::-webkit-details-marker { display:none; }
.invoice-more>summary::after { content:"";width:7px;height:7px;margin:-3px 2px 0 2px;border-right:1.6px solid currentColor;border-bottom:1.6px solid currentColor;transform:rotate(45deg); }
.invoice-more[open]>summary { background:var(--bg3); }
.invoice-more-list { position:absolute;right:0;top:calc(100% + 6px);z-index:60;min-width:240px;max-width:min(320px,calc(100vw - 16px));padding:6px;border:1px solid var(--border);border-radius:12px;background:var(--bg2);box-shadow:0 12px 32px rgba(0,0,0,.14);display:flex;flex-direction:column;white-space:normal; }
.invoice-more-item { display:block;width:100%;min-height:40px;padding:8px 12px;border:0;border-radius:8px;background:transparent;color:var(--text);font-size:14px;text-align:left;cursor:pointer; }
.invoice-more-item:hover,.invoice-more-item:focus-visible { background:var(--bg3); }
.invoice-more-item.is-danger { color:var(--red); }
.invoice-more-item:disabled { opacity:.5;cursor:not-allowed; }
.invoice-mstatus,.invoice-mdates { display:none; }
.invoice-open { all:unset;cursor:pointer;font-weight:600; }
.invoice-open:focus-visible { outline:3px solid var(--p);outline-offset:3px;border-radius:4px; }
.invdetail-partner { font-size:17px;font-weight:600;overflow-wrap:anywhere; }
.invdetail-partner small { display:block;font-size:13px;font-weight:400;color:var(--text2); }
.invdetail-total { font-family:var(--font-mono);font-size:26px;font-weight:600;margin:8px 0;font-variant-numeric:tabular-nums; }
.invdetail-total span { font-size:15px;color:var(--text2); }
.invdetail-status { margin-bottom:8px; }
#invdetail-body dl { margin:8px 0 16px; }
.invdetail-primary { display:flex; }
.invdetail-primary .btn { flex:1;min-height:48px; }
.invdetail-more { display:flex;flex-direction:column;margin-top:8px;border-top:1px solid var(--border);padding-top:4px; }
.invdetail-more .invoice-more-item { min-height:48px;border-bottom:1px solid var(--bg3);border-radius:0; }
.invoice-more-rows { display:flex;justify-content:center;margin-top:16px; }
.invoice-modal-title { font-size:17px;font-weight:600; }
.invoice-modal .portal-help { margin-bottom:12px; }
.invoice-modal-fields { margin-top:8px; }
.invoice-modal-actions { display:flex;flex-wrap:wrap;gap:8px;margin-top:8px; }
.invoice-modal .invoice-error:empty { display:none; }
.bulkpay-list { max-height:45vh;overflow-y:auto;margin:8px 0;border-top:1px solid var(--border); }
.bulkpay-row { display:flex;align-items:center;gap:12px;padding:10px 4px;border-bottom:1px solid var(--bg3);cursor:pointer; }
.bulkpay-row input { width:20px;height:20px;flex-shrink:0; }
.bulkpay-all { font-weight:600; }
.bulkpay-main { flex:1;min-width:0;overflow-wrap:anywhere; }
.bulkpay-main small { display:block;font-size:12.5px;color:var(--text2); }
.bulkpay-row .num { white-space:nowrap;font-family:var(--font-mono);font-size:13px; }
.invoice-log { list-style:none; }
.invoice-log li { display:flex;gap:12px;padding:10px 0;border-bottom:1px solid var(--bg3);font-size:14px; }
.invoice-log li>.portal-icon { width:18px;height:18px;margin-top:2px;color:var(--p); }
.invoice-log li>div { min-width:0;overflow-wrap:anywhere; }
.invoice-log small { display:block;font-size:12.5px;color:var(--text2); }
.invoice-log li.is-pending { color:var(--text2); }
.invoice-error { font-size:13px;color:var(--red);margin-top:8px;overflow-wrap:anywhere; }
.editor-steps { display:flex;gap:8px;margin-bottom:24px; }
.editor-steps button { flex:1;min-width:0;min-height:48px;border:1px solid var(--border);border-radius:10px;background:var(--bg2);color:var(--text2);font:inherit;font-size:14px;cursor:pointer; }
.editor-steps button[aria-current="step"] { background:var(--info-bg);border-color:var(--p);color:var(--info-text);font-weight:600; }
.editor-footer { position:sticky;bottom:0;z-index:12;background:var(--bg2);border:1px solid var(--border);border-radius:14px;padding:16px;display:flex;align-items:center;gap:10px;flex-wrap:wrap; }
.editor-footer .editor-footer-spacer { flex:1; }
.editor-footer small { color:var(--text2);font-size:13px; }
.editor-review-row { display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--border); }
.editor-review-row dt { color:var(--text2); }
.editor-review-row dd { text-align:right;overflow-wrap:anywhere;min-width:0; }
.editor-review-totals { white-space:pre-line;font-variant-numeric:tabular-nums;margin-top:16px; }
#editor-review .lines-tbl { margin-top:24px; }
.editor-review-totals div { gap:16px; }
.editor-options { display:flex;flex-direction:column;gap:16px;margin-top:16px; }
.editor-options label { display:flex;align-items:flex-start;gap:10px;font-size:14px;line-height:1.6; }
.editor-options input[type="checkbox"] { width:20px;height:20px;flex-shrink:0;margin-top:2px; }
#editor-warn { scroll-margin-top:110px; }
#tab-new .flex,#tab-new .ctitle { flex-wrap:wrap; }
#tab-new .lines-tbl input { min-width:0; }
.portal-login-brand { justify-content:center;margin-bottom:16px; }
@media(min-width:1500px) { #view-app>.wrap { margin-right:auto; } }
@media(min-width:701px) and (max-width:1000px) {
  :root { --portal-sidebar:190px; }
  .portal-home-grid { grid-template-columns:1fr; }
  .topbar { padding:12px 20px; }
  .portal-user { display:none; }
}
@media(max-width:700px) {
  html { scroll-padding-top:140px; }
  body { font-size:16px; }
  .topbar { padding:12px 16px;gap:10px;min-height:72px; }
  .portal-brand { font-size:18px; }
  .topbar .spacer { min-width:0; }
  #firm-lbl { order:5;flex-basis:100%;font-size:14px;padding-top:4px; }
  #firm-lbl:empty { display:none; }
  #company-switcher-wrap { order:5;flex-basis:100%; }
  #company-switcher { width:100%!important;max-width:100%;font-size:16px; }
  #view-app>.wrap { margin:0;padding:24px 16px calc(var(--portal-nav-height) + env(safe-area-inset-bottom) + 28px);max-width:none; }
  /* Mobilon a címsort az alsó menü és a fülsor már elmondja: a fejléc csak
     a felolvasóknak marad meg (fókuszcél is). Kivétel a szerkesztő, ahol a
     cím a szerkesztett számla számát mutatja – ott kicsiben látszik. */
  .portal-page-head { position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;margin:0; }
  .portal-page-head[data-tab="new"] { position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal;margin-bottom:12px; }
  .portal-page-head[data-tab="new"] h1 { font-size:20px;letter-spacing:-.3px; }
  .portal-page-head[data-tab="new"] p,.portal-page-head[data-tab="new"] .portal-eyebrow { display:none; }
  .portal-nav { top:auto;bottom:0;right:0;width:auto;min-height:var(--portal-nav-height);display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:3px;padding:7px 8px max(9px,env(safe-area-inset-bottom));border:0;border-top:1px solid var(--border); }
  .portal-nav-caption { display:none; }
  .portal-nav button { min-width:0;min-height:58px;padding:7px 2px;display:flex;flex-direction:column;justify-content:center;gap:5px;text-align:center;font-size:12px;border-radius:10px; }
  .portal-home-grid { display:flex;flex-direction:column;gap:24px; }
  .portal-home-grid>* { width:100%; }
  .hero { padding:20px; }
  .hero-amt { font-size:38px; }
  .portal-actions { padding:0; }
  .portal-action { min-height:76px; }
  .portal-action-copy strong { font-size:16px; }
  .portal-progress { padding-top:22px; }
  .portal-more-grid { grid-template-columns:1fr; }
  .card { padding:20px 16px;border-radius:16px; }
  .ctitle { font-size:17px; }
  .btn,.btn-sm { min-height:44px;font-size:14px; }
  .btn-p { min-height:48px; }
  .portal-upload-actions .btn { flex:1 1 180px; }
  .portal-file-tabs { gap:6px; }
  .portal-file-tabs .stab { font-size:13px;padding:10px 12px; }
  .portal-invoice-nav { display:flex;flex-wrap:nowrap;gap:6px;overflow-x:auto;scrollbar-width:none;margin:0 -16px 16px;padding:0 16px 2px; }
  .portal-invoice-nav::-webkit-scrollbar { display:none; }
  .portal-invoice-nav .tab-btn { flex:0 0 auto;min-height:38px;font-size:14px;padding:8px 14px;white-space:nowrap; }
  .portal-shortcuts { gap:8px; }
  .portal-shortcuts .btn { flex:1; }
  .portal-feedback { bottom:auto;top:calc(env(safe-area-inset-top) + 12px); }
  .portal-payment-row { flex-wrap:wrap; }
  .portal-payment-row .bal-val { padding:0; }
  .invoice-table-wrap { overflow:visible; }
  .invoice-table,.invoice-table tbody { display:block;min-width:0;width:100%; }
  .invoice-table thead { display:block;position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap; }
  .invoice-row { display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 12px;padding:18px 0;border-bottom:1px solid var(--border); }
  .invoice-table td { display:block;border:0;padding:0;min-width:0;font-size:14px;overflow-wrap:anywhere; }
  .invoice-partner { grid-column:1;grid-row:1;font-size:16px!important;font-weight:600; }
  .invoice-total { grid-column:2;grid-row:1;white-space:nowrap; }
  .invoice-number { grid-column:1;grid-row:2;color:var(--text2); }
  .invoice-dates { grid-column:2;grid-row:2;text-align:right;color:var(--text2); }
  .invoice-status,.invoice-actions { grid-column:1/-1; }
  .invoice-actions { display:none!important; }
  /* Kétsoros sor: vevő | összeg, alatta sorszám · dátumok | állapot. */
  .invoice-row { grid-template-columns:auto minmax(0,1fr) auto!important;gap:4px 8px!important;padding:14px 0!important;align-items:baseline; }
  .invoice-partner { grid-column:1/3!important;grid-row:1!important;font-size:16px!important; }
  .invoice-total { grid-column:3!important;grid-row:1!important; }
  .invoice-number { grid-column:1!important;grid-row:2!important;font-size:13px!important; }
  .invoice-number b { font-weight:500; }
  .invoice-dates { grid-column:2!important;grid-row:2!important;text-align:left!important;font-size:13px!important;white-space:nowrap;overflow:hidden;text-overflow:ellipsis; }
  .invoice-dates::before { content:"· ";color:var(--text3); }
  .invoice-status { grid-column:3!important;grid-row:2!important;text-align:right; }
  .invoice-number .invoice-receipts,.invoice-dates>small,.invoice-status>.badge,.invoice-status>.invoice-pay,.invoice-partner .invoice-error { display:none!important; }
  .invoice-dates { font-size:0!important; }
  .invoice-dates::before,.invoice-mdates { font-size:13px; }
  .invoice-mdates { display:inline; }
  .invoice-mstatus { display:inline-flex;align-items:center;gap:6px;font-size:13px;font-weight:500;white-space:nowrap; }
  .invoice-mstatus::before { content:"";width:8px;height:8px;border-radius:50%;background:currentColor; }
  .invoice-mstatus.is-ok { color:var(--green); }
  .invoice-mstatus.is-warn { color:var(--amber); }
  .invoice-mstatus.is-bad { color:var(--red); }
  .invoice-mstatus.is-muted { color:var(--text2); }
  .invoice-row { position:relative;cursor:pointer; }
  .invoice-row:active { background:var(--bg3); }
  .invoice-open::after { content:"";position:absolute;inset:0; }
  .invoice-pay { position:relative;z-index:1; }
  .invoice-sent,.invoice-partner .invoice-autosubmit { display:none; }
  .invoice-actions-row { position:relative;gap:8px;margin-top:4px; }
  .invoice-actions-row>.btn,.invoice-more { flex:1 1 0;min-width:0; }
  .invoice-more { position:static; }
  .invoice-more>summary { width:100%; }
  .invoice-actions-row>.btn,.invoice-more>summary { min-height:48px; }
  .invoice-more-list { left:0;right:0;top:calc(100% + 8px);z-index:14;min-width:0;max-width:none; }
  .invoice-more-item { min-height:44px; }
  .invoice-month-row { display:block;border-bottom:1px solid var(--border); }
  .invoice-month-row th { display:flex;justify-content:space-between;gap:12px;padding:24px 0 8px;border:0; }
  .invoice-month-sum { float:none; }
  .invoice-pay { min-height:40px;font-size:13px; }
  /* FGO-szerű mobil lista: keret nélkül, egysoros görgethető szűrősáv, a
     ritka műveletek egy menüben – a számlák rögtön az első képernyőn. */
  #tab-list>.card { padding:0;border:0;background:transparent; }
  #tab-list .ctitle { display:none; }
  .invoice-icon-btn { min-height:44px!important;min-width:44px; }
  .invoice-tools-menu { flex:0 0 auto; }
  .invoice-tools-menu .invoice-more-list { left:auto;right:0;top:calc(100% + 6px);width:240px;z-index:16; }
  /* Egy sor: balra görgethető hónap + szűrők, jobbra fixen a két ikon. */
  .invoice-filters { flex-wrap:nowrap;align-items:center;gap:4px;margin:0 0 12px -16px; }
  .invoice-filter-scroll { flex:1 1 auto;flex-wrap:nowrap;align-items:center;gap:8px;overflow-x:auto;scrollbar-width:none;padding:0 4px 2px 16px; }
  .invoice-filter-scroll::-webkit-scrollbar { display:none; }
  .invoice-filters>.invoice-list-tools { flex:0 0 auto;gap:0;position:relative; }
  .invoice-month-field { width:auto;flex:0 0 auto; }
  .invoice-month-field .flbl { position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0); }
  .invoice-month-field select { width:auto;max-width:150px;min-height:40px;border-radius:999px;padding:6px 28px 6px 14px;font-size:15px;text-overflow:ellipsis; }
  .invoice-chips { flex-wrap:nowrap;gap:8px;flex:0 0 auto; }
  .invoice-chip { flex:0 0 auto;min-height:40px;white-space:nowrap; }
  .invoice-ar { grid-template-columns:1fr 1fr;padding:14px; }
  .invoice-ar-top { grid-column:1/-1; }
  .invoice-ar-stat strong { font-size:16px;white-space:nowrap; }
  .editor-steps { gap:6px; }
  .editor-steps button { font-size:13px;min-height:48px;padding:8px 4px; }
  .editor-footer { bottom:calc(var(--portal-nav-height) + env(safe-area-inset-bottom));padding:12px;border-radius:12px;gap:8px; }
  .editor-footer .btn { flex:1 1 auto; }
  .editor-footer small { flex-basis:100%;text-align:center; }
  .editor-footer-spacer { display:none; }
  .editor-review-row { flex-wrap:wrap;gap:4px; }
  .editor-review-row dd { text-align:left; }
  input,select,textarea,.lines-tbl input,.lines-tbl select { font-size:16px;min-height:44px;max-width:100%; }
  input[type="checkbox"] { min-height:0; }
  .lines-tbl tr { padding:14px; }
  .lines-tbl td[data-label]::before { font-size:13px; }
  #op-src-iban { width:100%!important; }
}
@media(prefers-reduced-motion:reduce) { * { scroll-behavior:auto!important;transition:none!important; } }
@media print { .portal-feedback { display:none!important; } }

/* Partner-javaslatok a számlaszerkesztőben (Cégnév / CUI gépelés közben) */
.partner-suggest-wrap { position:relative;flex:1 1 auto;min-width:0; }
.partner-suggest-wrap input { width:100%; }
.partner-suggest { position:absolute;left:0;right:0;top:calc(100% + 4px);z-index:40;max-height:320px;overflow-y:auto;background:var(--bg2);border:1px solid var(--border);border-radius:12px;box-shadow:0 12px 32px rgba(0,0,0,.14);padding:4px; }
.partner-suggest-item { display:flex;flex-direction:column;align-items:flex-start;gap:2px;width:100%;min-height:44px;padding:8px 12px;border:0;border-radius:8px;background:transparent;color:var(--text);text-align:left;font-family:inherit;cursor:pointer; }
.partner-suggest-item:hover, .partner-suggest-item.active { background:var(--bg3); }
.partner-suggest-name { font-size:15px;font-weight:600; }
.partner-suggest-cui { font-size:12px;color:var(--text3); }
.partner-pick { max-height:360px; }
.partner-pick .partner-suggest-item { display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,2.4fr);gap:2px 12px;align-items:center; }
.partner-suggest-addr { font-size:12px;color:var(--text2);overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
.partner-pick-empty { padding:10px 12px;font-size:13px;color:var(--text2); }
.partner-summary { display:flex;flex-wrap:wrap;gap:12px;align-items:flex-start;justify-content:space-between;padding:12px 14px;border:1px solid var(--border);border-radius:12px;background:var(--bg3); }
.partner-summary-body { min-width:0;flex:1 1 240px;font-size:13px;color:var(--text2);line-height:1.5; }
.partner-summary-body b { display:block;font-size:15px;color:var(--text); }
@media (max-width:640px) { .partner-pick .partner-suggest-item { grid-template-columns:1fr; } }

.portal-feedback.is-error { background:#b42318;color:#fff; }
