:root{--bg:#08111f;--bg2:#101827;--card:#121b2c;--card2:#18243a;--text:#f5f7fb;--muted:#9aabc4;--accent:#79e2a7;--accent2:#facc15;--danger:#fb7185;--line:#27364f;--shadow:0 18px 50px rgba(0,0,0,.28)}
.light{--bg:#f6f8fb;--bg2:#eef3fb;--card:#fff;--card2:#f0f5fb;--text:#0f172a;--muted:#526174;--accent:#0f9f6e;--accent2:#b45309;--danger:#be123c;--line:#d7e0ed;--shadow:0 12px 35px rgba(15,23,42,.10)}
*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at top left,rgba(121,226,167,.14),transparent 32%),linear-gradient(140deg,var(--bg),var(--bg2));font-family:Inter,Segoe UI,Arial,sans-serif;color:var(--text)}
.topbar{display:flex;justify-content:space-between;gap:20px;align-items:center;padding:24px 28px;border-bottom:1px solid var(--line);background:rgba(8,17,31,.86);backdrop-filter:blur(12px);position:sticky;top:0;z-index:5}.light .topbar{background:rgba(255,255,255,.86)}
h1{margin:0;font-size:28px;letter-spacing:-.03em}h1 span{color:var(--accent);font-size:16px}.topbar p{margin:.35rem 0 0;color:var(--muted)}p{color:var(--muted);line-height:1.55}.top-actions{display:flex;gap:10px;flex-wrap:wrap}.ghost,button{border:1px solid var(--line);background:var(--card2);color:var(--text);padding:10px 14px;border-radius:12px;cursor:pointer;font-weight:800}button:hover,.ghost:hover{border-color:var(--accent);transform:translateY(-1px)}.fileLabel input{display:none}
.tabs{display:flex;gap:8px;overflow:auto;padding:12px 24px;background:rgba(0,0,0,.12);position:sticky;top:89px;z-index:4}.tabs button{white-space:nowrap;background:transparent}.tabs button.active{background:var(--accent);color:#052e1a;border-color:var(--accent)}
main{padding:24px;max-width:1400px;margin:auto}.view{display:none}.view.active{display:block}.grid{display:grid;grid-template-columns:repeat(12,1fr);gap:16px}.card{background:var(--card);border:1px solid var(--line);border-radius:22px;padding:18px;box-shadow:var(--shadow)}.span3{grid-column:span 3}.span4{grid-column:span 4}.span5{grid-column:span 5}.span6{grid-column:span 6}.span7{grid-column:span 7}.span8{grid-column:span 8}.span12{grid-column:span 12}@media(max-width:950px){.span3,.span4,.span5,.span6,.span7,.span8{grid-column:span 12}.topbar{display:block}.tabs{top:112px}}
.metric{font-size:34px;font-weight:950;letter-spacing:-.04em}.muted{color:var(--muted)}.progress{height:12px;background:var(--card2);border-radius:99px;overflow:hidden;border:1px solid var(--line)}.bar{height:100%;background:linear-gradient(90deg,var(--accent),#38bdf8);width:0}.pill{display:inline-flex;gap:6px;align-items:center;padding:6px 10px;border-radius:999px;background:var(--card2);border:1px solid var(--line);font-size:12px;color:var(--muted);margin:3px}.pill.ok{color:#052e1a;background:var(--accent)}.pill.warn{color:#3b2600;background:var(--accent2)}.pill.bad{color:white;background:var(--danger)}
.filters{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 18px}.filters button.active{background:var(--accent);color:#052e1a}.recipe-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}.recipe-card{background:var(--card);border:1px solid var(--line);border-radius:18px;padding:14px;display:flex;flex-direction:column;gap:10px;min-height:310px}.recipe-card h3{margin:0;font-size:18px}.imagebox{height:120px;border-radius:14px;background:linear-gradient(135deg,var(--card2),rgba(121,226,167,.12));border:1px dashed var(--line);display:flex;align-items:center;justify-content:center;text-align:center;padding:10px;color:var(--muted);font-size:12px}.recipe-actions{display:flex;gap:8px;margin-top:auto}.recipe-actions button{flex:1;padding:9px}.small{font-size:12px}.macro{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.macro div{background:var(--card2);border:1px solid var(--line);padding:8px;border-radius:12px;text-align:center}.macro b{display:block;color:var(--accent)}
.hero{padding:20px;border-radius:24px;background:linear-gradient(135deg,rgba(121,226,167,.16),rgba(56,189,248,.10));border:1px solid var(--line)}.advisor-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:14px}.suggestion{border:1px solid var(--line);background:var(--card);border-radius:18px;padding:14px}.suggestion .rank{font-size:12px;color:#052e1a;background:var(--accent);padding:5px 9px;border-radius:999px;display:inline-block;margin-bottom:6px}.dayplan{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.dayitem{background:var(--card2);border:1px solid var(--line);border-radius:16px;padding:12px}.dayitem h4{margin:0 0 6px}.statline{display:flex;gap:8px;flex-wrap:wrap}.statline span{background:var(--card2);border:1px solid var(--line);border-radius:12px;padding:8px 10px;color:var(--muted)}
input,select,textarea{width:100%;padding:12px;border-radius:12px;background:var(--card2);border:1px solid var(--line);color:var(--text)}label{display:block;font-weight:800;margin:10px 0 6px}.row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}@media(max-width:800px){.row{grid-template-columns:1fr}}
table{width:100%;border-collapse:collapse;margin-top:12px}th,td{padding:10px;border-bottom:1px solid var(--line);text-align:left}th{color:var(--muted);font-size:12px;text-transform:uppercase}.right{text-align:right}.danger{color:var(--danger)}.success{color:var(--accent)}
.modal{position:fixed;inset:0;background:rgba(0,0,0,.72);display:flex;align-items:center;justify-content:center;padding:20px;z-index:20}.hidden{display:none}.modal-card{max-width:950px;width:100%;max-height:90vh;overflow:auto;background:var(--card);border:1px solid var(--line);border-radius:24px;padding:22px;box-shadow:var(--shadow)}.close{float:right;font-size:24px;border-radius:50%;padding:4px 12px}.step{padding:10px 12px;border-left:4px solid var(--accent);background:var(--card2);border-radius:10px;margin:8px 0}.warning{background:rgba(250,204,21,.12);border:1px solid rgba(250,204,21,.35);padding:12px;border-radius:14px}.good{background:rgba(121,226,167,.10);border:1px solid rgba(121,226,167,.32);padding:12px;border-radius:14px}canvas{width:100%;height:260px;background:var(--card2);border-radius:14px;border:1px solid var(--line)}

.quick-panels{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:14px}
.quick-panel{background:var(--card2);border:1px solid var(--line);border-radius:18px;padding:14px;display:flex;flex-direction:column;gap:10px;min-height:260px}
.quick-panel h3{margin:0;color:var(--accent)}
.macro.mini{grid-template-columns:repeat(4,1fr);font-size:12px}

.recommend-buttons{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin:12px 0}
.bigbtn{font-size:16px;padding:18px;border-radius:18px;background:linear-gradient(135deg,var(--accent),#38bdf8);color:#052e1a;border:0;box-shadow:var(--shadow)}
.weekplan{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px;margin-top:14px}
.week-day{background:var(--card2);border:1px solid var(--line);border-radius:18px;padding:14px}
.week-meal{display:grid;grid-template-columns:1fr auto;gap:8px;align-items:center;border-top:1px solid var(--line);padding:10px 0}
.week-meal b{display:block;margin:4px 0}.week-meal small{color:var(--muted)}.week-meal button{padding:7px 9px;margin-left:4px;font-size:12px}

.imagebox.hasimg{padding:0;overflow:hidden;background:#0b1220;height:150px}
.imagebox.hasimg img{width:100%;height:100%;object-fit:cover;display:block}
.modal-img{width:100%;max-height:320px;object-fit:cover;border-radius:18px;margin-bottom:14px;border:1px solid var(--line)}
.pill.bad{background:#4a1621;color:#fecdd3;border-color:#7f1d1d}
.bigbtn{font-size:15px;padding:14px 16px}
/* v12 usability polish */
.recipe-card{transition:transform .12s ease, box-shadow .12s ease;border-radius:18px}
.recipe-card:hover{transform:translateY(-2px);box-shadow:0 16px 38px rgba(0,0,0,.22)}
.recipe-card h3{line-height:1.2;margin-top:14px}
#modalContent{font-size:16px;line-height:1.55;max-width:920px;margin:auto}
#modalContent ul,#modalContent ol{background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.08);border-radius:16px;padding:18px 28px;margin:12px 0 22px}
#modalContent li{margin:7px 0}
#importResult .warning{line-height:1.55}
.good{border-radius:14px}
.warning{border-radius:14px}
.bigbtn{min-height:68px;display:inline-flex;align-items:center;justify-content:center;text-align:center}
.filters button.active{box-shadow:0 0 0 2px rgba(112,230,170,.25)}

/* v13 barátságosabb felület */
#recipes h2,#advisor h2,#import h2{letter-spacing:-.02em}
.recipe-card{border-radius:22px;padding:18px;background:linear-gradient(180deg,var(--card),rgba(24,36,58,.86));}
.recipe-card h3{font-size:19px;line-height:1.25}
.recipe-actions button,.dayitem button,.week-meal button{border-radius:14px}
#modalContent h2{font-size:30px;letter-spacing:-.03em;margin-top:8px}
#modalContent h3{margin-top:28px;color:var(--accent)}
#modalContent ul li,#modalContent ol li{font-size:16px;line-height:1.6}
#importResult{margin-top:16px}
.filters{position:sticky;top:145px;z-index:2;background:linear-gradient(180deg,var(--bg2),rgba(0,0,0,0));padding:10px 0}
.fileLabel.bigbtn{cursor:pointer}


/* v17 kereső */
.searchbar{display:flex;gap:12px;align-items:center;margin:18px 0;max-width:980px}
.searchbar input{flex:1;padding:16px 18px;border-radius:16px;border:1px solid rgba(148,163,184,.28);background:rgba(15,23,42,.9);color:#fff;font-weight:800;font-size:16px;outline:none}
.searchbar input:focus{border-color:#6ee7b7;box-shadow:0 0 0 3px rgba(110,231,183,.15)}
.emptybox{border:1px dashed rgba(148,163,184,.35);border-radius:18px;padding:28px;background:rgba(15,23,42,.45)}
@media(max-width:700px){.searchbar{flex-direction:column;align-items:stretch}.searchbar input{width:100%}.topbar{gap:12px}.tabs{overflow-x:auto}}

/* v19 Cloud szinkron: local kinézet visszahozva */
.topbar h1 span{font-size:14px;color:var(--accent)}
.sync-state{font-size:12px;color:var(--muted);margin-top:6px}.sync-state.ok{color:var(--accent)}.sync-state.err{color:var(--danger)}
.mobile-hide{} @media(max-width:820px){.mobile-hide{display:none!important}.top-actions{margin-top:12px}.tabs{top:118px}.recipe-list{grid-template-columns:1fr}.modal-card{max-height:92vh}.topbar{position:relative}.tabs{position:sticky;top:0}.macro{grid-template-columns:repeat(2,1fr)} }
input, textarea, select { font-size:16px; }
.recipe-card.imported{border-color:rgba(121,226,167,.35)}
.searchbar input{color:var(--text);background:var(--card2)}
.admin-only-note{display:none}@media(max-width:820px){.admin-only-note{display:block}.admin-pc{display:none!important}}
