.gp-wrap{padding:50px 0 90px;min-height:70vh}.gp-header{display:flex;flex-direction:column;gap:12px;margin:0 0 36px}.gp-header h1{font-size:clamp(32px,4.5vw,58px);letter-spacing:-1.5px;margin:0}.gp-muted{color:#c8b6d9;line-height:1.7}.gp-layout{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:20px}.gp-panel{background:linear-gradient(155deg,#261136,#150b22);border:1px solid #704080;box-shadow:0 16px 38px #0006;border-radius:22px;padding:25px}.gp-panel h2{font-size:22px;margin:0 0 14px}.gp-panel p{color:#d9c9e4;line-height:1.6}.gp-btn{display:inline-block;padding:12px 18px;border-radius:12px;font-weight:800;border:1px solid #b558b5;color:#fff;text-decoration:none;background:#28133e}.gp-btn.primary{border:0;color:#190616;background:linear-gradient(110deg,#ffe066,#ff49a6,#30d9ef)}.gp-btn:disabled{opacity:.5;cursor:not-allowed}.gp-input{display:block;width:100%;max-width:440px;min-height:43px;background:#0a0711;color:#fff;border:1px solid #775186;border-radius:10px;padding:11px;margin:8px 0 18px}.gp-label{display:block;font-weight:700}.gp-error{border:1px solid #f48c91;background:#3e162c;border-radius:12px;padding:12px;margin:12px 0;color:#fff}.gp-good{border:1px solid #6cdfb3;background:#13352d;border-radius:12px;padding:12px;margin:12px 0;color:#fff}.gp-cover{width:100%;max-height:260px;object-fit:contain;background:#0b0716;border-radius:12px;margin:0 0 12px}.gp-page{display:block;max-width:min(90vw,760px);max-height:80vh;object-fit:contain;margin:18px auto;border-radius:7px;box-shadow:0 18px 40px #0009}.gp-center{text-align:center}.gp-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:12px;margin:26px 0}.gp-pill{display:inline-block;color:#ffe066;border:1px solid #865ea1;border-radius:50px;padding:9px 15px}.gp-kicker{font-size:13px;text-transform:uppercase;color:#ffcf6f;letter-spacing:2px}.gp-divider{border:0;border-top:1px solid #63386f;margin:20px 0}@media(max-width:650px){.gp-wrap{padding:25px 0 60px}.gp-panel{padding:18px}.nav-links{gap:7px}}

/* Pont entre le kiosque local et les pages PHP de compte / activation */
.gp-wrap { padding: 40px 0 72px; }
.gp-header { margin-bottom: 22px; }
.gp-kicker { font-size: 11px; font-weight: 900; letter-spacing: .18em; text-transform: uppercase; color: var(--yellow); }
.gp-header h1 { margin: 8px 0 8px; font-size: clamp(30px,4.5vw,54px); letter-spacing: -1px; }
.gp-panel { background: linear-gradient(165deg,#261531,#160e24);border:1px solid #643b7d;border-radius:20px;padding:24px;box-shadow:0 20px 40px #0003; }
.gp-panel h2 { font-size: 21px; margin: 0 0 12px; }
.gp-panel p { color: var(--soft); }
.gp-layout {display:grid;grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr));gap:18px;}
.gp-muted {color:var(--soft)}
.gp-btn {display:inline-flex;align-items:center;justify-content:center;padding:11px 17px;min-height:43px; border:1px solid #754490;border-radius:13px;background:linear-gradient(180deg,#30203f,#1f152c);color:var(--text);text-decoration:none;font-size:13px;font-weight:850;cursor:pointer;}
.gp-btn.primary {border:0;background:var(--gradient);color:#210a21;}
.gp-label {display:block;color:var(--yellow);font-size:13px;font-weight:750;margin:15px 0;}
.gp-input {background:#140b20;border:1px solid #74448a;color:var(--text);padding:12px 13px;width:100%;display:block;border-radius:11px;margin-top:7px;}
.gp-error,.gp-good {padding:14px 16px;border-radius:12px;margin-bottom:20px;}
.gp-error {border:1px solid #f06181;color:#ffd9e5;background:#44132c;}
.gp-good {border:1px solid #42be9d;color:#d3ffec;background:#0d362f;}
.gp-divider {border:0;border-top:1px solid var(--line);margin:20px 0;}
.gp-wrap .gp-panel {max-width:100%;}
.gp-wrap input[type=checkbox]{accent-color:var(--cyan);}
.top-links {display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:end}
.top-links .btn {min-height:36px;padding:8px 11px}
.top-links a:not(.btn){font-size:13px;font-weight:800;color:var(--soft);}
.public-msg {border:1px solid #7d4d92;border-radius:12px;padding:11px 15px;color:var(--soft);background:#261434;margin:15px 0;font-size:13px}
.public-msg strong{color:var(--yellow)}
.reader-lock{display:flex;flex-direction:column;align-items:center;text-align:center;justify-content:center;gap:12px;background:linear-gradient(160deg,#22152f,#140e20);padding:clamp(14px,4vw,40px);height:100%;width:100%;color:var(--text);}
.reader-lock .lock-symbol{font-size:40px}
.reader-lock h3{font-size:clamp(16px,2vw,24px);margin:0}
.reader-lock p{font-size:13px;color:var(--soft);margin:0;max-width:250px}
.reader-lock .btn{font-size:11px;padding:8px;}
.reader .public-msg {margin:0}
.status-pass {padding:10px 14px;border-radius:12px;border:1px solid #6b4a81;color:var(--yellow);font-size:12px;font-weight:800;background:#261531;}
@media(max-width:800px){.top-links .btn{font-size:11px;padding:7px}.top-links .pill{display:none}}
@media(max-width:500px){.topbar>.wrap{flex-wrap:wrap;padding-top:13px;padding-bottom:12px;justify-content:center}.top-links{justify-content:center}.reader-bar .reader-actions{max-width:100%}.reader-bar{max-height:160px;overflow:auto}.flip{max-width:calc(100vw - 76px)}.reader-lock{padding:8px;gap:6px}.reader-lock p{font-size:11px}.reader-lock .btn{font-size:10px;min-height:28px}}
