:root {
  color-scheme: light;
  --ink:#102244; --text:#172332; --muted:#6f7b8d; --cyan:#10b5d1; --cyan-strong:#0798b3; --pink:#e52b97; --line:#e7eff3;
  --shadow:0 8px 28px rgba(42,89,110,.07);
  font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Arial,sans-serif;
  -webkit-text-size-adjust:100%; font-synthesis:none;
}
* { box-sizing:border-box; }
[hidden] { display:none !important; }
html { min-height:100%; background:#fbfdfe; scroll-behavior:smooth; }
body { min-width:280px; min-height:100vh; min-height:100svh; margin:0; color:var(--text); background:#fbfdfe; position:relative; isolation:isolate; overflow-x:clip; }
button,select,textarea { font:inherit; }
button { cursor:pointer; touch-action:manipulation; -webkit-tap-highlight-color:transparent; color:inherit; }
button:disabled { cursor:wait; opacity:.6; }
button:focus-visible,select:focus-visible,summary:focus-visible,[tabindex]:focus-visible { outline:3px solid var(--cyan-strong); outline-offset:4px; }
button,a,summary { -webkit-user-select:none; user-select:none; }
h1,h2,h3,p { margin:0; }
.iconLibrary { position:absolute; width:0; height:0; overflow:hidden; }
.icon { width:24px; height:24px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; flex:0 0 auto; }
.shell { position:relative; width:min(100%,720px); min-height:100vh; min-height:100svh; display:flex; flex-direction:column; margin:0 auto; padding:max(24px,env(safe-area-inset-top)) max(20px,env(safe-area-inset-right)) max(24px,env(safe-area-inset-bottom)) max(20px,env(safe-area-inset-left)); }
.brandLogo { line-height:0; }
.brandImage { display:block; width:100%; height:auto; overflow:hidden; }
.utilities { display:flex; align-items:center; justify-content:space-between; gap:12px; min-height:50px; }
.utilities small { font-size:11px; line-height:1.5; color:#657187; }
.installHelp { display:flex; align-items:center; gap:8px; min-height:48px; padding:8px 12px; border:1px solid #d6edf4; border-radius:13px; color:#079dbe; background:rgba(255,255,255,.85); font-size:12px; line-height:1.3; text-align:left; box-shadow:0 3px 10px rgba(28,109,133,.03); }
.installHelp .icon { width:21px; height:21px; }
.kartya { border:1px solid rgba(225,236,242,.8); border-radius:22px; background:#fff; padding:20px; box-shadow:var(--shadow); }
.installPanel { position:relative; z-index:5; margin:18px 0; font-size:14px; line-height:1.6; }
.installPanel p { margin:10px 0; }
.primary,.plainButton { min-height:44px; padding:11px 16px; border:1px solid #cdebf2; border-radius:12px; background:white; color:var(--cyan-strong); font-weight:600; }
.primary { background:var(--cyan); color:white; border:none; }
.loginBackdrop { position:absolute; z-index:-2; inset:0; min-height:100svh; background:linear-gradient(180deg,rgba(255,255,255,.92) 0%,rgba(255,255,255,.76) 35%,rgba(255,255,255,.1) 100%),url("/assets/login-crowd.png") center bottom / cover no-repeat; opacity:.4; }
.loginDecoration { position:absolute; inset:0; z-index:-1; overflow:hidden; pointer-events:none; }
.loginDecoration::before { content:""; position:absolute; width:510px; height:620px; right:-320px; bottom:-245px; border:1.5px solid rgba(16,181,209,.6); border-radius:50%; transform:rotate(30deg); }
.loginDecoration::after { content:""; position:absolute; top:66%; right:max(30px,calc((100% - 360px)/2)); width:34px; height:34px; background:var(--pink); border-radius:50%; }
.loginCard { width:100%; max-width:390px; text-align:center; margin:clamp(70px,13vh,125px) auto 50px; padding:0 3px; }
.loginLogo { width:min(90.9%,300px); margin:0 auto; padding:10px 0; }
.loginTagline { font-size:17px; line-height:1.6; color:#4c5c71; margin:16px 0 31px; letter-spacing:-.015em; }
.googleButton { position:relative; display:flex; align-items:center; justify-content:center; gap:11px; width:100%; min-height:60px; padding:6px 15px 6px 7px; border:none; border-radius:34px; background:linear-gradient(110deg,#13b1d0,#22b5d1); color:#fff; font-size:clamp(12px,3.65vw,15px); font-weight:650; line-height:1.4; box-shadow:0 7px 18px rgba(10,159,186,.15); }
.googleButton > :last-child { flex:1; white-space:nowrap; text-align:center; }
.googleMark { width:46px; height:46px; display:grid; place-items:center; background:white; border-radius:50%; flex:0 0 auto; }
.googleMark svg { width:27px; height:27px; }
.loginNote { max-width:310px; color:#536176; font-size:13px; line-height:1.65; margin:22px auto 0; }
#authMessage { color:#56657b; font-size:13px; line-height:1.6; margin-top:16px; }
#retryBoot { margin-top:12px; }
.pageDecoration { display:none; position:absolute; inset:0; overflow:hidden; z-index:-1; pointer-events:none; }
.pageDecoration::before { content:""; position:absolute; top:-180px; right:-170px; width:380px; height:360px; border:1.4px solid rgba(16,181,209,.7); border-radius:50%; }
.pageDecoration::after { content:""; position:absolute; bottom:-230px; left:-185px; width:470px; height:350px; border-radius:50%; background:linear-gradient(125deg,rgba(51,205,229,.45),rgba(178,240,249,.12)); transform:rotate(25deg); }
.pageDecoration span { position:absolute; top:130px; right:max(20px,calc((100% - 670px)/2)); width:25px; height:25px; border-radius:50%; background:var(--pink); opacity:.9; }
.pageDecoration i { position:absolute; bottom:32px; right:max(36px,calc((100% - 610px)/2)); width:30px; height:30px; background:var(--pink); border-radius:50%; opacity:.9; }
body[data-session="in"] .loginBackdrop,body[data-session="in"] .loginDecoration,body[data-session="in"] .utilities { display:none; }
body[data-session="in"] .pageDecoration { display:block; }
.sessionHeader { display:flex; align-items:center; justify-content:space-between; gap:16px; margin:4px 0 25px; position:relative; z-index:10; }
.homeLogo { display:flex; align-items:center; width:200px; max-width:calc(100% - 60px); min-height:44px; padding:0; border:0; background:none; text-align:left; flex:0 1 200px; }
.accountArea { position:relative; flex:0 0 auto; }
.profileButton { width:44px; height:44px; border:none; border-radius:50%; background:#eef5f8; color:#153257; display:grid; place-items:center; }
.profileButton .icon { width:24px; height:24px; stroke-width:1.65; }
.accountPanel { position:absolute; top:55px; right:0; width:min(290px,calc(100vw - 40px)); padding:18px; border:1px solid var(--line); border-radius:20px; background:white; box-shadow:0 15px 48px rgba(16,34,68,.14); text-align:left; }
.accountPanel strong { display:block; font-size:14px; }
#signedAccount { display:block; font-size:12px; color:var(--muted); overflow-wrap:anywhere; line-height:1.6; margin:7px 0 13px; }
.accountAction { display:flex; align-items:center; gap:10px; padding:12px 3px; width:100%; border:0; border-top:1px solid var(--line); background:white; font-size:14px; text-align:left; color:var(--ink); min-height:46px; }
.accountAction .icon { width:18px; height:18px; color:var(--cyan-strong); }
.adminControls { padding:14px; margin-bottom:20px; box-shadow:none; background:rgba(255,255,255,.8); border-radius:15px; }
.adminControls label { display:block; font-size:11px; font-weight:600; color:var(--muted); margin-bottom:8px; }
#musicianSelect { width:100%; min-height:44px; border:1px solid #dce9ee; border-radius:10px; background:white; color:var(--ink); font-size:16px; padding:8px 10px; }
#selectedName { font-size:30px; font-weight:750; letter-spacing:-.04em; line-height:1.2; margin:0 0 22px; color:#102349; overflow-wrap:anywhere; }
#selectedName:empty { display:none; }
.homeCards { display:grid; grid-template-columns:minmax(0,1fr); gap:15px; }
.summaryCard { --accent:var(--cyan); --tint:#e2f8fc; --wash:#f3fcfe; position:relative; isolation:isolate; display:flex; align-items:center; gap:14px; width:100%; min-height:128px; padding:20px 18px; text-align:left; border:1px solid #fff; border-radius:23px; background:linear-gradient(105deg,#fff 0%,var(--wash) 100%); box-shadow:var(--shadow); overflow:hidden; transition:transform .18s ease,box-shadow .18s ease; }
.summaryCard::after { content:""; position:absolute; z-index:-1; width:170px; height:220px; right:-125px; bottom:-88px; border:1px solid color-mix(in srgb,var(--accent) 30%,transparent); border-radius:50%; background:color-mix(in srgb,var(--tint) 70%,transparent); transform:rotate(24deg); }
.summaryPink { --accent:#de2896; --tint:#fbe5f3; --wash:#fdf5fb; }
.summaryIcon { display:grid; place-items:center; width:57px; height:57px; border-radius:50%; background:var(--tint); color:var(--accent); flex:0 0 auto; }
.summaryIcon .icon { width:30px; height:30px; stroke-width:1.9; }
.summaryContent { display:flex; flex-direction:column; min-width:0; flex:1; gap:7px; }
.kartyaCim { font-weight:650; font-size:13px; line-height:1.35; letter-spacing:-.025em; color:#1d2732; }
.summaryValue { font-size:clamp(23px,6.3vw,29px); line-height:1.18; font-weight:750; letter-spacing:-.04em; color:#111b26; overflow-wrap:anywhere; font-variant-numeric:tabular-nums; }
.summaryCaption { color:#4d5968; font-size:12px; line-height:1.5; letter-spacing:-.01em; }
.summaryArrow { display:grid; place-items:center; width:31px; height:31px; border-radius:50%; background:var(--tint); color:var(--accent); flex:0 0 auto; }
.summaryArrow .icon { width:20px; height:20px; stroke-width:1.9; }
.nextCaption { display:block; }
#kozelgoZenekar:not(:empty)::before { content:" · "; }
.hiba:empty { display:none; }
.hiba { color:#ac344b; font-size:13px; line-height:1.5; }
.syncFooter { margin-top:auto; padding:32px 0 4px; position:relative; z-index:1; }
#syncInfo { max-width:370px; margin:0 auto; text-align:center; color:#8793a0; font-size:10px; line-height:1.6; font-variant-numeric:tabular-nums; }
#syncInfo:empty { display:none; }
body[data-session="out"] .syncFooter { display:none; }
.visszaGomb { display:inline-flex; align-items:center; gap:7px; min-height:44px; padding:9px 12px 9px 5px; border:none; background:transparent; color:var(--cyan-strong); font-size:14px; font-weight:600; margin:-5px 0 14px; }
.visszaGomb .icon { width:19px; height:19px; }
.concertList { display:grid; gap:14px; }
.concertCard { padding:19px; border-radius:21px; border:1px solid #edf3f6; background:#fff; box-shadow:var(--shadow); }
.concertTop { display:flex; align-items:center; gap:14px; }
.dateBadge { width:52px; min-height:58px; flex:0 0 auto; padding:8px 4px; text-align:center; border-radius:14px; background:#eaf9fc; color:var(--cyan-strong); }
.dateBadge strong { display:block; font-size:25px; letter-spacing:-.04em; line-height:1.12; font-weight:750; }
.dateBadge span { display:block; font-size:10px; margin-top:3px; letter-spacing:.025em; text-transform:uppercase; }
.concertHeading { min-width:0; flex:1; }
.concertHeading h3 { color:var(--ink); font-size:18px; line-height:1.3; letter-spacing:-.03em; font-weight:680; overflow-wrap:anywhere; }
.concertHeading p { color:var(--muted); font-size:13px; line-height:1.5; margin-top:4px; overflow-wrap:anywhere; }
.concertDate { color:var(--muted); font-size:11px; line-height:1.5; margin-top:3px; }
.amountLine { display:flex; justify-content:space-between; align-items:center; gap:12px; border-top:1px solid var(--line); margin-top:16px; padding-top:14px; }
.amountLabel { color:var(--muted); font-size:11px; }
.gazsiOsszeg { display:block; font-size:23px; line-height:1.4; font-weight:740; letter-spacing:-.04em; color:var(--ink); font-variant-numeric:tabular-nums; }
.gazsiFolyamatban { color:var(--muted); font-size:13px; font-weight:500; }
.statusPill { display:inline-flex; align-items:center; justify-content:center; border-radius:20px; padding:5px 9px; min-height:25px; font-size:10px; line-height:1.4; font-weight:650; text-align:right; overflow-wrap:anywhere; }
.statusPending { color:#a26c20; background:#fff5df; }
.statusProgress { color:#087f99; background:#e8f8fc; }
.statusPaid { color:#1a7d5d; background:#e9f6ef; }
.statusNeutral { color:#6d7583; background:#f0f3f5; }
.stateRow { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:10px; font-size:12px; line-height:1.5; }
.stateRow > :first-child { color:var(--muted); }
.stateRow > :last-child { max-width:68%; text-align:right; overflow-wrap:anywhere; }
.invoiceSectionHeading { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:26px 0 13px; color:var(--ink); font-size:15px; font-weight:650; line-height:1.4; letter-spacing:-.015em; }
.invoiceSectionHeading:first-child { margin-top:0; }
.sectionCount { flex:0 0 auto; display:grid; place-items:center; min-width:25px; height:25px; border-radius:50%; padding:0 7px; background:#eaf8fc; color:var(--cyan-strong); font-size:11px; }
.invoiceCard { margin-bottom:14px; }
.commentBlock { border-top:1px solid var(--line); margin-top:14px; padding-top:13px; display:flex; align-items:center; gap:11px; }
.commentText { min-width:0; flex:1; }
.commentText small { display:block; font-size:10px; color:var(--muted); margin-bottom:4px; }
.commentText p { font-size:12px; line-height:1.5; color:#34475a; overflow-wrap:anywhere; -webkit-user-select:text; user-select:text; }
.copyButton { display:grid; place-items:center; min-width:44px; width:44px; height:44px; padding:10px; border:1px solid #d9eef4; border-radius:13px; color:var(--cyan-strong); background:#f3fbfd; flex:0 0 auto; }
.copyButton .icon { width:19px; height:19px; }
.invoiceDetails { margin-top:14px; border-top:1px solid var(--line); }
.invoiceDetails > summary { list-style:none; cursor:pointer; min-height:44px; display:flex; justify-content:space-between; align-items:center; gap:12px; font-size:12px; color:#67798c; padding-top:6px; }
.invoiceDetails > summary::-webkit-details-marker { display:none; }
.invoiceDetails summary .icon { width:16px; height:16px; transition:transform .15s; }
.invoiceDetails[open] summary .icon { transform:rotate(180deg); }
.invoiceDetails dl { margin:4px 0 0; }
.invoiceDataRow { display:grid; grid-template-columns:minmax(85px,.85fr) minmax(0,1.5fr); gap:15px; padding:8px 0; border-top:1px solid #f0f4f7; font-size:12px; line-height:1.6; }
.invoiceDataRow dt { color:var(--muted); }
.invoiceDataRow dd { margin:0; text-align:right; overflow-wrap:anywhere; }
.emptyState { text-align:center; padding:35px 22px; color:#6f8191; font-size:14px; line-height:1.7; border:1px dashed #d7e9ef; border-radius:20px; background:rgba(255,255,255,.8); }
#offlineNotice,#statusMessage:not(:empty),#authMessage:not(:empty) { padding:12px 15px; border-radius:13px; background:#edf8fb; color:#45687a; font-size:13px; line-height:1.6; }
#offlineNotice { background:#fff5df; color:#826229; margin:14px 0; }
#statusMessage:not(:empty) { margin-bottom:18px; }
.updateButton { min-height:44px; width:100%; margin-top:12px; border:1px solid #c7e8f0; padding:11px 14px; background:#e8f8fc; border-radius:14px; color:#087f99; font-size:13px; }
.copyFeedback { position:fixed; z-index:30; left:50%; bottom:max(25px,env(safe-area-inset-bottom)); transform:translateX(-50%); width:max-content; max-width:calc(100vw - 40px); border-radius:14px; color:#fff; background:#173a4b; box-shadow:0 7px 24px rgba(16,34,68,.16); padding:12px 18px; font-size:13px; line-height:1.5; text-align:center; }
.copyFeedback:empty { display:none; }
@media (hover:hover) { button.summaryCard:hover { transform:translateY(-2px); box-shadow:0 11px 32px rgba(42,89,110,.12); } .profileButton:hover { background:#e3f2f6; } .copyButton:hover { background:#e4f7fb; } }
@media (min-width:700px) { .shell { padding-top:35px; padding-bottom:30px; } .homeCards { grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; } .summaryCard { min-height:155px; padding:20px 15px; gap:12px; } .summaryIcon { width:49px; height:49px; } .summaryArrow { width:28px; height:28px; } .summaryValue { font-size:25px; } .summaryCaption { font-size:11px; } #selectedName { font-size:34px; margin-bottom:26px; } .summaryContent { gap:9px; } .sessionHeader { margin-bottom:32px; } .concertCard { padding:23px; } .concertHeading h3 { font-size:20px; } .loginCard { margin-top:100px; } }
@media (max-width:360px) { .shell { padding-left:16px; padding-right:16px; } .summaryCard { padding:18px 13px; gap:10px; min-height:120px; } .summaryIcon { width:46px; height:46px; } .summaryIcon .icon { width:26px; height:26px; } .summaryArrow { width:27px; height:27px; } .kartyaCim { font-size:12px; } .summaryValue { font-size:23px; } .summaryCaption { font-size:11px; } .loginCard { margin-top:60px; } .concertCard { padding:16px; } .dateBadge { width:45px; } .concertTop { gap:11px; } .concertHeading h3 { font-size:16px; } .gazsiOsszeg { font-size:21px; } .statusPill { padding:5px 7px; font-size:9px; } }
@media (prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } *,*::before,*::after { transition:none !important; } }

/* A nyilvános tájékoztatók elérése; nem alkalmazásmenü. */
.legalLinks{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:5px 12px;margin:13px 0 0;font-size:12px;line-height:1.5;color:#67768a}.legalLinks a{display:inline-flex;align-items:center;min-height:40px;padding:8px 0;color:#57697e;text-decoration:underline;text-underline-offset:3px}.legalLinks a:hover{color:#087e94}.legalLinks a:focus-visible{outline:3px solid #0798b3;outline-offset:4px;border-radius:3px}.syncFooter .legalLinks{margin:0 0 8px}

.itinerSlot:empty {display:none}
.itinerButton {display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;max-width:100%;padding:10px 14px;margin-top:14px;box-sizing:border-box;border:1px solid #a6dce5;border-radius:12px;background:#fff;color:#125b6b;font-family:inherit;font-size:13px;font-weight:700;line-height:1.4;text-decoration:none;cursor:pointer}
.itinerButton .icon {width:18px;height:18px;flex:none}
.itinerSlot .itinerButton {margin-top:4px}
.itinerButton:hover {background:#eaf8fb}
.itinerButton:focus-visible {outline:3px solid #125b6b;outline-offset:3px}

.concertRole{font-size:12px;color:#526676;margin-top:6px}.roleSettlement{border-top:1px solid #e2e8ee;margin-top:14px;padding-top:12px}.roleSettlement h4{margin:0 0 8px;font-size:13px;color:#425568}

.settlementLinkButton{margin-top:10px}

body.hasBottomNav .shell{padding-bottom:calc(96px + env(safe-area-inset-bottom))}
.bottomMenu{position:fixed;z-index:20;bottom:0;left:50%;transform:translateX(-50%);width:min(100%,720px);display:flex;background:rgba(255,255,255,.97);border-top:1px solid var(--line);box-shadow:0 -4px 20px rgba(16,34,68,.05);padding:8px 20px calc(8px + env(safe-area-inset-bottom));gap:8px}
.bottomMenu button{display:flex;flex:1;align-items:center;justify-content:center;gap:8px;min-height:48px;border:0;border-radius:13px;background:transparent;color:var(--muted);font-size:13px;font-weight:650}.bottomMenu button[aria-current="page"]{background:#eaf9fc;color:var(--cyan-strong)}.bottomMenu .icon{width:20px;height:20px}
.royaltyTitle{font-size:25px;color:var(--ink);margin:0 0 18px;letter-spacing:-.03em}.royaltyTerm{color:var(--muted);font-size:13px;line-height:1.6;margin:14px 2px 24px}.royaltyPeriod{font-weight:650;color:var(--cyan-strong);margin-top:7px}.royaltyIncluded{color:var(--muted);font-size:12px;line-height:1.6;margin-top:5px}.royaltyValue{font-size:25px;font-weight:750;letter-spacing:-.03em;margin:15px 0}.royaltyCard h3{font-size:18px;color:var(--ink)}.royaltyBreakdown{margin-top:16px;border-top:1px solid var(--line);padding-top:14px;font-size:13px}.royaltyBreakdown summary{cursor:pointer;color:var(--muted);min-height:30px}.royaltyBreakdown dl{margin-bottom:0}.royaltySummary{min-height:115px}body.hasBottomNav .copyFeedback{bottom:calc(86px + env(safe-area-inset-bottom))}
