/* =========================================================
   007 SIGNAL — vendégfelület
   Egyetlen sötét világ, szándékosan. Ez egy éjszaka, nem egy weboldal.
   ========================================================= */

@font-face{font-family:'Bodoni Moda';font-style:normal;font-weight:400;font-display:swap;
  src:url(fonts/bodoni-moda-latin-ext-400-normal.woff2) format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Bodoni Moda';font-style:normal;font-weight:400;font-display:swap;
  src:url(fonts/bodoni-moda-latin-400-normal.woff2) format('woff2');}
@font-face{font-family:'Bodoni Moda';font-style:normal;font-weight:500;font-display:swap;
  src:url(fonts/bodoni-moda-latin-ext-500-normal.woff2) format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Bodoni Moda';font-style:normal;font-weight:500;font-display:swap;
  src:url(fonts/bodoni-moda-latin-500-normal.woff2) format('woff2');}

@font-face{font-family:'Jost';font-style:normal;font-weight:300;font-display:swap;
  src:url(fonts/jost-latin-ext-300-normal.woff2) format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Jost';font-style:normal;font-weight:300;font-display:swap;
  src:url(fonts/jost-latin-300-normal.woff2) format('woff2');}
@font-face{font-family:'Jost';font-style:normal;font-weight:400;font-display:swap;
  src:url(fonts/jost-latin-ext-400-normal.woff2) format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Jost';font-style:normal;font-weight:400;font-display:swap;
  src:url(fonts/jost-latin-400-normal.woff2) format('woff2');}
@font-face{font-family:'Jost';font-style:normal;font-weight:500;font-display:swap;
  src:url(fonts/jost-latin-ext-500-normal.woff2) format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Jost';font-style:normal;font-weight:500;font-display:swap;
  src:url(fonts/jost-latin-500-normal.woff2) format('woff2');}

@font-face{font-family:'Space Mono';font-style:normal;font-weight:400;font-display:swap;
  src:url(fonts/space-mono-latin-ext-400-normal.woff2) format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Space Mono';font-style:normal;font-weight:400;font-display:swap;
  src:url(fonts/space-mono-latin-400-normal.woff2) format('woff2');}
@font-face{font-family:'Space Mono';font-style:normal;font-weight:700;font-display:swap;
  src:url(fonts/space-mono-latin-700-normal.woff2) format('woff2');}

@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:300;font-display:swap;
  src:url(fonts/cormorant-garamond-latin-ext-300-normal.woff2) format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:300;font-display:swap;
  src:url(fonts/cormorant-garamond-latin-300-normal.woff2) format('woff2');}

/* --- alap --- */
:root{
  --ground:#070906;
  --surface:#10140E;
  --surface-2:#171C14;
  --rule:#39422F;          /* láthatóbb vonal, mint korábban */
  --rule-soft:#232A1E;
  --text:#EDEAE1;
  --text-2:#B3B9A8;
  --text-3:#7E866F;
  --green:#2E6B4A;
  --green-lit:#59B084;
  --champagne:#C9B27C;
  --alert:#C6402B;
  --pad:clamp(1.25rem,6vw,2rem);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
/* A `hidden` mindig erősebb legyen, mint bármelyik saját display-szabályunk.
   Enélkül a leállított kamerakép eltakarta a kész fotót. */
[hidden]{display:none !important;}
html,body{min-height:100%;}
body{
  margin:0;background:var(--ground);color:var(--text);
  font-family:'Jost',-apple-system,BlinkMacSystemFont,'Helvetica Neue',Arial,sans-serif;
  font-weight:300;line-height:1.55;
  -webkit-font-smoothing:antialiased;
  overscroll-behavior-y:none;
  transition:background .45s ease;
}
#app{min-height:100dvh;display:flex;flex-direction:column;}

/* --- tipográfia --- */
.mono{font-family:'Space Mono',ui-monospace,monospace;font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:var(--text-3);line-height:1.7;}
.mono.gold{color:var(--champagne);}
.mono.grn{color:var(--green-lit);}
.mono.red{color:#D4705E;}
.display{font-family:'Bodoni Moda',Georgia,serif;font-weight:400;line-height:1.08;color:#fff;letter-spacing:-.005em;text-wrap:balance;}
.d1{font-size:clamp(1.9rem,8.5vw,2.7rem);}
.d2{font-size:clamp(1.45rem,6vw,2rem);}
.d3{font-size:clamp(1.15rem,4.8vw,1.45rem);}
.body{font-size:.95rem;line-height:1.62;color:var(--text-2);max-width:32ch;}
.body.sm{font-size:.85rem;line-height:1.6;}
.body.dim{color:var(--text-3);}
.body.center{text-align:center;margin-left:auto;margin-right:auto;}

/* --- elrendezés --- */
.view,.cue-view{
  flex:1;display:flex;flex-direction:column;
  padding:calc(var(--pad) + env(safe-area-inset-top)) var(--pad) calc(var(--pad) + env(safe-area-inset-bottom));
  gap:1rem;
}
.view.center{align-items:center;justify-content:center;text-align:center;}
body.has-demobar .view,body.has-demobar .cue-view{padding-top:calc(5.4rem + env(safe-area-inset-top));}
.grow{flex:1;}
.col{display:flex;flex-direction:column;}
.g05{gap:.35rem}.g1{gap:.6rem}.g2{gap:1rem}.g3{gap:1.5rem}
.hair{height:1px;background:var(--rule);}
.hair.gold{background:linear-gradient(90deg,var(--champagne),transparent);}
.hair.short{width:2.5rem;background:var(--champagne);}
.sectionhead{display:flex;flex-direction:column;gap:.6rem;}

/* --- logó --- */
.logomark{display:flex;justify-content:center;width:100%;}
.logomark img{display:block;height:auto;width:auto;}
.logomark.md img{max-width:min(62vw,14rem);}
.logomark.sm img{max-width:min(44vw,9.5rem);opacity:.92;}
.logomark.cue img{max-width:min(34vw,7.5rem);opacity:.55;}
.logomark.card img{max-width:min(54vw,12rem);}
.logomark.beacon img{max-width:min(58vw,13rem);}
.logomark.faint img{max-width:min(36vw,7.5rem);opacity:.2;}

/* --- gombok --- */
button{font:inherit;color:inherit;background:none;border:none;cursor:pointer;}
.btn{
  display:block;width:100%;text-align:center;
  border:1px solid var(--champagne);color:var(--champagne);background:transparent;
  font-family:'Jost',sans-serif;font-weight:400;font-size:.78rem;letter-spacing:.2em;text-transform:uppercase;
  padding:1.05rem 1rem;border-radius:2px;
  transition:background .2s ease,color .2s ease,opacity .2s ease;
}
.btn:active{background:var(--champagne);color:#070906;}
.btn.solid{background:var(--champagne);color:#070906;}
.btn.solid:active{opacity:.75;}
.btn.ghost{border-color:var(--rule);color:var(--text);}
.btn:disabled{opacity:.35;}

/* --- űrlap: jól látható mezők sötét kártyán --- */
.formcard{
  background:var(--surface);border:1px solid var(--rule-soft);border-radius:3px;
  padding:1.1rem 1rem .4rem;display:flex;flex-direction:column;gap:1.15rem;
}
.field{display:flex;flex-direction:column;gap:.3rem;padding-bottom:.75rem;
  border-bottom:1px solid var(--rule);}
.formcard .field:last-of-type{border-bottom:none;}
.field label{
  font-family:'Space Mono',monospace;font-size:.58rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--champagne);opacity:.85;
}
.field input,.field select{
  background:transparent;border:none;outline:none;color:#fff;width:100%;
  font-family:'Jost',sans-serif;font-weight:300;font-size:1.08rem;padding:.2rem 0;
}
.field input::placeholder{color:#6B7361;}
.field select{
  appearance:none;-webkit-appearance:none;
  background-image:linear-gradient(45deg,transparent 50%,var(--champagne) 50%),linear-gradient(135deg,var(--champagne) 50%,transparent 50%);
  background-position:calc(100% - 10px) center,calc(100% - 5px) center;
  background-size:5px 5px,5px 5px;background-repeat:no-repeat;
}
.field select option{background:#10140E;color:#EDEAE1;}
.field:focus-within{border-bottom-color:var(--champagne);}
.field:focus-within label{opacity:1;}
.fieldhelp{font-size:.72rem;line-height:1.45;color:var(--text-3);margin-top:.15rem;}

/* --- kérdés doboz --- */
.askbox{
  border:1px solid var(--rule);border-left:2px solid var(--champagne);
  background:rgba(201,178,124,.045);padding:1rem;display:flex;flex-direction:column;gap:.75rem;
}
.toggle{display:flex;gap:.5rem;}
.toggle button{
  flex:1;border:1px solid var(--rule);color:var(--text-3);padding:.8rem .4rem;
  font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;border-radius:2px;line-height:1.3;
}
.toggle button[aria-pressed="true"]{border-color:var(--green-lit);color:var(--green-lit);background:rgba(89,176,132,.1);}
.note{font-family:'Space Mono',monospace;font-size:.56rem;letter-spacing:.12em;text-transform:uppercase;color:var(--text-3);line-height:1.6;}
.err{color:#D4705E;font-size:.85rem;}

/* --- jelölőnégyzet --- */
.check{display:flex;align-items:flex-start;gap:.7rem;text-align:left;width:100%;padding:.35rem 0;}
.check .box{
  flex:0 0 auto;width:1.05rem;height:1.05rem;border:1px solid var(--rule);margin-top:.2rem;
  position:relative;transition:border-color .2s ease;
}
.check[aria-pressed="true"] .box{border-color:var(--champagne);}
.check[aria-pressed="true"] .box::after{content:"";position:absolute;inset:3px;background:var(--champagne);}
.check .lbl{font-size:.85rem;color:var(--text-2);line-height:1.45;display:flex;flex-direction:column;gap:.2rem;}
.check .lbl .sub{font-size:.72rem;color:var(--text-3);}

/* --- fedőnév --- */
.cn{
  display:flex;justify-content:space-between;align-items:center;width:100%;
  border:1px solid var(--rule);padding:.9rem 1rem;border-radius:2px;text-align:left;
  background:var(--surface);
  transition:border-color .2s ease,background .2s ease;
}
.cn .n{font-family:'Bodoni Moda',serif;font-size:1.35rem;color:#fff;letter-spacing:.05em;}
.cn .x{font-family:'Space Mono',monospace;font-size:.55rem;letter-spacing:.16em;color:var(--text-3);}
.cn[aria-pressed="true"]{border-color:var(--champagne);background:rgba(201,178,124,.09);}
.cn[aria-pressed="true"] .x{color:var(--champagne);}

/* --- az igazolvány --- */
.idcard{
  position:relative;overflow:hidden;
  border:1px solid var(--champagne);
  background:
    radial-gradient(120% 80% at 50% 8%,rgba(46,107,74,.28),rgba(0,0,0,0) 60%),
    linear-gradient(180deg,#0B0F09,#070906);
  padding:0;
}
.idcard::after{content:"";position:absolute;inset:6px;border:1px solid rgba(201,178,124,.22);pointer-events:none;}
.idcard .guilloche{position:absolute;inset:0;background-position:center;background-repeat:no-repeat;background-size:cover;opacity:.10;pointer-events:none;}
.idcard .corner{position:absolute;width:1.05rem;height:1.05rem;pointer-events:none;border-color:var(--champagne);border-style:solid;border-width:0;opacity:.85;}
.idcard .corner.tl{top:.7rem;left:.7rem;border-top-width:1px;border-left-width:1px;}
.idcard .corner.tr{top:.7rem;right:.7rem;border-top-width:1px;border-right-width:1px;}
.idcard .corner.bl{bottom:1.6rem;left:.7rem;border-bottom-width:1px;border-left-width:1px;}
.idcard .corner.br{bottom:1.6rem;right:.7rem;border-bottom-width:1px;border-right-width:1px;}
.idcard .cardinner{position:relative;display:flex;flex-direction:column;gap:1rem;align-items:center;padding:1.5rem 1.25rem 1.1rem;}
.idcard .cardhead{letter-spacing:.24em;}
.idcard .hair{width:100%;}
.idcard .center{align-items:center;text-align:center;}
.idcard .cn-name{font-family:'Bodoni Moda',serif;font-size:clamp(2.1rem,11vw,2.9rem);color:var(--champagne);line-height:1;letter-spacing:.05em;}
.idcard .real{font-family:'Bodoni Moda',serif;font-size:1.3rem;color:#fff;line-height:1.1;letter-spacing:.03em;}
.idcard .datagrid{display:grid;grid-template-columns:repeat(3,1fr);width:100%;
  border-top:1px solid rgba(201,178,124,.22);border-bottom:1px solid rgba(201,178,124,.22);
  padding:.7rem 0;gap:.5rem;}
.idcard .datagrid > div{display:flex;flex-direction:column;gap:.15rem;align-items:center;text-align:center;}
.idcard .datagrid .v{font-family:'Space Mono',monospace;font-size:.8rem;letter-spacing:.1em;color:#fff;font-variant-numeric:tabular-nums;}
.idcard .statusrow{display:flex;justify-content:space-between;width:100%;gap:1rem;}
.idcard .microtext{position:relative;font-family:'Space Mono',monospace;font-size:.4rem;letter-spacing:.28em;
  color:var(--champagne);opacity:.38;white-space:nowrap;overflow:hidden;
  padding:.35rem .5rem .5rem;border-top:1px solid rgba(201,178,124,.14);}
.dot{width:.4rem;height:.4rem;border-radius:50%;background:var(--green-lit);display:inline-block;margin-right:.35rem;vertical-align:baseline;}

/* --- megosztás doboz --- */
.sharebox{
  border:1px solid var(--rule);background:var(--surface);border-radius:3px;
  padding:1.1rem 1rem;display:flex;flex-direction:column;gap:.75rem;margin-top:1.25rem;
}
.sharebox .body{max-width:none;}

/* --- kvíz --- */
.quizopt{transition:border-color .25s ease,color .25s ease,background .25s ease,opacity .25s ease;}
.quizopt.right{border-color:var(--green-lit);color:var(--green-lit);background:rgba(89,176,132,.12);}
.quizopt.wrong{border-color:#C6402B;color:#D4705E;background:rgba(198,64,43,.1);}
.quizopt.faded{opacity:.32;}
.quizopt:disabled{opacity:1;}
.quizopt.faded:disabled{opacity:.32;}
.quizresult{
  border-left:2px solid var(--rule);padding:.75rem 0 .75rem .9rem;
  display:flex;flex-direction:column;gap:.4rem;margin-top:1.1rem;
}
.quizresult.ok{border-left-color:var(--green-lit);}
.quizresult.no{border-left-color:#C6402B;}

/* --- készenlét --- */
@keyframes breathe{0%,100%{opacity:.18}50%{opacity:.9}}
.breathe{animation:breathe 3.6s ease-in-out infinite;}
body.standby{background:#040502;}

/* --- animációk --- */
@keyframes fadeup{from{opacity:0;transform:translateY(.5rem)}to{opacity:1;transform:none}}
.fade{animation:fadeup .7s cubic-bezier(.2,.7,.3,1) both;}
.fade.d1x{animation-delay:.15s}.fade.d2x{animation-delay:.35s}.fade.d3x{animation-delay:.6s}

.countdown{font-family:'Bodoni Moda',serif;font-size:clamp(5rem,32vw,10rem);line-height:.9;color:#fff;font-variant-numeric:tabular-nums;}

@keyframes redflash{0%,100%{background:#120604}50%{background:#9E2A19}}
body.flash-red{animation:redflash 1.05s steps(1,end) infinite;}
body.tone-clean{background:#0A0D08;}
body.blackout{background:#000;}

/* világos háttéren (fehér fény) a szöveg feketébe fordul */
body.on-light .display,body.on-light .countdown{color:#070906;}
body.on-light .body{color:rgba(7,9,6,.72);}
body.on-light .mono{color:rgba(7,9,6,.6);}
body.on-light .hair{background:rgba(7,9,6,.25);}

@keyframes beaconpulse{0%,100%{background:var(--b2)}50%{background:var(--b1)}}
body.beacon{animation:beaconpulse var(--bp,2400ms) ease-in-out infinite;}
.pulse-foot{color:#8A8F80;mix-blend-mode:difference;}

/* --- nyelvválasztó --- */
.langbar{display:flex;align-items:center;gap:.5rem;justify-content:flex-end;width:100%;}
.lang{font-family:'Space Mono',monospace;font-size:.6rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--text-3);padding:.35rem .1rem;border-bottom:1px solid transparent;}
.lang.on{color:var(--champagne);border-bottom-color:var(--champagne);}
.langsep{color:var(--rule);font-size:.7rem;}

/* --- állapotsáv --- */
.statusbar{
  position:fixed;left:0;right:0;bottom:0;z-index:50;
  display:flex;justify-content:center;padding:.4rem var(--pad) calc(.4rem + env(safe-area-inset-bottom));
  font-family:'Space Mono',monospace;font-size:.52rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--text-3);pointer-events:none;
}
.statusbar.warn{color:#D4705E;}

/* --- demó --- */
.demobadge{
  font-family:'Jost',sans-serif;font-size:.72rem;line-height:1.5;
  color:var(--champagne);border:1px solid rgba(201,178,124,.35);padding:.6rem .8rem;
  border-radius:2px;text-align:center;max-width:22rem;
}
#demobar{
  position:fixed;left:50%;transform:translateX(-50%);
  top:calc(.6rem + env(safe-area-inset-top));z-index:100;
  display:flex;align-items:stretch;
  background:rgba(7,9,6,.94);border:1px solid var(--rule);border-radius:3px;
  backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);
  max-width:calc(100vw - 1.5rem);box-shadow:0 .5rem 1.5rem rgba(0,0,0,.5);
}
#demobar button{width:2.7rem;flex:0 0 auto;color:var(--champagne);font-size:1rem;line-height:1;
  border-left:1px solid var(--rule);font-family:'Space Mono',monospace;}
#demobar button:active{background:rgba(201,178,124,.15);}
#demobar .dinfo{display:flex;flex-direction:column;justify-content:center;gap:.1rem;padding:.45rem .9rem;min-width:10rem;text-align:center;}
#demobar .dnum{font-family:'Space Mono',monospace;font-size:.48rem;letter-spacing:.16em;color:var(--text-3);}
#demobar .dlab{font-family:'Jost',sans-serif;font-size:.72rem;letter-spacing:.02em;color:var(--text);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:13rem;}
@keyframes hintpulse{0%,100%{opacity:.45}50%{opacity:1}}
#demohint{
  position:fixed;left:50%;transform:translateX(-50%);
  top:calc(4.6rem + env(safe-area-inset-top));z-index:99;
  font-family:'Space Mono',monospace;font-size:.52rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--champagne);white-space:nowrap;pointer-events:none;
  animation:hintpulse 2.4s ease-in-out infinite;
}

/* --- a két koppintási zóna jelzése: apró nyíl a képernyő szélén --- */
#demozones{position:fixed;inset:0;z-index:98;pointer-events:none;}
#demozones .dz{
  position:absolute;top:50%;transform:translateY(-50%);
  display:flex;flex-direction:column;align-items:center;gap:.25rem;
  color:var(--champagne);opacity:.4;animation:hintpulse 3.2s ease-in-out infinite;
}
#demozones .dz.left{left:.55rem;}
#demozones .dz.right{right:.55rem;}
#demozones .dz.off{opacity:.12;animation:none;}
#demozones .dz i{
  font-style:normal;font-size:1.1rem;line-height:1;width:1.8rem;height:1.8rem;
  border:1px solid currentColor;border-radius:50%;display:flex;align-items:center;justify-content:center;
}
#demozones .dz em{
  font-style:normal;font-family:'Space Mono',monospace;font-size:.42rem;letter-spacing:.14em;text-transform:uppercase;
}

/* --- „mi történik itt?” magyarázó panel --- */
#demonote{
  position:fixed;inset:0;z-index:150;background:rgba(4,6,4,.86);
  display:flex;align-items:flex-end;justify-content:center;padding:1rem;
  backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);
  animation:fadein .18s ease both;
}
#demonote .dncard{
  width:min(30rem,100%);background:var(--surface);border:1px solid var(--rule);
  border-top:2px solid var(--champagne);border-radius:4px;
  padding:1.1rem 1.1rem calc(1.1rem + env(safe-area-inset-bottom));
  display:flex;flex-direction:column;gap:.5rem;
  animation:slideup .24s cubic-bezier(.2,.7,.3,1) both;
}
#demonote .body{max-width:none;}
@keyframes fadein{from{opacity:0}to{opacity:1}}
@keyframes slideup{from{transform:translateY(1.5rem);opacity:.4}to{transform:none;opacity:1}}

/* --- felszolgálóhívás a készenléti képernyőn --- */
.svc{display:flex;flex-direction:column;gap:.5rem;width:100%;max-width:20rem;margin:0 auto 1.25rem;}
.svcrow{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;}
.svcrow .btn{width:100%;}

/* --- hangkapcsoló az aktában --- */
.soundtoggle{
  display:flex;align-items:center;gap:.8rem;width:100%;text-align:left;
  border:1px solid var(--rule-soft);background:var(--surface);border-radius:3px;
  padding:.75rem .85rem;margin-top:.25rem;
}
.soundtoggle .sw{
  flex:0 0 auto;width:2.4rem;height:1.35rem;border-radius:1rem;position:relative;
  background:var(--rule-soft);border:1px solid var(--rule);transition:background .2s ease,border-color .2s ease;
}
.soundtoggle .sw i{
  position:absolute;top:.15rem;left:.15rem;width:.9rem;height:.9rem;border-radius:50%;
  background:var(--text-3);transition:transform .22s cubic-bezier(.3,.9,.3,1),background .2s ease;
}
.soundtoggle.on .sw{background:rgba(89,176,132,.25);border-color:var(--green-lit);}
.soundtoggle.on .sw i{transform:translateX(1.05rem);background:var(--green-lit);}
.soundtoggle .lbl{display:flex;flex-direction:column;gap:.15rem;min-width:0;}
.soundtoggle .lbl b{
  font-family:'Space Mono',monospace;font-size:.54rem;letter-spacing:.16em;font-weight:400;
  color:var(--text-2);
}
.soundtoggle.on .lbl b{color:var(--green-lit);}
.soundtoggle .lbl em{font-style:normal;font-size:.76rem;line-height:1.4;color:var(--text-3);}

/* --- ügynökprofil-ajánlat a készenléti képernyőn --- */
.teaser{
  display:flex;flex-direction:column;gap:.2rem;width:100%;text-align:left;
  border:1px solid rgba(89,176,132,.4);background:rgba(46,107,74,.1);
  border-radius:3px;padding:.8rem .9rem;margin-bottom:.15rem;
  animation:teasein .5s ease both;
}
.teaser:active{background:rgba(46,107,74,.2);}
.teaser .tq{font-family:'Bodoni Moda',serif;font-size:1.1rem;color:#fff;line-height:1.25;}
.teaser .ts{font-size:.78rem;line-height:1.45;color:var(--text-3);}
.teaser .tgo{
  font-family:'Space Mono',monospace;font-size:.5rem;letter-spacing:.18em;
  color:var(--green-lit);margin-top:.25rem;
}
@keyframes teasein{from{opacity:0;transform:translateY(.4rem)}to{opacity:1;transform:none}}

/* --- elfogott üzenetek --- */
.sigint{
  width:100%;max-width:22rem;margin:0 auto 1rem;text-align:left;
  border-top:1px solid var(--rule-soft);padding-top:.7rem;
  display:flex;flex-direction:column;gap:.35rem;
}
.sigrow{display:flex;align-items:center;gap:.5rem;}
.sigrow .mono{font-size:.5rem;letter-spacing:.18em;flex:1;}
.newtag{
  font-family:'Space Mono',monospace;font-size:.42rem;letter-spacing:.14em;
  color:#070906;background:var(--green-lit);padding:.12rem .3rem;border-radius:2px;
}
.siglink{
  font-family:'Space Mono',monospace;font-size:.5rem;letter-spacing:.14em;
  color:var(--text-3);border:1px solid var(--rule-soft);padding:.22rem .4rem;border-radius:2px;
}
.siglink:active{color:var(--champagne);border-color:var(--champagne);}
.sigline{display:flex;gap:.5rem;align-items:baseline;}
.sigline .t{
  font-family:'Space Mono',monospace;font-size:.48rem;color:var(--champagne);
  opacity:.7;flex:0 0 auto;padding-top:.1rem;
}
.sigline .x{font-size:.78rem;line-height:1.5;color:var(--text-3);}
.sigline.fresh{animation:sigin .5s ease both;}
@keyframes sigin{from{opacity:0;transform:translateY(.35rem)}to{opacity:1;transform:none}}
.redacted{
  display:inline-block;height:.72em;background:#3A4232;border-radius:1px;
  vertical-align:-.06em;margin:0 .12em;
}
.siglist{display:flex;flex-direction:column;gap:.6rem;margin-top:.25rem;}
.sigcard{
  border:1px solid var(--rule-soft);border-left:2px solid rgba(201,178,124,.5);
  background:var(--surface);border-radius:3px;padding:.7rem .85rem;
  display:flex;flex-direction:column;gap:.25rem;
}
.sigcard .mono{font-size:.48rem;letter-spacing:.16em;}
.sigcard .body{max-width:none;color:var(--text-2);}
.sigcard .redacted{background:#4A5340;}

/* --- 007 pecsét --- */
.seal{display:block;width:3.2rem;height:auto;opacity:.9;}
.seal.watermark{
  position:absolute;left:50%;top:50%;width:min(78vw,20rem);
  transform:translate(-50%,-50%);opacity:.045;pointer-events:none;
}
.standby{position:relative;}
.seal.cardseal{
  position:absolute;right:.85rem;top:.85rem;width:2.7rem;opacity:.42;
  transform:rotate(-9deg);pointer-events:none;
}
.seal.resultseal{width:4.2rem;margin:0 auto;animation:stamp .5s cubic-bezier(.2,1.4,.4,1) both;}
@keyframes stamp{
  0%{transform:scale(1.5) rotate(-14deg);opacity:0;}
  60%{opacity:1;}
  100%{transform:scale(1) rotate(-4deg);opacity:.95;}
}

/* --- fotó az igazolványon --- */
.cardphoto{
  width:6.4rem;height:6.4rem;margin:.35rem auto .1rem;border-radius:2px;overflow:hidden;
  border:1px solid rgba(201,178,124,.45);background:#0A0D08;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.15rem;
  animation:cardin .45s ease both;
}
.cardphoto img{width:100%;height:100%;object-fit:cover;display:block;}
.cardphoto.empty{border-style:dashed;padding:.5rem;text-align:center;}
.cardphoto.empty .mono{font-size:.44rem;letter-spacing:.1em;line-height:1.4;}
.cardphoto.empty .sub{
  font-family:'Jost';font-size:.5rem;line-height:1.35;color:var(--text-3);
  font-style:italic;text-transform:none;letter-spacing:0;
}
@keyframes cardin{from{opacity:0;transform:scale(.94)}to{opacity:1;transform:none}}
.cardclass{
  font-family:'Bodoni Moda',serif;font-size:1.05rem;color:var(--champagne);letter-spacing:.02em;
}

/* --- fotófelvétel --- */
.shotframe{
  position:relative;width:min(72vw,17rem);aspect-ratio:1;margin:.75rem auto 0;
  border:1px solid var(--rule);background:#050704;overflow:hidden;border-radius:3px;
}
.shotframe video,.shotframe canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;}
.shotframe video{transform:scaleX(-1);}
.shotframe .c{position:absolute;width:1.1rem;height:1.1rem;border:1px solid var(--champagne);opacity:.75;}
.shotframe .c.tl{top:.5rem;left:.5rem;border-right:0;border-bottom:0;}
.shotframe .c.tr{top:.5rem;right:.5rem;border-left:0;border-bottom:0;}
.shotframe .c.bl{bottom:.5rem;left:.5rem;border-right:0;border-top:0;}
.shotframe .c.br{bottom:.5rem;right:.5rem;border-left:0;border-top:0;}
.stylerow{display:flex;gap:.4rem;justify-content:center;margin-top:.75rem;}
.stylebtn{
  font-family:'Space Mono',monospace;font-size:.52rem;letter-spacing:.14em;text-transform:uppercase;
  border:1px solid var(--rule-soft);color:var(--text-3);padding:.5rem .65rem;border-radius:2px;
  transition:color .18s ease,border-color .18s ease,transform .18s ease;
}
.stylebtn.on{color:#070906;background:var(--champagne);border-color:var(--champagne);}
.stylebtn:active{transform:scale(.96);}

/* --- ügynökprofil --- */
.qbar{height:2px;background:var(--rule-soft);overflow:hidden;border-radius:2px;}
.qbar > i{display:block;height:100%;background:var(--champagne);transition:width .35s cubic-bezier(.3,.9,.3,1);}
.qopt{transition:transform .16s ease,border-color .16s ease,background .16s ease;}
.qopt:active{transform:scale(.985);}
.qopt.picked{border-color:var(--champagne);background:rgba(201,178,124,.12);transform:scale(.985);}
.resultblock.pop{animation:popin .45s cubic-bezier(.2,.9,.3,1) both;}
@keyframes popin{from{opacity:0;transform:translateY(.6rem)}to{opacity:1;transform:none}}
.riskbox{
  border:1px solid var(--rule-soft);background:var(--surface);border-radius:3px;
  padding:.85rem .9rem;display:flex;flex-direction:column;gap:.5rem;margin-top:1rem;
}
.riskbox > div{display:flex;flex-direction:column;gap:.15rem;}
.riskbox .v{font-family:'Bodoni Moda',serif;font-size:1rem;color:#fff;}

.homelink{
  font-family:'Space Mono',monospace;font-size:.55rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--text-3);padding:.5rem;
}
.homelink:active{color:var(--champagne);}

/* --- sziréna / riasztás ---
   A lüktetés 1,4 másodperces: bőven a 3 Hz-es biztonsági határ alatt,
   ami fényérzékeny embereknél kockázatot jelentene. Ezt ne gyorsítsuk fel. */
body.alarm{animation:alarmbg 1.4s ease-in-out infinite;}
@keyframes alarmbg{
  0%,100%{background:#1A0603;}
  50%{background:#5E1509;}
}
.alarmview .display{color:#fff;text-shadow:0 0 2.5rem rgba(198,64,43,.55);}
.alarmbadge{
  display:flex;align-items:center;gap:.6rem;align-self:center;
  border:1px solid rgba(255,120,90,.6);border-radius:2px;padding:.5rem .8rem;
  font-family:'Space Mono',monospace;font-size:.6rem;letter-spacing:.24em;color:#FFB3A1;
  background:rgba(198,64,43,.18);
}
.alarmbadge .dot{
  width:.5rem;height:.5rem;border-radius:50%;background:#FF6A4D;
  animation:alarmdot 1.4s ease-in-out infinite;
}
@keyframes alarmdot{0%,100%{opacity:.3;box-shadow:0 0 0 0 rgba(255,106,77,.6);}50%{opacity:1;box-shadow:0 0 0 .55rem rgba(255,106,77,0);}}
.alarmbadge .alt{opacity:.5;}
.alarmfoot{color:#FFB3A1 !important;letter-spacing:.3em;}
@media (prefers-reduced-motion:reduce){
  body.alarm{animation:none;background:#3A0D06;}
}

/* --- bejövő hívás --- */
body.ringing{background:#0A0D08;}
.ringview{gap:.5rem;}
@keyframes ringpulse{0%,100%{opacity:.45}50%{opacity:1}}
.ringpulse{animation:ringpulse 1.4s ease-in-out infinite;}
.ringavatar{
  width:6.5rem;height:6.5rem;border-radius:50%;margin:1rem auto .25rem;
  border:1px solid var(--champagne);display:flex;align-items:center;justify-content:center;
  background:radial-gradient(circle at 50% 40%,rgba(201,178,124,.18),rgba(201,178,124,.03));
  animation:ringhalo 1.4s ease-in-out infinite;
}
@keyframes ringhalo{
  0%,100%{box-shadow:0 0 0 0 rgba(201,178,124,.35);}
  50%{box-shadow:0 0 0 1.1rem rgba(201,178,124,0);}
}
.ringavatar span{font-family:'Bodoni Moda',serif;font-size:2.6rem;color:#fff;line-height:1;}
/* fénykép a hívó helyén: feketén-fehéren, hogy bármilyen kép okmányfotóvá váljon */
.ringavatar.photo{overflow:hidden;padding:0;background:#0A0D08;}
.ringavatar.photo img{
  width:100%;height:100%;object-fit:cover;display:block;
  filter:grayscale(1) contrast(1.12) brightness(.92);
}
.answerbtn{
  display:flex;align-items:center;justify-content:center;gap:.8rem;width:100%;
  background:var(--green-lit);color:#06180F;border-radius:3px;padding:1.15rem 1rem;
  font-family:'Jost';font-size:.85rem;letter-spacing:.22em;text-transform:uppercase;
  animation:answerbeat 1.6s ease-in-out infinite;
}
/* csak a fénykoszorú lüktet — a gomb maga nem mozdul, hogy sose lehessen mellényúlni */
@keyframes answerbeat{
  0%,100%{box-shadow:0 0 0 0 rgba(89,176,132,.45);}
  50%{box-shadow:0 0 0 .9rem rgba(89,176,132,0);}
}
.answerbtn:active{opacity:.8;animation:none;}
.answerbtn .ico{font-size:1.3rem;line-height:1;transform:rotate(8deg);}

/* --- szerviz képernyő: asztal + belépési ajánlat --- */
.tablechip{
  display:flex;align-items:center;gap:.8rem;margin-top:.75rem;
  border:1px solid rgba(201,178,124,.4);background:rgba(201,178,124,.06);
  border-radius:3px;padding:.75rem .9rem;
}
.tablechip .tno{font-family:'Bodoni Moda',serif;font-size:1.7rem;color:#fff;line-height:1;flex:1;}
.tablechip .mini{
  font-family:'Jost';font-size:.58rem;letter-spacing:.14em;text-transform:uppercase;
  border:1px solid var(--rule);padding:.45rem .6rem;color:var(--text-2);border-radius:2px;white-space:nowrap;
}
.joinbox{
  border:1px solid var(--rule-soft);border-left:2px solid var(--green-lit);
  background:var(--surface);border-radius:3px;padding:.9rem 1rem;
  display:flex;flex-direction:column;gap:.5rem;
}
.joinbox .body{max-width:none;}

/* --- felső sáv: kiút a főoldalra a regisztráció közben --- */
.apptop{display:flex;align-items:center;justify-content:space-between;gap:1rem;width:100%;}
.apptop .langbar{width:auto;}
.backlink{
  font-family:'Space Mono',monospace;font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--text-3);text-decoration:none;white-space:nowrap;padding:.35rem .1rem;
}
.backlink:active{color:var(--champagne);}
#sheet .sheetcard .btn.solid{text-decoration:none;}
.btn.sm{padding:.75rem .8rem;font-size:.66rem;letter-spacing:.18em;text-decoration:none;}
.svcstate{
  border:1px solid rgba(201,178,124,.4);border-radius:3px;padding:.8rem .9rem;text-align:center;
  background:rgba(201,178,124,.06);
}
.svcstate.ack{border-color:rgba(89,176,132,.5);background:rgba(46,107,74,.12);}
.svcstate .body{max-width:none;color:var(--text-2);}

/* --- alulról felcsúszó választó (hívás, asztal) --- */
#sheet{
  position:fixed;inset:0;z-index:160;background:rgba(4,6,4,.86);
  display:flex;align-items:flex-end;justify-content:center;padding:1rem;
  backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);
  animation:fadein .18s ease both;
}
#sheet .sheetcard{
  width:min(30rem,100%);background:var(--surface);border:1px solid var(--rule);
  border-top:2px solid var(--champagne);border-radius:4px;
  padding:1.1rem 1.1rem calc(1.1rem + env(safe-area-inset-bottom));
  display:flex;flex-direction:column;gap:.45rem;
  animation:slideup .24s cubic-bezier(.2,.7,.3,1) both;
}
#sheet .body{max-width:none;}
.kindbtn{
  display:flex;flex-direction:column;align-items:flex-start;gap:.1rem;width:100%;text-align:left;
  border:1px solid var(--rule);background:#0D110B;border-radius:2px;padding:.85rem .9rem;
}
.kindbtn:active{background:var(--surface-2);border-color:var(--champagne);}
.kindbtn:disabled{opacity:.4;}
.kindbtn .n{font-family:'Bodoni Moda',serif;font-size:1.15rem;color:#fff;line-height:1.2;}
#sheet .notefield{margin-top:.9rem;padding-bottom:0;border-bottom:none;}
#sheet .notefield input{
  background:#0D110B;border:1px solid var(--rule);color:#fff;font:inherit;font-size:.95rem;
  padding:.75rem .7rem;border-radius:2px;width:100%;
}
#sheet .btn.sm{margin-top:.9rem;}
.kindbtn .s{font-family:'Space Mono',monospace;font-size:.5rem;letter-spacing:.14em;text-transform:uppercase;color:var(--text-3);}

@media (prefers-reduced-motion:reduce){*{animation:none !important;transition:none !important;}}
:focus-visible{outline:2px solid var(--champagne);outline-offset:3px;}

/* --- QR-olvasó --- */
#scanner{
  position:fixed;inset:0;z-index:200;background:#000;
  display:flex;align-items:center;justify-content:center;overflow:hidden;
}
#scanner video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.85;}
.scan-ui{
  position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:1.25rem;
  padding:calc(2rem + env(safe-area-inset-top)) var(--pad) calc(2rem + env(safe-area-inset-bottom));
  width:100%;height:100%;justify-content:center;
  background:radial-gradient(60% 40% at 50% 45%,rgba(0,0,0,0) 40%,rgba(0,0,0,.75) 100%);
}
.scan-frame{position:relative;width:min(64vw,15rem);aspect-ratio:1;}
.scan-frame i{position:absolute;width:2.2rem;height:2.2rem;border:2px solid var(--champagne);}
.scan-frame i:nth-child(1){top:0;left:0;border-right:none;border-bottom:none;}
.scan-frame i:nth-child(2){top:0;right:0;border-left:none;border-bottom:none;}
.scan-frame i:nth-child(3){bottom:0;left:0;border-right:none;border-top:none;}
.scan-frame i:nth-child(4){bottom:0;right:0;border-left:none;border-top:none;}
.scan-actions{display:flex;flex-direction:column;gap:.6rem;width:100%;max-width:20rem;}
.scan-ui .body{color:#D8DCD2;text-shadow:0 1px 6px rgba(0,0,0,.8);}

/* --- stroboszkóp felirat --- */
.strobe-foot{mix-blend-mode:difference;color:#9AA08F;}

/* --- bemutató magyarázó dobozai --- */
.notecard{
  border:1px solid var(--rule-soft);border-left:2px solid var(--green-lit);
  background:var(--surface);padding:.9rem 1rem;display:flex;flex-direction:column;gap:.4rem;
}
.notecard .body{max-width:none;}

/* Adatkezelési sor a regisztrációs űrlap alján */
.privacyline{font-size:.72rem;color:var(--text-3);max-width:34ch;margin-top:.2rem;}
.privacyline a{color:var(--champagne);text-decoration:none;border-bottom:1px solid rgba(201,178,124,.4);}
