:root{--green:#72b673;--green-dark:#2d5f2e;--orange:#f2b56b;--card:#eef0f6;--ink:#1f1f1f;--muted:#555;--line:#8a8a8a;--danger:#a52020;color:var(--ink);background:#fff;font-family:Noto Sans KR,Malgun Gothic,Apple SD Gothic Neo,sans-serif;font-size:18px;line-height:1.5}*{box-sizing:border-box}body{margin:0}h1{margin:0 0 8px;font-size:26px;line-height:1.3}h2{margin:0;font-size:22px}p{margin:0}.page{flex-direction:column;gap:14px;width:min(100%,460px);margin:0 auto;padding:20px 16px 32px;display:flex}.stack{flex-direction:column;gap:14px;display:flex}.section{border-top:1px solid #ddd;padding-top:18px}label{flex-direction:column;gap:6px;font-weight:600;display:flex}input,select{border:2px solid var(--line);width:100%;min-height:54px;color:var(--ink);font:inherit;background:#fff;border-radius:10px;padding:10px 12px;font-size:20px}button,.button-link,.file-button{width:100%;min-height:56px;font:inherit;cursor:pointer;border:0;border-radius:12px;justify-content:center;align-items:center;padding:10px 14px;font-size:20px;font-weight:700;text-decoration:none;display:flex}button:disabled{opacity:.55;cursor:default}.primary{background:var(--green-dark);color:#fff}.secondary,.button-link,.file-button{color:var(--ink);background:#e8ebe8}.kakao{color:#191919;background:#fee500;min-height:64px;font-size:22px}.danger{background:var(--danger);color:#fff}.link,.danger-link{color:var(--ink);background:0 0;font-size:18px;font-weight:500;text-decoration:underline}.danger-link{color:var(--danger)}.back-link{color:var(--ink);align-items:center;min-height:48px;display:flex}.file-button input{display:none}.disclaimer{color:var(--danger);font-weight:700}.muted{color:var(--muted)}.help{color:var(--muted);text-align:center}.error{color:var(--danger);font-weight:700}.notice{background:#fff3d6;border-radius:10px;padding:10px 12px}.demo{background:#e6eefc;border-radius:10px;padding:8px 12px}.danger-box{border:2px solid var(--danger);border-radius:12px;padding:14px}.photo-field{flex-direction:column;gap:8px;font-weight:600;display:flex}.photo-preview{aspect-ratio:3/4;background:#c9d0e4;width:120px;overflow:hidden}.photo-preview img,.photo-preview svg,.card-photo img,.card-photo svg{object-fit:cover;width:100%;height:100%;display:block}.card-page{align-items:stretch}.badge{text-align:center;background:#f0e6c8;border-radius:10px;padding:8px 12px;font-size:20px;font-weight:700}.badge-approved{background:#d6efd8}.badge-rejected,.badge-suspended{background:#f6d5d5}.clock{font-variant-numeric:tabular-nums;justify-content:center;align-items:center;gap:10px;font-size:22px;font-weight:700;display:flex}.pulse{background:#d42c2c;border-radius:50%;width:14px;height:14px;animation:1s ease-in-out infinite pulse}@keyframes pulse{50%{opacity:.2;transform:scale(.7)}}.member-card{aspect-ratio:54/85.6;background:var(--card);border-radius:18px;width:100%;overflow:hidden;box-shadow:0 3px 12px #00000040}.face{flex-direction:column;height:100%;display:flex}.card-title{background:var(--green);color:#fff;letter-spacing:16px;text-indent:16px;flex:0 0 20%;place-items:center;font-size:44px;font-weight:800;display:grid}.card-disclaimer{color:var(--danger);text-align:center;background:#fff;padding:6px 8px;font-weight:700}.card-middle{flex-direction:column;flex:1;justify-content:center;align-items:center;gap:12px;min-height:0;padding:10px 0;display:flex}.card-photo{aspect-ratio:3/4;background:#c9d0e4;flex:0 auto;height:76%;overflow:hidden}.card-name{letter-spacing:6px;text-indent:6px;text-align:center;font-size:28px;font-weight:700}.card-org{background:var(--orange);flex-direction:column;flex:0 0 15%;justify-content:center;align-items:center;font-size:23px;font-weight:800;line-height:1.25;display:flex}.card-org small{font-size:13.5px;font-weight:700}.card-org-name{flex-direction:column;align-items:center;display:flex}.card-org.with-logo{flex-direction:row;gap:8px;padding:0 12px}.card-org.with-logo .card-org-name{align-items:flex-start;font-size:21px}.card-org.with-logo small{white-space:nowrap;font-size:12.5px}.card-org-logo{aspect-ratio:1;flex:none;width:23%}.card-details,.card-details>:not(.card-pattern){position:relative}.card-pattern{aspect-ratio:1;opacity:.32;pointer-events:none;background:50%/contain no-repeat;width:72%;position:absolute;top:42%;left:50%;transform:translate(-50%,-50%)}.card-stripe-top{background:var(--green);flex:0 0 13%;justify-content:flex-end;align-items:center;min-height:0;padding:0 10px;display:flex;overflow:hidden}.card-stripe-bottom{background:var(--orange);flex:0 0 6%}.card-details{flex-direction:column;flex:1;gap:18px;padding:20px 22px;display:flex}.card-no{margin-bottom:6px;font-size:26px;font-weight:600}.card-row{grid-template-columns:4em 1.2em 1fr;align-items:baseline;font-size:21px;font-weight:700;display:grid}.card-row b{white-space:nowrap;justify-content:space-between;font-weight:700;display:flex}.card-row em{font-style:normal}.card-blood{letter-spacing:0;grid-column:3;margin-top:2px;font-size:18px;font-weight:600}.card-row i{text-align:center;font-style:normal}.card-row span{text-align:center;overflow-wrap:anywhere}.card-row .spaced{letter-spacing:.8em;text-indent:.8em}.member-card{position:relative}.card-mark{z-index:2;color:#be1e1e26;text-align:center;white-space:nowrap;pointer-events:none;flex-direction:column;justify-content:space-around;font-size:32px;font-weight:900;display:flex;position:absolute;inset:-40%;transform:rotate(-32deg)}.card-confirm{text-align:center;flex-direction:column;align-items:center;gap:8px;margin-top:auto;font-size:19px;font-weight:700;line-height:1.45;display:flex}.card-confirm-date{font-size:20px;font-weight:600}.card-issuer{white-space:nowrap;justify-content:center;align-items:center;margin-top:6px;font-size:21px;font-weight:800;display:flex}.card-seal-box{color:#555;border:2px dashed #777;flex:none;place-items:end center;width:54px;height:54px;margin-left:-26px;padding-bottom:2px;font-size:11px;font-weight:600;line-height:1.1;display:grid}.card-qr-small{width:58px;height:58px;min-height:0;color:var(--muted);cursor:pointer;background:#fff;border:0;border-radius:4px;flex:none;place-items:center;padding:0;font-size:12px;display:grid}.card-qr-small img{width:100%;height:100%;display:block}.card-qr-empty{color:var(--ink);text-align:center;padding:2px;font-size:11px;font-weight:700;line-height:1.2}.qr-overlay{z-index:10;text-align:center;background:#fff;flex-direction:column;justify-content:center;align-items:center;gap:18px;padding:16px;font-size:20px;font-weight:700;display:flex;position:fixed;inset:0}.qr-overlay img{aspect-ratio:1;width:min(86vw,420px)}.qr-overlay button{max-width:420px}.card-qr-message{text-align:center;margin:auto 0;font-weight:600}.verify-card{flex-direction:column;align-items:center;gap:8px;font-size:22px;display:flex}.verify-card img{aspect-ratio:3/4;object-fit:cover;width:160px}.verify-name{font-size:30px;font-weight:700}.temp-password{font-family:var(--font-mono,monospace);letter-spacing:2px;font-size:24px}.admin-top{justify-content:flex-end;align-items:center;display:flex}.admin-top .link{width:auto;min-height:48px;padding:0 4px}.admin-list{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.admin-list a,.admin-list li>div{color:var(--ink);overflow-wrap:anywhere;border:2px solid #ddd;border-radius:12px;flex-direction:column;gap:2px;padding:12px;text-decoration:none;display:flex}.warning{color:var(--danger);font-weight:700}.mono{font-variant-numeric:tabular-nums;color:var(--muted)}.scan-box{border:2px solid #ddd;border-radius:12px;padding:14px}.suspended-box{text-align:center;background:#f6d5d5;border-radius:14px;padding:28px 16px;font-size:20px;font-weight:700}
