.ngr-wrap{max-width:520px;margin:30px auto;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP",sans-serif;color:#1f241f}.ngr-wrap *{box-sizing:border-box}.ngr-ticket,.ngr-issue-card,.ngr-gate,.ngr-history{background:#f4ecd7;border:1px solid #9d8961;border-radius:18px;padding:22px;box-shadow:0 10px 30px rgba(0,0,0,.12);position:relative;overflow:hidden}.ngr-ticket:before,.ngr-ticket:after{content:"";position:absolute;width:24px;height:24px;border-radius:50%;background:#fff;top:50%;margin-top:-12px}.ngr-ticket:before{left:-13px}.ngr-ticket:after{right:-13px}.ngr-ticket-top{text-align:center;border-bottom:2px dashed #7b6847;padding-bottom:14px}.ngr-ticket-top span{display:block;font-size:13px;letter-spacing:.08em}.ngr-ticket-top strong{display:block;font-family:Georgia,serif;font-size:27px;letter-spacing:.08em;margin-top:4px}.ngr-route{display:flex;align-items:center;justify-content:center;gap:18px;font-family:serif;font-size:25px;font-weight:700;padding:20px 0 12px}.ngr-number,.ngr-name{text-align:center;font-family:monospace;margin:6px}.ngr-stats{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:18px 0}.ngr-stats>div{background:rgba(255,255,255,.5);border:1px solid #b7a47f;border-radius:12px;padding:13px;text-align:center}.ngr-stats small{display:block;font-size:11px}.ngr-stats strong{display:block;font-size:30px;margin-top:3px}.ngr-stats em{font-size:13px;font-style:normal;margin-left:2px}.ngr-stats .ngr-rank{font-size:19px;padding-top:8px}.ngr-qr{text-align:center;background:#fff;border-radius:12px;padding:14px}.ngr-qr canvas{max-width:190px!important;height:auto!important}.ngr-qr p{font-size:12px;margin:8px 0 0}.ngr-punch{position:absolute;right:18px;bottom:15px;border:3px double #a42d2d;color:#a42d2d;border-radius:50%;width:62px;height:62px;display:flex;align-items:center;justify-content:center;font-weight:800;transform:rotate(-12deg);opacity:.75}.ngr-history{margin-top:16px;background:#fff}.ngr-history h3{margin-top:0}.ngr-history-row{display:grid;grid-template-columns:95px 1fr auto;gap:8px;padding:11px 0;border-bottom:1px dashed #ccc;font-size:13px}.ngr-history-row em{font-style:normal;color:#6c4f22}.ngr-kicker{text-align:center;font-size:11px;letter-spacing:.18em}.ngr-issue-card h2,.ngr-gate h2{text-align:center;font-family:Georgia,serif}.ngr-rail-mark{margin:0 auto;width:70px;height:70px;border-radius:50%;background:#1f3d2b;color:#fff;display:flex;align-items:center;justify-content:center;font:700 40px Georgia,serif;border:5px double #f4ecd7}.ngr-issue-card label{display:block;font-size:13px;margin:20px 0}.ngr-issue-card input{width:100%;padding:13px;border:1px solid #aaa;border-radius:8px;margin-top:6px}.ngr-btn{width:100%;border:0;border-radius:10px;background:#1f3d2b;color:#fff;padding:15px 18px;font-weight:700;font-size:16px;cursor:pointer}.ngr-stamp{font-size:21px;margin-top:15px}.ngr-passenger{text-align:center;background:#fff;border:2px dashed #75613f;padding:18px;border-radius:12px}.ngr-passenger small,.ngr-passenger span{display:block}.ngr-passenger strong{display:block;font:700 27px monospace;margin:5px}.ngr-success{background:#e8f4e8;border:1px solid #8fb38f;border-radius:10px;padding:18px;text-align:center;margin:15px 0}.ngr-success strong{font-size:26px}.ngr-warning{background:#fff4d8;border:1px solid #d6b45e;border-radius:10px;padding:14px;text-align:center;margin:15px 0}.ngr-note,.ngr-empty{font-size:13px;color:#666}@media(max-width:600px){.ngr-wrap{margin:14px 10px}.ngr-ticket,.ngr-issue-card,.ngr-gate,.ngr-history{padding:18px}.ngr-route{font-size:22px}.ngr-ticket-top strong{font-size:23px}}
/* v0.3: QRコードを実画面で中央配置 */
.ngr-help{display:block;margin-top:6px;color:#666;font-size:11px}
.ngr-station-edit{margin-top:14px;padding:10px 12px;background:rgba(255,255,255,.55);border:1px solid #c7b58e;border-radius:10px;font-size:12px}
.ngr-station-edit summary{cursor:pointer;font-weight:700;text-align:center}
.ngr-station-edit label{display:block;margin:12px 0 8px}
.ngr-station-edit input{width:100%;padding:10px;border:1px solid #aaa;border-radius:8px;margin-top:5px}
.ngr-btn-small{padding:10px 14px;font-size:13px}


/* v0.3.3: QRCode.js creates canvas + img. Render one QR only and center it. */
.ngr-qr #ngr-qr{width:100%;display:flex;justify-content:center;align-items:center;margin:0 auto;}
.ngr-qr #ngr-qr canvas{display:none!important;}
.ngr-qr #ngr-qr img{display:block!important;margin:0 auto!important;max-width:190px!important;height:auto!important;}
.ngr-device-badge{display:inline-block;padding:6px 10px;border:1px solid #b08a55;border-radius:999px;background:#fff8e8;font-weight:700;font-size:13px;margin:0 0 14px}

/* v0.6.4: passport recovery call-to-action */
.ngr-recovery-box{margin-top:14px;padding:14px;background:rgba(255,255,255,.55);border:1px solid #c7b58e;border-radius:12px}
.ngr-recovery-guide{margin:0 0 10px;font-size:13px;line-height:1.7;color:#333}
.ngr-recovery{margin:0}
.ngr-recovery summary{display:block;width:100%;border:0;border-radius:10px;background:#365f91;color:#fff;padding:13px 18px;font-weight:700;font-size:15px;text-align:center;cursor:pointer;list-style:none}
.ngr-recovery summary::-webkit-details-marker{display:none}
.ngr-recovery[open] summary{margin-bottom:14px}
.ngr-recovery label{display:block;font-size:13px;margin:12px 0}
.ngr-recovery input{width:100%;padding:13px;border:1px solid #aaa;border-radius:8px;margin-top:6px}
.ngr-recovery .ngr-note{margin:10px 0 0;line-height:1.6}

/* v0.6.7: notification text is easier to scan left-aligned; history icon/title are separate. */
.ngr-success,.ngr-warning{text-align:left}
.ngr-recovery-spam-note,.ngr-recovery .ngr-note{text-align:left}
.ngr-history h3{display:flex;align-items:center;gap:7px}
.ngr-history-icon:empty{display:none}

/* v0.8.0: customer self check-in */
.ngr-checkin-pending{background:#eef7e9;border:2px solid #6f9a62;border-radius:12px;padding:18px;margin:15px 0;text-align:left;line-height:1.7}
.ngr-checkin-pending strong{display:block;font-size:20px;margin-bottom:4px}
.ngr-pending-list{margin-top:22px;padding-top:18px;border-top:2px dashed #b7a47f}
.ngr-pending-list h3{margin:0 0 12px}
.ngr-pending-row{background:#fff;border:1px solid #c7b58e;border-radius:12px;padding:14px;margin:10px 0;display:grid;grid-template-columns:1fr 130px;gap:12px;align-items:center}
.ngr-pending-row span,.ngr-pending-row small{display:block;margin-top:4px}
.ngr-pending-row small{color:#666}
@media(max-width:600px){.ngr-pending-row{grid-template-columns:1fr}.ngr-pending-row .ngr-btn{width:100%}}
