:root{--bg:#F4F6F1;--card:#FFFFFF;--ink:#17211C;--sub:#4B5A52;--line:#DDE3DC;--green:#0E5A43;--green-soft:#E7F1EB;--gold-bg:#FBEFCB;--gold-line:#B98A1E;--gold-ink:#4A3200;--warn-bg:#FFF4D6;--red:#8A3B12;--orange:#FF6A00;--kakao:#FEE500}*{box-sizing:border-box}body,html{margin:0;padding:0}body{background:#E6EAE3;color:var(--ink);font-family:IBM Plex Sans KR,Apple SD Gothic Neo,Malgun Gothic,system-ui,sans-serif;-webkit-font-smoothing:antialiased;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}a{color:var(--green)}button,input,select,textarea{font-family:inherit;font-size:16px}.shell{max-width:480px;min-height:100dvh;margin:0 auto;background:var(--bg);display:flex;flex-direction:column;position:relative}.page{flex:1 1;padding:16px 16px 96px;display:flex;flex-direction:column;gap:14px}.page.flush{padding-top:0}h1{font-size:21px}h1,h2{margin:0}h2{font-size:17px}.card{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:14px 16px;display:flex;flex-direction:column;gap:10px}.muted{font-size:13px}.muted,.small{color:var(--sub);line-height:1.5}.small{font-size:12px}.between,.row{display:flex;gap:8px;align-items:center}.between{justify-content:space-between}.btn{min-height:50px;border-radius:12px;border:0;background:var(--green);color:#fff;font-size:16px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:0 16px;cursor:pointer;text-decoration:none}.btn:disabled{background:#A9B3AC;cursor:not-allowed}.btn.ghost{background:#fff;color:var(--green);border:2px solid var(--green)}.btn.line{background:#fff;color:var(--ink);border:1px solid var(--line)}.btn.orange{background:var(--orange)}.btn.kakao{background:var(--kakao);color:#191600}.btn.red{background:#fff;color:var(--red);border:2px solid var(--red)}.btn.red.on{background:var(--red);color:#fff}.btn.ghost.on{background:var(--green);color:#fff}.btn.block{width:100%}.btn.sm{min-height:40px;border-radius:10px}.btn.sm,.chip{white-space:nowrap;font-size:14px}.chip{min-height:42px;padding:0 14px;border-radius:999px;border:1px solid var(--green);background:#fff;color:var(--green);cursor:pointer}.chip.on{background:var(--green);color:#fff}.chip.red{border-color:var(--red);color:var(--red)}.chip.red.on{background:var(--red);color:#fff}.chips{display:flex;flex-wrap:wrap;gap:8px}.field{display:flex;flex-direction:column;gap:6px}.field label,.label{font-size:13px;font-weight:700;color:var(--sub)}.input{width:100%;padding:13px 14px;border-radius:12px;border:1px solid #c5cec6;background:#fff;color:var(--ink)}.input:focus{outline:2px solid var(--green);border-color:var(--green)}.input.strong{border:2px solid var(--green)}.notice{padding:12px 14px;border-radius:12px;background:var(--warn-bg);color:var(--gold-ink);font-size:13px;line-height:1.5}.ok{background:var(--green-soft);color:var(--green)}.err,.ok{padding:12px 14px;border-radius:12px;font-size:14px;line-height:1.5}.err{background:#FBE9E4;color:#8A2B12}.badge{display:inline-block;padding:2px 9px;border-radius:999px;font-size:12px;font-weight:700;background:var(--green-soft);color:var(--green)}.badge.gold{background:var(--gold-bg);color:var(--gold-ink)}.badge.gray{background:#ECEFEA;color:var(--sub)}.tcard{display:flex;gap:12px;background:#fff;border:1px solid var(--line);border-radius:16px;padding:12px;text-decoration:none;color:inherit}.tcard .ph,.tcard img{width:88px;height:88px;border-radius:10px;object-fit:cover;flex-shrink:0;background:#E3E8E1}.tcard .body{flex:1 1;min-width:0;display:flex;flex-direction:column;gap:4px}.tcard .name{font-size:15px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:480px;background:#fff;border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom);z-index:10}.nav,.nav a{display:flex}.nav a{flex:1 1;flex-direction:column;align-items:center;gap:3px;padding:9px 0 10px;font-size:11px;color:var(--sub);text-decoration:none}.nav a.on{color:var(--green);font-weight:700}.hero{position:relative;height:260px}.hero img{width:100%;height:100%;object-fit:cover;display:block}.hero .title{left:16px;padding:8px 12px;border-radius:12px;background:rgba(255,255,255,.88);font-size:20px;color:var(--green);line-height:1.2}.hero .pts,.hero .title{position:absolute;top:16px;font-weight:700}.hero .pts{right:16px;padding:10px 14px;border-radius:999px;background:var(--green);color:#FFE7A8;font-size:14px;text-decoration:none}.path{gap:12px;padding:12px 14px;border-radius:16px;text-decoration:none;box-shadow:0 4px 0 rgba(0,0,0,.12)}.path,.path .ic{display:flex;align-items:center}.path .ic{width:50px;height:50px;flex-shrink:0;border-radius:14px;background:rgba(255,255,255,.9);justify-content:center;font-size:26px}.path b{font-size:18px;display:block}.path span{font-size:13px}.menu{display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:16px;overflow:hidden}.menu a{display:flex;align-items:center;gap:10px;min-height:52px;padding:6px 14px;color:#17211C;text-decoration:none;font-size:15px}.menu a+a{border-top:1px solid var(--line)}.menu a:active{background:#F4F6F1}.menu .mi{width:32px;height:32px;flex-shrink:0;border-radius:10px;background:#E7F1EB;display:flex;align-items:center;justify-content:center;font-size:18px}.menu b{flex:1 1;min-width:0;font-size:16px}.menu .mr{font-size:13px;font-weight:700;color:#0E5A43;white-space:nowrap}.pending{display:flex;align-items:center;gap:10px;padding:12px 14px;border-radius:14px;background:#FFF7E0;border:1px solid #e8c873;color:var(--gold-ink);text-decoration:none}@keyframes pop{0%{transform:translateY(12px) scale(.4);opacity:0}60%{transform:translateY(-6px) scale(1.15);opacity:1}to{transform:none}}.pop{animation:pop .6s ease-out both}.sound{position:absolute;right:16px;top:64px;width:44px;height:44px;border-radius:999px;border:0;background:rgba(255,255,255,.9);font-size:20px;cursor:pointer}.shell:has(.admin-wide){max-width:1200px}.shell:has(.admin-wide) .nav{max-width:1200px}@media (min-width:900px){.admin-wide .page{padding:24px 32px 96px;display:grid;grid-template-columns:1fr 1fr;grid-gap:16px;gap:16px;align-items:start}.admin-wide .page>.between,.admin-wide .page>.err,.admin-wide .page>.ok,.admin-wide .page>.row,.admin-wide .page>.small,.admin-wide .page>.wide,.admin-wide .page>:first-child{grid-column:1/-1}.admin-wide .page h1{font-size:24px}}