@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700&display=swap');

:root{
  --bg:#FAF7F2;--surface:#FFFFFF;--text:#2B2A28;--muted:#6F6A63;--line:#E8E2D8;
  --accent:#7D9A84;--accent-dk:#647D6B;--accent-dkr:#55695B;--accent-soft:#E7EFE9;
  --gold:#B8955A;--gold-soft:#FBF5EA;--hover:#F3EFE8;--danger:#B5574B;
  --radius:14px;
  --ease:cubic-bezier(.2,.8,.2,1);--ease-out:cubic-bezier(.22,1,.36,1);
  --dur-fast:140ms;--dur:220ms;--dur-slow:340ms;
}

*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font-family:'Plus Jakarta Sans',system-ui,-apple-system,'Segoe UI',sans-serif;font-weight:400;line-height:1.55;-webkit-font-smoothing:antialiased;-webkit-tap-highlight-color:transparent}
main{width:min(100%,480px);margin:7vh auto;padding:16px}
h1,h2,h3,h4{font-family:inherit;font-weight:700;line-height:1.15;letter-spacing:-.02em}
h1{font-size:30px}
.brand{color:var(--gold);letter-spacing:.18em;font-size:12px;font-weight:600}
section{background:var(--surface);padding:24px;border:1px solid var(--line);border-radius:var(--radius);box-shadow:0 12px 40px #2b2a2808}
label{display:block;margin:16px 0 6px;font-weight:500}
input{width:100%;min-height:46px;padding:11px 12px;border:1px solid var(--line);border-radius:10px;font:inherit;color:var(--text);background:var(--surface);transition:border-color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease)}
input:hover{border-color:#DCD4C7}
input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}
button:focus-visible,a:focus-visible{outline:2px solid var(--accent-dk);outline-offset:3px}

/* Butonlar: hover yalnızca renk, basınca hafif küçülme */
button,.button{display:block;width:100%;min-height:48px;border-radius:12px;border:1px solid transparent;background:var(--accent-dk);color:#fff;padding:12px 16px;font:inherit;font-weight:600;margin-top:20px;cursor:pointer;text-align:center;text-decoration:none;transition:background-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease),box-shadow var(--dur-fast) var(--ease),transform var(--dur-fast) var(--ease)}
button:hover,.button:hover{background:var(--accent-dkr)}
button:active,.button:active{transform:scale(.97)}
button:disabled{opacity:.55;cursor:not-allowed;transform:none}
.secondary{background:var(--surface);border-color:var(--line);color:var(--text)}
.secondary:hover{background:var(--hover);border-color:#DCD4C7;color:var(--text)}

.ico{width:20px;height:20px;flex-shrink:0;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;display:block}

.check{display:flex;gap:10px;align-items:center;font-weight:400}.check input{width:20px;min-height:20px;height:20px;box-shadow:none}
p{overflow-wrap:anywhere}.muted{color:var(--muted)}
#message{color:var(--danger);min-height:26px}
#qr svg{display:block;width:100%;max-width:260px;margin:auto}
code{overflow-wrap:anywhere}
a{color:var(--accent-dk)}
[hidden]{display:none!important}

.login-main{text-align:center;min-height:100vh;margin:0 auto;padding-top:15vh;position:relative}
.login-main .hanger{margin:auto;width:60px;height:60px;border:1px solid var(--line);border-radius:18px;background:#fff;display:grid;place-items:center;color:var(--gold);font-size:26px}
.login-main .hanger .ico{width:28px;height:28px;stroke-width:1.6}
.login-main h1{font-size:28px;margin:16px 0 4px}
.login-main .intro{margin:0 0 28px;color:var(--muted)}
.login-main section{text-align:left;padding:22px}
.login-main section input{background:var(--bg);border-radius:12px}
.login-main section button{color:#fff;border-radius:12px}
.login-main .invitation{font-size:14px}
.login-footer{display:block;color:var(--muted);margin-top:16vh}

/* Hareket sistemi */
@keyframes screen-in{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
@keyframes card-in{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
@keyframes toast-in{from{opacity:0;transform:translate(-50%,14px)}to{opacity:1;transform:translate(-50%,0)}}
@keyframes soft-pop{0%{transform:scale(1)}40%{transform:scale(1.08)}100%{transform:scale(1)}}
@keyframes fade-in{from{opacity:0}to{opacity:1}}
@keyframes spin{to{transform:rotate(360deg)}}

.screen-enter{animation:screen-in var(--dur-slow) var(--ease-out) both}
.stagger-item{opacity:0;animation:card-in var(--dur-slow) var(--ease-out) forwards;animation-delay:var(--stagger,0ms)}
.skeleton{min-height:76px;border:1px solid var(--line);border-radius:16px;background:linear-gradient(110deg,#F1EDE6 25%,#F8F5F0 50%,#F1EDE6 75%)}
.toast{position:fixed;z-index:50;left:50%;bottom:calc(88px + env(safe-area-inset-bottom));max-width:min(90vw,440px);padding:11px 18px;border-radius:12px;background:var(--text);color:#fff;font-size:14px;font-weight:500;box-shadow:0 12px 32px #2b2a2833;animation:toast-in var(--dur) var(--ease-out) both}
.toast.is-leaving{opacity:0;transition:opacity var(--dur-fast) var(--ease)}
.credit-pulse{animation:soft-pop var(--dur-slow) var(--ease-out)}

.copy-icon{display:inline-grid;place-items:center;width:18px;height:18px;margin-right:6px;vertical-align:-4px}
.copy-icon svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}

@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{scroll-behavior:auto!important;animation:none!important;transform:none!important;transition-property:opacity,color,background-color,border-color!important}
  .screen-enter,.stagger-item,.toast{opacity:1;animation:fade-in var(--dur-fast) linear both!important}
}
