/* cashflow.info.hu – a clflora.eu arculati tokenjeivel (2026-11-04) */
@import url(fonts.css);

:root{
  --ink:#2B2126; --muted:#6B5F5F; --faint:#6B5F5F;
  --paper:#FBF8F5; --paper2:#F4EEE8; --card:#FFFFFF;
  --line:#EADFD8; --line2:#DCCEC6;
  --wine:#7C2D3E; --wine-d:#61212F; --wine-weak:#F6E8EA; --rose:#F4E9E5;
  --sage:#6E7A62; --sage-weak:#EDF0E8;
  --amber:#8A5A12; --amber-weak:#FBF1DE;
  --r:14px;
  --shadow:0 16px 40px rgba(43,33,38,.09);
  --shadow-sm:0 5px 16px rgba(43,33,38,.06);
  --ui:'Archivo',system-ui,-apple-system,sans-serif;
  --disp:'Instrument Serif',Georgia,serif;
  --wrap:1200px;
}
*{box-sizing:border-box}
html,body{margin:0}
body{background:var(--paper);color:var(--ink);font:400 15.5px/1.5 var(--ui);-webkit-font-smoothing:antialiased}
a{color:var(--wine)}
:focus-visible{outline:2px solid var(--wine);outline-offset:2px;border-radius:4px}
.num{font-variant-numeric:tabular-nums}

/* Logó */
.brand{font-family:var(--disp);font-weight:400;line-height:1;color:var(--ink);text-decoration:none;display:inline-block}
.brand em{color:var(--wine);font-style:italic}
.sub{display:block;font:500 10.5px/1.4 var(--ui);letter-spacing:.14em;text-transform:uppercase;color:var(--muted)}

/* Belépés */
.auth{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:28px 16px;
  background:radial-gradient(1200px 600px at 50% -10%,var(--paper2),transparent 70%),var(--paper)}
.auth-box{width:100%;max-width:376px}
.auth-head{text-align:center;margin-bottom:16px}
.auth-head .brand{font-size:30px}
.auth-head .sub{margin-top:8px}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:18px}
.card p{margin:0 0 14px;font-size:13px;color:var(--muted)}
.card p strong{color:var(--ink)}
.auth-foot{text-align:center;font-size:11px;color:var(--muted);margin-top:14px}

.field{margin-bottom:12px}
.field label{display:block;font:500 10.5px/1.4 var(--ui);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-bottom:4px}
.field input{width:100%;font:400 14px/1.3 var(--ui);color:var(--ink);background:var(--paper);border:1px solid var(--line2);border-radius:9px;padding:10px 11px}
.field input:focus{outline:none;border-color:var(--wine);box-shadow:0 0 0 3px var(--wine-weak)}
.field input.code{font:600 22px/1 var(--ui);letter-spacing:.35em;text-align:center;padding:12px}
.hint{font-size:12px;color:var(--muted);margin-top:4px}

.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid transparent;border-radius:999px;
  background:var(--wine);color:#fff;font:600 13.5px/1 var(--ui);letter-spacing:.01em;padding:14px 24px;cursor:pointer;text-decoration:none}
.btn:hover{background:var(--wine-d)}
.btn.block{width:100%}
.btn.out{background:transparent;color:var(--ink);border-color:var(--line2)}
.btn.out:hover{background:var(--paper2)}
.btn.sm{padding:8px 14px;font-size:12.5px}

.alert{border-radius:9px;padding:10px 12px;font-size:13px;margin-bottom:12px}
.alert.err{background:var(--wine-weak);color:var(--wine-d)}
.alert.ok{background:var(--sage-weak);color:#3f4836}
.alert.warn{background:var(--amber-weak);color:var(--amber)}

.qr{display:flex;justify-content:center;margin:6px 0 10px}
.qr img{width:176px;height:176px;image-rendering:pixelated;border:1px solid var(--line);border-radius:9px;background:#fff;padding:6px}
.secret{font:500 13px/1.4 ui-monospace,Menlo,monospace;letter-spacing:.06em;text-align:center;background:var(--paper2);border-radius:9px;padding:8px;word-break:break-all}
ol.steps{margin:0 0 12px;padding-left:18px;font-size:13px;color:var(--muted)}

/* Alkalmazás-keret (a clflora.eu admin mintájára) */
.top{background:var(--card);border-bottom:1px solid var(--line)}
.top-in{max-width:var(--wrap);margin:0 auto;padding:12px 16px;display:flex;align-items:center;gap:20px;flex-wrap:wrap}
.top .brand{font-size:22px}
.top .sub{font-size:9.5px;margin-top:3px}
.nav{display:flex;gap:4px;flex-wrap:wrap;flex:1}
.nav a{font:500 12.5px/1 var(--ui);color:var(--ink);text-decoration:none;padding:9px 13px;border-radius:999px}
.nav a:hover{background:var(--paper2)}
.nav a.on{background:var(--wine);color:#fff}
.who{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--muted)}
.who form{margin:0}

.page{max-width:var(--wrap);margin:0 auto;padding:26px 16px 60px}
.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:16px}
h1{font:400 40px/1.05 var(--disp);margin:0}
.pills{display:flex;gap:6px;flex-wrap:wrap}
.pill{font:600 12px/1 var(--ui);padding:9px 14px;border-radius:999px;background:var(--card);border:1px solid var(--line);color:var(--ink);text-decoration:none}
.pill.on{background:var(--wine);border-color:var(--wine);color:#fff}
.pill .n{font-weight:500;opacity:.75;margin-left:4px}

.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:16px 0}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:14px 16px;box-shadow:var(--shadow-sm)}
.kpi .lbl{font:500 10.5px/1.4 var(--ui);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.kpi .val{font:400 30px/1.15 var(--disp);margin-top:6px}
.kpi .note{font-size:12px;color:var(--muted);margin-top:2px}
.kpi.warn{border-color:#ecd9b4;background:var(--amber-weak)}
.panel{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:18px;box-shadow:var(--shadow-sm);margin-bottom:12px}
.panel h2{font:400 24px/1.2 var(--disp);margin:0 0 4px}
.panel .lead{font-size:13px;color:var(--muted);margin:0 0 12px}
.empty{border:1px dashed var(--line2);border-radius:11px;padding:36px 16px;text-align:center;color:var(--muted);font-size:13px;background:var(--paper)}
.badge{display:inline-block;font:600 11px/1 var(--ui);padding:5px 9px;border-radius:999px;background:var(--sage-weak);color:#4c5643}
.badge.wine{background:var(--wine-weak);color:var(--wine-d)}

table.t{width:100%;border-collapse:collapse;font-size:13px}
table.t th{font:600 10.5px/1.4 var(--ui);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);text-align:left;padding:8px 10px;border-bottom:1px solid var(--line)}
table.t td{padding:10px;border-bottom:1px solid var(--line)}

@media (max-width:860px){.kpis{grid-template-columns:repeat(2,minmax(0,1fr))}h1{font-size:32px}}
@media (max-width:480px){.kpis{grid-template-columns:1fr}.who .nm{display:none}}

.center{text-align:center}.mb6{margin-bottom:6px}.mt6{margin-top:6px}.mt12{margin-top:12px}.mt14{margin-top:14px}
code{font:500 12px/1.4 ui-monospace,Menlo,monospace;background:var(--paper2);padding:2px 6px;border-radius:6px}
.secret-row{display:block}

/* v0.2 – táblák, szűrők, ütemezés, grafikon */
a.kpi.link{display:block;text-decoration:none;color:inherit}
a.kpi.link:hover{box-shadow:var(--shadow)}
.r{text-align:right!important}
.small{font-size:12px;color:var(--muted)}
.late{color:var(--wine-d);font-weight:600}
.badge.amber{background:var(--amber-weak);color:var(--amber)}
tr.hot td:first-child{box-shadow:inset 3px 0 0 var(--wine)}
table.t td a{color:var(--ink);text-decoration-color:var(--line2)}
table.t td a:hover{color:var(--wine)}
table.t tbody tr:hover{background:var(--paper)}
table.t.kv th{width:46%;text-transform:none;letter-spacing:0;font-size:12.5px;font-weight:500}
.panel.tight{padding:6px 10px;overflow-x:auto}
.filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 12px}
.filters .pills{flex-basis:100%}
select,input[type=search],input[type=date],input[type=number],textarea{font:400 13.5px/1.3 var(--ui);color:var(--ink);background:var(--card);border:1px solid var(--line2);border-radius:9px;padding:8px 10px}
.field select,.field textarea{width:100%;background:var(--paper)}
select:focus,input:focus,textarea:focus{outline:none;border-color:var(--wine);box-shadow:0 0 0 3px var(--wine-weak)}
input[type=search]{min-width:260px}
.bulk{position:sticky;top:0;z-index:5;display:flex;flex-wrap:wrap;gap:8px;align-items:center;background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:10px 12px;margin-bottom:10px;box-shadow:var(--shadow-sm)}
.bulk label{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--muted)}
.sel-count{font-size:12.5px;min-width:86px}
.upload{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.upload input[type=file]{font:13px var(--ui)}
.actions{display:flex;gap:10px;margin-top:6px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.row3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}
.chk{display:flex;gap:8px;align-items:center;font-size:13px}
svg.chart{width:100%;height:auto;display:block}
svg.chart .grid{stroke:var(--line);stroke-width:1}
svg.chart .bar{fill:var(--wine)}
svg.chart .bar.hot{fill:var(--wine-d)}
svg.chart g:hover .bar{fill:var(--wine-d)}
svg.chart .ax{font:500 11px var(--ui);fill:var(--muted)}
svg.chart .ax.faint{font-size:10px;opacity:.75}
svg.chart .val{font:600 11px var(--ui);fill:var(--ink)}
@media (max-width:860px){.grid2,.row3{grid-template-columns:1fr}}

/* v0.3 – forgatókönyvek, terv, tartozások */
.kpis.k5{grid-template-columns:repeat(5,minmax(0,1fr))}
.kpi.hot{border-color:#e7c9cf;background:var(--wine-weak)}
.badge.grey{background:var(--paper2);color:var(--muted)}
.pill.hotpill{background:var(--wine-weak);border-color:#e7c9cf;color:var(--wine-d)}
.panel-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}
.panel-head.pad{padding:12px 8px 4px}
.grid2.wide-left{grid-template-columns:1.6fr 1fr}
form.inline{display:flex;gap:6px;justify-content:flex-end;align-items:center;margin:0}
input.amt{width:130px;text-align:right;font:400 13px var(--ui);border:1px solid var(--line2);border-radius:8px;padding:6px 8px;background:var(--paper)}
.key{display:inline-block;width:18px;height:0;border-top:2.5px solid var(--ink);vertical-align:middle;margin:0 2px}
.key.k-ovatos{border-top:2.5px dashed var(--wine)}
svg.chart .zero{stroke:var(--ink);stroke-width:1;opacity:.35}
svg.chart .minline{stroke:var(--amber);stroke-width:1.5;stroke-dasharray:6 4}
svg.chart .bar.in{fill:var(--sage)}
svg.chart .bar.out{fill:var(--wine);opacity:.85}
svg.chart .hit{fill:transparent}
svg.chart g:hover .hit{fill:var(--paper2);opacity:.6}
svg.chart .line{fill:none;stroke-width:2.5;stroke-linejoin:round}
svg.chart .line.alap{stroke:var(--ink)}
svg.chart .line.ovatos{stroke:var(--wine);stroke-dasharray:7 5}
svg.chart .dot.alap{fill:var(--ink)}
svg.chart .dot.ovatos{fill:var(--wine)}
svg.chart .lbl{font:600 12px var(--ui)}
svg.chart .lbl.alap{fill:var(--ink)}
svg.chart .lbl.ovatos{fill:var(--wine)}
svg.chart .miss{font:600 11px var(--ui);fill:var(--amber)}
.tscroll{overflow-x:auto;margin-top:10px}
table.weekly{font-size:12px}
table.weekly th,table.weekly td{padding:6px 8px;white-space:nowrap}
table.weekly tbody th{text-transform:none;letter-spacing:0;font-size:12px;font-weight:500;color:var(--ink)}
table.weekly tr.strong td,table.weekly tr.strong th{font-weight:600}
td.neg{color:var(--wine-d);font-weight:600}
tr.sel td{background:var(--wine-weak)}
ul.todo{list-style:none;padding:0;margin:0}
ul.todo li{display:flex;gap:10px;align-items:flex-start;padding:8px 0;border-bottom:1px solid var(--line)}
ul.todo li.done>div{opacity:.55;text-decoration:line-through}
ul.todo form{margin:0}
button.tick{width:22px;height:22px;border-radius:6px;border:1.5px solid var(--line2);background:var(--card);color:var(--sage);font-weight:700;cursor:pointer;line-height:1}
@media (max-width:1100px){.kpis.k5{grid-template-columns:repeat(3,minmax(0,1fr))}.grid2.wide-left{grid-template-columns:1fr}}
@media (max-width:640px){.kpis.k5{grid-template-columns:1fr 1fr}}
/* v0.4 – Könyvelés */
.panel h3{font:600 12px/1.4 var(--ui);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 8px}
a.tab-kpi{display:block;color:inherit;text-decoration:none}
a.tab-kpi:hover{border-color:var(--wine)}
a.tab-kpi.on{border-color:var(--wine);box-shadow:0 0 0 1px var(--wine) inset}
.tscroll{overflow-x:auto}
tr.muted-row td{color:var(--muted)}
details summary{cursor:pointer}
.t tfoot td{border-top:1px solid var(--line);padding-top:10px}
form.inline input[type=date]{padding:6px 8px;font-size:12.5px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--ink)}
/* v0.4 – böngészős telepítő, felhasználókezelés */
.h-auth{font:400 28px/1.15 var(--disp);margin:0 0 10px}
.h-sec{font:600 11px/1.4 var(--ui);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin:16px 0 6px}
form.stack .field{margin-bottom:10px}
.temp-pw{font:600 18px/1.3 ui-monospace,Consolas,monospace;letter-spacing:.04em;background:var(--rose);border:1px dashed var(--wine);border-radius:8px;padding:10px 12px;margin:8px 0;user-select:all}
.users-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
form.un-form{justify-content:flex-start}
form.un-form input{width:120px;padding:6px 8px;font-size:12.5px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--ink)}
/* v0.4.3 – előrejelzés távja */
.h2-sub{font:500 11px/1 var(--ui);letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-left:8px;vertical-align:middle}
.th-sub{display:block;font-weight:400;color:var(--muted);font-size:10.5px;letter-spacing:0;text-transform:none}
th.we,.ax.we{color:var(--wine)}
svg .ax.we{fill:var(--wine)}
/* v0.5 – Bankoknak, Impresszum */
.bank-tools{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin:0 0 14px}
.bank-doc{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:22px 24px;box-shadow:var(--shadow-sm)}
.bank-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:6px}
.bank-title{font:400 26px/1.2 var(--disp);margin:4px 0 6px}
.stamp{border:2px solid var(--wine);color:var(--wine);font:700 14px/1 var(--ui);letter-spacing:.2em;padding:8px 12px;border-radius:6px;transform:rotate(-4deg)}
.bank-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}
.bank-t th{white-space:nowrap}
.bank-t tr.sec th{background:var(--rose);font:600 11px/1.4 var(--ui);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding-top:10px}
.bank-t tr.total th,.bank-t tr.total td{font-weight:600;border-top:1px solid var(--line2)}
.bank-t tr.balance th,.bank-t tr.balance td{font-weight:700;background:#faf6f3}
.bank-t tr.line th{font-weight:400;padding-left:18px}
.bank-sec{margin-top:18px}
.bank-sec h3{font:600 12px/1.4 var(--ui);letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:0 0 8px}
.bank-list{margin:0;padding-left:18px;font-size:13px;line-height:1.55}
.bank-foot{margin-top:18px;border-top:1px solid var(--line);padding-top:10px}
.auth-box.wide{max-width:980px}
.imp-t th{width:30%;vertical-align:top;font-weight:600}
.imp-list{margin:0;padding-left:20px;font-size:13.5px;line-height:1.6}
.imp-list li{margin-bottom:6px}
.imp-public .panel{box-shadow:none;border:0;padding:6px 0}
.app-foot{max-width:1240px;margin:28px auto 22px;padding:0 24px;font-size:12px;color:var(--muted)}
.app-foot a,.auth-foot a{color:inherit}
@media print{
  @page{size:A4 landscape;margin:10mm}
  .top,.no-print,.app-foot{display:none!important}
  body{background:#fff}
  .page{padding:0;max-width:none}
  .bank-doc{border:0;box-shadow:none;padding:0}
  .tscroll{overflow:visible}
  .bank-t{font-size:9.5px}
  .kpi{box-shadow:none}
}
.bank-t td{white-space:nowrap}
.bank-t tbody th{text-transform:none;letter-spacing:0;font:500 13px/1.35 var(--ui);color:var(--ink);white-space:nowrap}
.bank-t tbody tr.line th{font-weight:400;color:var(--ink)}
.bank-t tbody tr.sec th{text-transform:uppercase;letter-spacing:.08em;font:600 11px/1.4 var(--ui);color:var(--muted)}
.imp-t th{width:auto}
.imp-t tbody th{width:30%}
@media (max-width:1500px){.nav a{padding:9px 10px;font-size:12px}}
/* v0.6 – Feladatlista */
.people{display:flex;gap:10px;flex-wrap:wrap;margin:6px 0 16px}
.person{display:flex;flex-direction:column;min-width:150px;padding:12px 14px;border:1px solid var(--line);border-radius:var(--r);background:var(--card);color:inherit;text-decoration:none;box-shadow:var(--shadow-sm)}
.person:hover{border-color:var(--wine)}
.person.on{border-color:var(--wine);box-shadow:0 0 0 1px var(--wine) inset}
.person.warnp{border-style:dashed}
.p-name{font:600 13px/1.3 var(--ui)}
.p-num{font:400 28px/1.1 var(--disp);margin-top:4px}
.p-sub{font-size:12px;color:var(--muted)}
.late{color:var(--wine-d);font-weight:600}
.tasks .t-title{font-weight:500}
.tasks tr.done td{color:var(--muted)}
.tasks tr.done .t-title a{text-decoration:line-through;color:var(--muted)}
.tasks select{padding:6px 8px;font-size:12.5px;border:1px solid var(--line);border-radius:8px;background:var(--card);color:var(--ink);max-width:170px}
form.inline.left{justify-content:flex-start;flex-wrap:wrap}
.tick{width:22px;height:22px;border-radius:50%;border:1.5px solid var(--line2);background:var(--card);cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:13px;color:#fff;padding:0}
.tick:hover{border-color:var(--wine)}
.tick.on{background:var(--wine);border-color:var(--wine);cursor:default}
@media (max-width:1500px){.nav{gap:2px}.nav a{padding:8px 8px;font-size:12px}}
