/* Reachardo: wspólne style aplikacji */

:root{
  --page:#C9C9C9; --app:#F4F4F4; --card:#FFFFFF;
  --blue:#0B45C4; --ink:#0E1A33; --muted:#5F5F5F; --muted2:#9A9A9A;
  --blue-soft:#E8F0FE; --red:#E63A2E; --green:#0E9E6E;
  --sh:0 3px 14px rgba(16,16,16,.05); --sh2:0 2px 10px rgba(16,16,16,.05);
}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent;}
html,body{margin:0;padding:0;background:var(--page);font-family:'Manrope',system-ui,sans-serif;-webkit-font-smoothing:antialiased;color:var(--ink);}
body{height:100vh;height:100dvh;overflow:hidden;display:flex;justify-content:center;}
::-webkit-scrollbar{width:0;}
.app{width:100%;max-width:440px;height:100vh;height:100dvh;background:var(--app);display:flex;flex-direction:column;position:relative;overflow:hidden;overscroll-behavior-x:none;}
@media(min-width:460px){body{overflow:auto;align-items:center;}.app{margin:22px 0;height:860px;border-radius:44px;box-shadow:0 40px 90px -30px rgba(16,16,16,.45);}}

.topbar{display:flex;align-items:center;gap:12px;padding:calc(env(safe-area-inset-top) + 18px) 20px 12px;flex-shrink:0;}
.topbar-logo{display:block;width:126px;height:auto;}
.gate-logo{display:block;width:190px;height:auto;margin:0 auto;}
.welcome-logo{display:block;width:240px;height:auto;margin:0 auto;}
.onboarding-logo{position:relative;width:228px;aspect-ratio:850/145;overflow:hidden;margin:0 auto;line-height:0;}
.onboarding-logo>img{display:block;width:228px;height:auto;}
.onboarding-logo .base{opacity:.12;}
.onboarding-logo .fill{position:absolute;inset:0 auto 0 0;width:14%;overflow:hidden;transition:width .25s ease;}
.onboarding-logo .fill img{display:block;width:228px;max-width:none;height:auto;}
.ava{border-radius:50%;background:var(--blue);color:#fff;display:flex;align-items:center;justify-content:center;font-weight:700;letter-spacing:-.02em;flex-shrink:0;}
.ava.grey{background:#EDEDED;color:var(--muted2);}
.greet{font-size:12px;font-weight:500;color:var(--muted);}
.hname{font-size:16.5px;font-weight:700;letter-spacing:-.03em;color:var(--ink);margin-top:1px;}
.bell{width:44px;height:44px;border-radius:50%;background:#fff;display:flex;align-items:center;justify-content:center;position:relative;flex-shrink:0;box-shadow:var(--sh2);cursor:pointer;border:none;}
.bell .dot{position:absolute;top:10px;right:11px;width:8px;height:8px;border-radius:50%;background:var(--red);border:1.6px solid #fff;}
.bell svg{width:20px;height:20px;}

main{flex:1;min-height:0;overflow-y:auto;-webkit-overflow-scrolling:touch;touch-action:pan-y;}
.pad{padding:2px 18px calc(env(safe-area-inset-bottom) + 108px);}

.h1{font-size:22px;font-weight:700;letter-spacing:-.035em;margin:24px 0 4px;}
.desc{font-size:13.5px;line-height:1.55;color:var(--muted);text-align:justify;}
.lbl{font-size:13px;font-weight:700;color:var(--ink);margin:24px 0 10px;}
.small{font-size:12px;color:var(--muted);}

.card{background:var(--card);border-radius:26px;box-shadow:var(--sh);padding:18px;margin-bottom:12px;}
.tap{cursor:pointer;transition:transform .1s;}
.tap:active{transform:scale(.99);}

.bigcard{background:var(--blue);border-radius:32px;padding:22px;color:#fff;}
.btn{width:100%;padding:17px;border-radius:26px;border:none;background:var(--blue);color:#fff;font-size:15px;font-weight:700;letter-spacing:-.01em;font-family:inherit;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:10px;}
.btn:active{transform:scale(.99);}
.btn[disabled]{opacity:.5;cursor:not-allowed;}
.btn.ghost{background:#fff;color:var(--ink);box-shadow:var(--sh2);}
.btn.sm{padding:13px;font-size:13.5px;border-radius:20px;}
.btn.red{background:#fff;color:var(--red);box-shadow:var(--sh2);}

.pill{display:inline-block;font-size:12px;font-weight:700;padding:5px 12px;border-radius:999px;background:#F4F4F4;color:var(--ink);margin:0 6px 7px 0;}
.pill.blue{background:var(--blue-soft);color:var(--blue);}
.pill.green{background:#E4F6EE;color:var(--green);}
.pill.amber{background:#FCEFDA;color:#B9762A;}
.chiprow{display:flex;flex-wrap:wrap;gap:0;}

.ta{width:100%;min-height:104px;padding:16px;border:none;border-radius:26px;background:transparent;resize:none;font-size:15px;line-height:1.5;color:var(--ink);font-family:inherit;outline:none;}
input.f,select.f{width:100%;padding:14px 16px;border:1px solid transparent;border-radius:20px;background:#fff;box-shadow:var(--sh2);font-size:15px;font-family:inherit;color:var(--ink);outline:none;}
input.f.invalid,select.f.invalid,textarea.f.invalid{border:1px solid var(--red);box-shadow:0 0 0 3px rgba(224,49,49,.12);}
.ferr{color:var(--red);font-size:12px;font-weight:600;margin-top:6px;display:none;}
.ferr.show{display:block;}
.reqmark{color:var(--red);font-weight:700;margin-left:3px;}
input.f:focus,select.f:focus,.btn:focus-visible,a:focus-visible,button:focus-visible,input[type="checkbox"]:focus-visible{outline:3px solid rgba(11,69,196,.35);outline-offset:2px;}
label.field{display:block;margin-bottom:12px;}
label.field span{display:block;font-size:12px;color:var(--muted);font-weight:600;margin-bottom:6px;padding-left:4px;}
.legal-check{display:grid;grid-template-columns:22px 1fr;gap:10px;align-items:start;margin-top:14px;}
.legal-check input{width:20px;height:20px;margin:1px 0 0;accent-color:var(--blue);cursor:pointer;}
.legal-check input.invalid{outline:2px solid var(--red);outline-offset:2px;}
.legal-check label{font-size:12px;line-height:1.5;color:var(--ink);cursor:pointer;}
.legal-check a{color:var(--blue);font-weight:800;text-decoration:underline;text-underline-offset:2px;}
.contract-note{font-size:11px;line-height:1.5;text-align:center;color:var(--muted);margin-top:10px;}
.signup-status{display:none;font-size:12px;line-height:1.45;font-weight:700;margin-top:10px;}
.signup-status.error{display:block;color:var(--red);}
.signup-status.success{display:block;color:var(--green);}

.row{display:flex;gap:14px;align-items:center;}
.nm{font-size:15px;font-weight:700;letter-spacing:-.025em;color:var(--ink);}
.sub{font-size:12.5px;color:var(--muted);margin-top:1px;}
.zap{display:flex;align-items:center;gap:6px;font-size:12.5px;color:var(--blue);margin-top:7px;font-weight:600;}
.chev{margin-left:auto;color:var(--muted2);flex-shrink:0;}

.pct{font-size:12px;font-weight:700;color:var(--ink);background:var(--blue-soft);padding:5px 10px;border-radius:999px;flex-shrink:0;}

.bar{height:9px;border-radius:999px;background:#EDEDED;overflow:hidden;}
.bar>i{display:block;height:100%;border-radius:999px;background:var(--blue);}

.ring{width:90px;height:90px;border-radius:50%;background:var(--blue);display:flex;align-items:center;justify-content:center;position:relative;margin:0 auto;}
.ring::before,.ring::after{content:"";position:absolute;inset:0;border-radius:50%;border:1.5px solid var(--blue);animation:ring 2.2s ease-out infinite;}
.ring::after{animation-delay:1.1s;}
@keyframes ring{0%{transform:scale(1);opacity:.4}100%{transform:scale(2.2);opacity:0}}
.spin{animation:spin 1s linear infinite;}
@keyframes spin{to{transform:rotate(360deg)}}

.viewer{position:relative;height:230px;border-radius:26px;overflow:hidden;background:#E7E7E7;display:flex;align-items:center;justify-content:center;}
.viewer .ph{width:206px;height:116px;border-radius:14px;background:#fff;padding:15px;box-shadow:0 8px 22px rgba(16,16,16,.12);}
.viewer img{width:100%;height:100%;object-fit:cover;}
.scanline{position:absolute;left:0;right:0;height:2px;background:var(--blue);box-shadow:0 0 12px rgba(11,69,196,.8);animation:scan 1.2s linear infinite;}
@keyframes scan{0%{top:8%}100%{top:92%}}
.corner{position:absolute;width:22px;height:22px;border:2px solid var(--blue);}
.corner.tl{top:16px;left:16px;border-right:none;border-bottom:none;border-radius:6px 0 0 0;}
.corner.tr{top:16px;right:16px;border-left:none;border-bottom:none;border-radius:0 6px 0 0;}
.corner.bl{bottom:16px;left:16px;border-right:none;border-top:none;border-radius:0 0 0 6px;}
.corner.br{bottom:16px;right:16px;border-left:none;border-top:none;border-radius:0 0 6px 0;}
.progress{height:8px;background:#EDEDED;border-radius:999px;overflow:hidden;margin-top:14px;}
.progress>i{display:block;height:100%;width:0;background:var(--blue);transition:width .25s;}

.back{display:inline-flex;align-items:center;gap:8px;background:#fff;border:none;color:var(--muted);font-size:13px;font-weight:600;font-family:inherit;cursor:pointer;padding:10px 16px;border-radius:999px;margin-bottom:16px;box-shadow:var(--sh2);}
.empty{text-align:center;color:var(--muted);font-size:13.5px;padding:44px 16px;line-height:1.6;}

.toast{position:fixed;left:50%;bottom:96px;transform:translateX(-50%) translateY(20px);background:var(--ink);color:#fff;font-size:13px;font-weight:600;padding:12px 18px;border-radius:999px;opacity:0;transition:.25s;z-index:60;pointer-events:none;box-shadow:0 10px 30px rgba(0,0,0,.3);}
.toast.on{opacity:1;transform:translateX(-50%) translateY(0);}
.pull-refresh{position:absolute;top:calc(env(safe-area-inset-top) + 9px);left:50%;z-index:75;transform:translate(-50%,-54px);opacity:0;pointer-events:none;background:#fff;color:var(--blue);border-radius:999px;padding:9px 14px;font-size:11.5px;font-weight:800;box-shadow:0 7px 24px rgba(14,26,51,.18);transition:opacity .18s,transform .18s;white-space:nowrap;}
.pull-refresh.visible{opacity:1;transform:translate(-50%,0);}
.pull-refresh.loading{color:var(--ink);}
.modal-wrap{position:absolute;inset:0;z-index:80;display:flex;align-items:center;justify-content:center;padding:26px;background:rgba(14,26,51,.5);}
.modal-card{background:#fff;border-radius:26px;padding:22px;width:100%;max-width:330px;box-shadow:0 24px 70px rgba(0,0,0,.35);}
.modal-wrap.fullscreen{align-items:stretch;justify-content:stretch;padding:0;background:#fff;}
.modal-card.full-screen-modal{max-width:none;height:100%;border-radius:0;box-shadow:none;padding:calc(20px + env(safe-area-inset-top)) 22px calc(20px + env(safe-area-inset-bottom));display:flex;flex-direction:column;overflow:auto;}
.profile-edit-tap{display:block;width:100%;border:none;background:none;padding:0;font-family:inherit;text-align:left;cursor:pointer;color:inherit;}
.gate{position:absolute;inset:0;z-index:100;background:radial-gradient(120% 80% at 50% 0%, #F7F9FE 0%, #EEF1F8 55%, #E7EBF4 100%);display:none;flex-direction:column;align-items:center;justify-content:flex-start;padding:30px;overflow-y:auto;}
@keyframes rlShine{0%{transform:translateX(-140%);}100%{transform:translateX(360%);}}
@keyframes rlPop{0%{transform:scale(.92);opacity:0;}100%{transform:scale(1);opacity:1;}}

nav{position:absolute;bottom:0;left:0;right:0;display:flex;align-items:flex-end;background:rgba(255,255,255,.9);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid rgba(16,16,16,.06);padding:8px 10px calc(env(safe-area-inset-bottom) + 10px);}
.ngroup{flex:1;display:flex;}
nav button{flex:1;background:none;border:none;padding:6px 0;display:flex;flex-direction:column;align-items:center;gap:4px;color:var(--muted2);font-size:10px;font-weight:600;cursor:pointer;font-family:inherit;}
nav button svg{width:22px;height:22px;}
nav button.active{color:var(--blue);font-weight:800;}
.nfab{flex:0 0 auto;width:58px;height:58px;border-radius:50%;background:var(--blue);color:#fff;display:flex;flex-direction:row;align-items:center;justify-content:center;padding:0;gap:0;box-shadow:0 8px 20px rgba(11,69,196,.42);transform:translateY(-16px);margin:0 10px;}
.nfab svg{width:25px;height:25px;}
.nfab img{display:block;width:35px;height:auto;filter:brightness(0) invert(1);}
.nfab:active{transform:translateY(-16px) scale(.96);}
.nfab.on{background:#0838a0;}
