:root{font-family:Pretendard,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility}*{box-sizing:border-box}html{background:#f5f5f5}body{margin:0;min-width:320px;min-height:100vh}button,input,select{font:inherit}@font-face{font-family:Pretendard;src:url(/fonts/Pretendard-Regular.woff2) format("woff2");font-weight:400;font-display:swap}@font-face{font-family:Pretendard;src:url(/fonts/Pretendard-Medium.woff2) format("woff2");font-weight:500;font-display:swap}@font-face{font-family:Pretendard;src:url(/fonts/Pretendard-SemiBold.woff2) format("woff2");font-weight:600;font-display:swap}@font-face{font-family:Pretendard;src:url(/fonts/Pretendard-Bold.woff2) format("woff2");font-weight:700;font-display:swap}@font-face{font-family:Pretendard;src:url(/fonts/Pretendard-ExtraBold.woff2) format("woff2");font-weight:800;font-display:swap}:root{font-family:Pretendard,sans-serif;--ink:#17221d;--paper:#f5f6ef;--lime:#b7f858;--line:#dce0d7;--muted:#748077}#root{min-height:100vh}html{scroll-behavior:smooth}#calendar,#operations,#guide{scroll-margin-top:24px}button,input,textarea{font:inherit}button{cursor:pointer}.eyebrow{display:block;font:500 11px Pretendard,sans-serif;letter-spacing:.13em;color:#778178}.eyebrow.lime{color:var(--lime)}.muted{color:var(--muted);line-height:1.6}.login-page{min-height:100vh;display:grid;grid-template-columns:1.12fr .88fr;background:var(--ink)}.login-intro{color:#fff;padding:clamp(44px,8vw,120px);display:flex;flex-direction:column;align-items:flex-start;justify-content:center}.brand-mark{width:46px;height:46px;display:grid;place-items:center;margin-bottom:70px;border-radius:50% 50% 50% 8%;background:var(--lime);color:var(--ink);font-size:25px;font-weight:800;transform:rotate(-20deg)}.login-intro h1{margin:18px 0;font:700 31px/1.2 Pretendard,sans-serif;letter-spacing:-.05em}.hero h1{margin:18px 0;font:700 clamp(46px,6vw,84px)/1.05 "Pretendard",sans-serif;letter-spacing:-.07em}.login-intro>p:not(.intro-note){max-width:350px;color:#bac3ba;font-size:17px;line-height:1.7}.intro-line{width:48px;height:2px;margin:50px 0 20px;background:var(--lime)}.intro-note{margin:0;color:#7c8980;font-size:13px}.login-panel{display:grid;place-items:center;padding:32px;background:var(--paper)}.login-card{width:min(100%,410px)}.login-card h2,.section-head h2,.calendar-header h2,.mobile-list-head h2,.guide-card h2{margin:12px 0 7px;font:700 31px/1.2 Pretendard,sans-serif;letter-spacing:-.05em}.login-card form{margin-top:35px}label{display:block;margin:18px 0 8px;font-size:13px;font-weight:700;color:#3c473e}input,textarea{width:100%;padding:14px 0;border:0;border-bottom:1px solid #bec6ba;border-radius:0;outline:0;background:transparent;color:var(--ink)}input:focus,textarea:focus{border-color:var(--ink)}.button{display:inline-flex;align-items:center;justify-content:center;gap:16px;min-height:52px;border:0;padding:0 20px;font-weight:800}.button:hover:not(:disabled){transform:translateY(-2px)}.button:disabled{cursor:default;opacity:.6}.button.primary{width:100%;margin-top:27px;background:var(--lime);color:var(--ink)}.button.primary span{font-size:20px}.button.outline{width:100%;margin-top:22px;border:1px solid #bdc8b7;background:transparent;color:#b85240}.help-text{margin:22px 0;color:#829084;font-size:12px;text-align:center}.form-error{margin:12px 0 0;color:#d84c37;font-size:13px}.kakao-button{display:flex;align-items:center;justify-content:center;gap:12px;width:100%;min-height:53px;margin-top:34px;border:0;border-radius:3px;background:#fee500;color:#1b1b18;font-size:14px;font-weight:800}.kakao-button b{display:grid;width:22px;height:22px;place-items:center;border-radius:50%;background:#371d1e;color:#fee500;font:700 15px Arial,sans-serif}.boot-screen{display:grid;min-height:100vh;place-items:center;background:var(--paper);color:#647062;font-size:14px}.dashboard{min-height:100vh;background:var(--paper);color:var(--ink)}.topbar{height:76px;padding:0 max(24px,calc((100vw - 1170px)/2));display:flex;align-items:center;gap:45px;border-bottom:1px solid rgba(220,224,215,.65)}.wordmark{color:var(--ink);text-decoration:none;font-size:15px;font-weight:800;letter-spacing:.06em;white-space:nowrap}.wordmark span{display:inline-grid;width:22px;height:22px;place-items:center;margin-right:4px;border-radius:8px 8px 8px 2px;background:var(--lime);font-size:13px;transform:rotate(-16deg)}.topbar nav{display:flex;gap:23px}.topbar nav a,.profile button{color:#667168;text-decoration:none;font-size:13px;font-weight:600;white-space:nowrap}.profile{display:flex;align-items:center;gap:9px;margin-left:auto;font-size:13px;font-weight:700;white-space:nowrap}.profile button{margin-left:7px;border:0;border-left:1px solid var(--line);background:none;padding-left:16px}.avatar{display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#ffdfd3;color:#8d3e27;font-size:11px}.avatar.large{width:34px;height:34px;background:#dff4b8;color:#3c6d24}.content{width:min(1170px,calc(100% - 48px));margin:auto}.hero{min-height:340px;display:flex;align-items:center;justify-content:space-between;gap:32px;padding:64px 0 53px}.hero h1{margin:13px 0;font-size:clamp(44px,5.5vw,74px)}.hero h1 i{color:#5e9445;font-style:normal}.hero>div>p{margin:0;color:var(--muted);font-size:16px}.hero-stats{width:185px;padding:23px 0 20px 26px;border-left:1px solid #cad2c4}.hero-stats span{display:block;color:var(--muted);font-size:13px}.hero-stats strong{display:block;margin:10px 0 0;font-size:48px;line-height:1;letter-spacing:-.06em}.hero-stats strong small{margin-left:3px;font-size:16px}.hero-stats p{margin:7px 0 0;color:#658c4d!important;font-size:12px!important;font-weight:700}.hero-stats em{display:block;margin-top:15px;color:#7e8a7e;font-size:11px;font-style:normal}.calendar-card,.member-table,.guide-card,.my-quarter,.mobile-timeline,.connection-card{border:1px solid var(--line);background:#fff}.calendar-card{padding:30px}.calendar-header,.section-head{display:flex;justify-content:space-between;align-items:end;gap:20px}.calendar-header h2{margin-bottom:0}.calendar-actions{display:flex;align-items:center;gap:12px}.today-check{min-height:38px;border:0;padding:0 15px;background:var(--ink);color:#fff;font-size:12px;font-weight:800}.today-check span{color:var(--lime);margin-left:5px}.calendar-controls{display:flex;gap:6px}.calendar-controls button{width:38px;height:38px;border:1px solid var(--line);background:#fff;color:var(--ink);font-size:18px}.calendar-controls button:disabled{color:#bcc4ba;cursor:default}.weekdays,.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr)}.weekdays{margin-top:27px;border-top:1px solid var(--line)}.weekdays span{padding:14px 8px;color:#89928a;font:11px Pretendard,sans-serif;text-align:center}.calendar-day,.calendar-blank{min-height:107px;border:0;border-top:1px solid #edf0eb;border-right:1px solid #edf0eb;background:#fff;padding:11px;text-align:left;vertical-align:top}.calendar-day:nth-child(7n),.calendar-blank:nth-child(7n){border-right:0}.calendar-day{position:relative;transition:background .15s}.calendar-day:hover{background:#f3f7eb}.calendar-day b{font:500 12px Pretendard,sans-serif}.calendar-day i{position:absolute;top:10px;right:10px;color:#8b9a85;font:500 10px Pretendard,sans-serif;font-style:normal}.calendar-day.today b{display:grid;place-items:center;width:23px;height:23px;border-radius:50%;background:var(--ink);color:#fff}.calendar-day.recorded{background:#f4fae8}.calendar-day.recorded:after{content:"";position:absolute;top:12px;right:28px;width:7px;height:7px;border-radius:50%;background:#79b73c}.calendar-day small{display:block;max-height:37px;overflow:hidden;margin-top:10px;color:#51674a;font-size:11px;line-height:1.5}.calendar-help{margin:20px 0 0;color:#879087;font-size:12px}.mobile-timeline{display:none}.my-quarter{display:flex;align-items:center;justify-content:space-between;margin-top:20px;padding:23px 28px}.my-quarter h2{margin:0 auto 0 24px;font:700 25px/1.2 Pretendard,sans-serif;letter-spacing:-.06em}.my-quarter h2 b{color:#5e9445}.my-quarter p{margin:0;color:var(--muted);font-size:12px}.connection-card{display:flex;align-items:center;gap:12px;margin-top:12px;padding:12px 18px;color:#728070;font-size:11px}.connection-card code{padding:4px 7px;background:#f0f4e9;color:#3d5140}.connection-card p{margin:0;color:#9aa497}.guide-card{display:block;margin-top:20px;padding:0;overflow:hidden}.guide-summary{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:30px;background:#fff}.guide-summary h2{max-width:780px;margin:12px 0 0}.guide-toggle{flex:0 0 auto;min-width:112px;min-height:44px;padding:0 15px;border:1px solid #cbd6c5;border-radius:4px;background:#f7faf3;color:#49643e;font-size:12px;font-weight:800}.guide-toggle:hover{background:#eaf4db}.guide-body{padding:0 30px 30px;border-top:1px solid #edf0eb}.guide-card p{max-width:800px;margin:0;padding-top:25px;color:#657168;white-space:pre-wrap;font-size:13px;line-height:1.85}.text-button{height:34px;flex:0 0 auto;margin-top:22px;border:0;border-bottom:1px solid #84947f;background:none;color:#53674e;font-size:12px;font-weight:800}.admin-section{margin:84px 0}.section-head{margin-bottom:20px}.section-head p{margin:9px 0 0;color:var(--muted);font-size:13px}.search{display:flex;align-items:center;gap:8px;min-width:215px;margin:0;padding:0 11px;border-bottom:1px solid #aeb8ae;color:#778177}.search input{padding:9px 0;font-size:13px}.member-row{display:grid;grid-template-columns:2fr 1fr 1.4fr .9fr;align-items:center;width:100%;min-height:67px;padding:0 24px;border:0;border-bottom:1px solid #edf0eb;background:#fff;color:#657168;font-size:13px;text-align:left}.member-row:last-child{border:0}.member-button:hover{background:#f7faf1}.table-label{min-height:44px;color:#879087;font:10px Pretendard,sans-serif;letter-spacing:.05em}.member-name{display:flex;align-items:center;gap:11px;color:var(--ink)}.role{display:inline-block;padding:5px 9px;border-radius:20px;background:#f0f2ed;color:#788177;font-size:11px;font-style:normal;font-weight:800}.role.admin{background:#e7f8cb;color:#508336}.role.staff{background:#e5efff;color:#4b668a}.member-dates{padding:14px 24px 18px 69px;border-bottom:1px solid #edf0eb;background:#fbfcf8;color:#667168;font-size:12px;line-height:1.8}.member-dates span{display:inline-block;margin:0 10px 5px 0;padding:3px 7px;background:#f0f4e9}.role-select{min-width:82px;padding:6px 7px;border:1px solid #c8d2c3;border-radius:2px;background:#fff;color:#516451;font-size:11px;font-weight:700}.empty{display:grid;min-height:180px;place-items:center;color:#879087}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:10;display:grid;place-items:center;padding:20px;background:#17221db8}.modal{position:relative;width:min(100%,470px);padding:35px;background:var(--paper)}.modal h2{margin:12px 0 14px;font:700 29px/1.25 Pretendard,sans-serif;letter-spacing:-.06em}.modal textarea{min-height:150px;padding:12px;border:1px solid #bec6ba;resize:vertical}.close{position:absolute;top:14px;right:17px;border:0;background:none;color:#5f6a60;font-size:27px}.day-description,.field-note{margin:7px 0;color:#829084;font-size:12px;line-height:1.6}.checked-members{display:flex;flex-wrap:wrap;gap:8px;min-height:70px;margin-top:19px;padding:15px;border:1px solid #dce4d5;background:#fff}.checked-members>p{margin:auto 0;color:#8a948b;font-size:13px}.checked-person{display:inline-flex;align-items:center;gap:6px;padding:5px 8px 5px 5px;border-radius:20px;background:#eef2e9;color:#566551;font-size:12px;font-weight:700}.checked-person b{display:grid;width:20px;height:20px;place-items:center;border-radius:50%;background:#d8edbd;color:#3d6f23;font-size:10px}.checked-person.mine{background:#e4f8c5}.checked-person em{color:#5b8d3e;font-size:10px;font-style:normal}footer{padding:24px;border-top:1px solid var(--line);color:#89928b;font-size:11px;text-align:center}@media(max-width:760px){.login-page{height:100dvh;min-height:100dvh;grid-template-columns:1fr;grid-template-rows:50dvh 50dvh;overflow:hidden}.login-intro,.login-panel{height:50dvh;min-height:0;box-sizing:border-box;overflow:hidden}.login-intro{padding:clamp(18px,6dvh,46px) 29px}.brand-mark{width:38px;height:38px;margin-bottom:clamp(10px,4dvh,35px);font-size:20px}.login-intro h1{margin:10px 0;font-size:clamp(24px,7vw,31px)}.intro-line{margin:clamp(14px,4dvh,28px) 0 13px}.intro-note{font-size:12px}.login-panel{padding:clamp(18px,6dvh,52px) 29px}.login-card h2{font-size:clamp(24px,7vw,31px)}.login-card .muted{margin:8px 0;font-size:12px}.kakao-button{min-height:48px;margin-top:18px}.help-text{margin:14px 0 0}.topbar{gap:12px;height:62px;padding:0 20px}.topbar nav{display:block;margin-left:auto}.topbar nav a{display:none}.topbar nav a:last-child{display:block;font-size:11px}.profile{margin-left:0}.profile>span:not(.avatar){display:none}.content{width:min(100% - 32px,1170px)}.hero{min-height:auto;padding:51px 0 32px}.hero-stats{display:none}.hero h1{font-size:44px}.desktop-calendar{display:none}.mobile-timeline{display:block;overflow:hidden}.mobile-calendar-header{display:grid;grid-template-columns:48px 1fr 48px;align-items:center;min-height:82px;padding:10px 12px;border-bottom:1px solid #edf0eb;text-align:center}.mobile-calendar-header button{width:44px;height:44px;justify-self:center;border:1px solid #dbe4d6;border-radius:50%;background:#fff;color:var(--ink);font-size:30px;font-weight:400;line-height:1}.mobile-calendar-header h2{margin:3px 0 0;font-size:25px}.mobile-check-in-button{display:flex;align-items:center;justify-content:space-between;width:calc(100% - 32px);min-height:54px;margin:18px 16px 17px;padding:0 18px;border:0;border-radius:5px;background:var(--ink);color:#fff;font-size:15px;font-weight:800}.mobile-check-in-button span{color:var(--lime);font-size:12px}.load-more{display:block;width:100%;padding:13px;border:0;border-top:1px solid #edf0eb;background:#fafcf7;color:#667a61;font-size:12px;font-weight:800}.timeline-row{display:grid;grid-template-columns:84px minmax(0,1fr) 34px;align-items:center;gap:8px;width:100%;min-height:65px;padding:12px 17px;border:0;border-top:1px solid #edf0eb;background:#fff;color:#566451;text-align:left}.timeline-row.today{background:#f5faec}.timeline-date{color:#334238;font:500 11px Pretendard,sans-serif}.timeline-members{overflow:hidden;color:#738073;font-size:12px;text-overflow:ellipsis;white-space:nowrap}.timeline-row b{color:#5a8b3e;font-size:11px;text-align:right}.my-quarter{display:block;margin-top:16px;padding:21px}.my-quarter h2{margin:10px 0;font-size:24px}.my-quarter p{margin-top:12px}.guide-card{margin-top:16px}.guide-summary{gap:13px;padding:22px 20px}.guide-card h2{margin-top:9px;font-size:22px;line-height:1.3}.guide-toggle{min-width:104px;min-height:48px;padding:0 10px;font-size:12px}.guide-body{padding:0 20px 23px}.guide-card p{padding-top:20px}.text-button{margin-top:18px}.admin-section{margin:55px 0}.member-table{overflow:auto}.member-row{min-width:630px;padding:0 16px}.member-dates{min-width:630px;padding-left:58px}.modal{padding:28px 23px}}.absence-summary{display:flex;align-items:center;justify-content:space-between;gap:24px;margin:0 0 16px;padding:22px 26px;border:1px solid #d6e4cc;background:#f5faec}.absence-summary span{display:block;color:#57724b;font-size:12px;font-weight:800}.absence-summary strong{display:block;margin-top:5px;color:var(--ink);font-size:40px;line-height:1;letter-spacing:-.06em}.absence-summary strong small{margin-left:3px;font-size:14px}.absence-summary p{margin:8px 0 0;color:#75856e;font-size:11px}.absence-summary button,.copy-button{min-height:42px;border:0;padding:0 15px;background:var(--ink);color:#fff;font-size:12px;font-weight:800}.absence-summary button span{color:var(--lime);margin-left:7px}.role-save{display:flex;align-items:center;justify-content:space-between;gap:16px;margin:0 0 16px;padding:13px 17px;border:1px solid #dce2d9;background:#fff;color:#758075;font-size:12px}.role-save .button{min-height:40px;padding:0 15px;background:var(--ink);color:#fff;font-size:12px}.role-save .button:disabled{background:#e5e9e2;color:#9aa299}.role.paused{background:#fff0c6;color:#8c6819}.role.withdrawn{background:#f1e9e8;color:#85605d}.admin-proxy-button{width:100%;margin-top:11px;border:1px solid #8ebd62;background:#eff9df;color:#42652c}.proxy-member-list{display:flex;flex-wrap:wrap;gap:8px;max-height:260px;overflow:auto;margin:19px 0 0;padding:14px;border:1px solid #dce4d5;background:#fff}.proxy-member-list button{min-height:34px;border:1px solid #d4dfcc;padding:0 11px;background:#f8faf6;color:#52634e;font-size:12px;font-weight:700}.proxy-member-list button.selected{border-color:#6b9b42;background:#e5f6cc;color:#365f1b}.proxy-member-list p{margin:5px;color:#829084;font-size:12px}.absent-modal{width:min(100%,560px)}.absent-modal h2{margin-bottom:20px}.copy-button{margin-bottom:16px;background:#5f9540}.absent-names{display:flex;flex-wrap:wrap;gap:8px;max-height:300px;overflow:auto;padding:16px;border:1px solid #dce4d5;background:#fff}.absent-names span{padding:7px 9px;background:#f0f4e9;color:#52634e;font-size:12px;font-weight:700}.absent-names p{margin:4px;color:#788477;font-size:13px}@media(max-width:760px){.absence-summary{align-items:flex-start;flex-direction:column;gap:16px;padding:20px}.absence-summary button{width:100%;min-height:50px}.role-save{align-items:stretch;flex-direction:column}.role-save .button{width:100%;min-height:48px}.absent-modal{padding:26px 20px}.proxy-member-list{max-height:230px}}.member-date-chips,.all-member-dates{display:flex;flex-wrap:wrap;gap:7px}.member-date-chips span,.all-member-dates span{display:inline-block;padding:3px 7px;background:#f0f4e9}.member-dates-more{margin-top:9px;border:0;border-bottom:1px solid #84947f;padding:0 0 2px;background:transparent;color:#53674e;font-size:11px;font-weight:800}.all-member-dates{max-height:330px;overflow:auto;margin-top:20px;padding:15px;border:1px solid #dce4d5;background:#fff;color:#667168;font-size:12px;line-height:1.6}.member-name-text{display:flex;min-width:0;flex-wrap:wrap;align-items:baseline;gap:4px}.member-name-text b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.member-name-text small{color:#8a9589;font-size:11px;font-weight:600}.member-role-mark{display:inline-block;color:#ce9528;font-size:13px;font-style:normal;line-height:1}.member-role-mark.staff{color:#5d83bd}.member-inline-role{color:#758174;font-size:11px;font-style:normal;font-weight:700;white-space:nowrap}.member-table:not(.is-admin) .member-row{grid-template-columns:2fr 1fr 1.4fr}.profile-editor{display:grid;grid-template-columns:88px minmax(0,1fr) auto;align-items:center;gap:8px;margin-top:15px;padding-top:15px;border-top:1px dashed #d7dfd2}.profile-editor label{margin:0;color:#62715e;font-size:11px;font-weight:800}.profile-editor input{min-width:0;padding:8px 9px;border:1px solid #c8d2c3;border-radius:2px;background:#fff;color:var(--ink);font-size:12px}.profile-editor button{min-height:34px;border:0;padding:0 10px;background:#5f9540;color:#fff;font-size:11px;font-weight:800}.profile-editor button:disabled{opacity:.55;cursor:default}.profile-editor p{grid-column:2 / -1;margin:0;color:#839084;font-size:10px;line-height:1.4}.copy-note{margin:-7px 0 13px;color:#829084;font-size:11px;line-height:1.5}@media(max-width:760px){.login-page{grid-template-rows:30dvh 70dvh}.login-intro,.login-panel{min-height:0;box-sizing:border-box;overflow:hidden}.login-intro{height:30dvh;padding:16px 29px}.brand-mark{width:34px;height:34px;margin-bottom:8px;font-size:18px}.login-intro .eyebrow{font-size:9px}.login-intro h1{margin:7px 0;font-size:clamp(24px,7vw,31px)}.intro-line{margin:9px 0 8px}.intro-note{font-size:11px}.login-panel{height:70dvh;padding:clamp(30px,8dvh,70px) 29px;align-items:start}.kakao-button{min-height:54px;margin-top:22px}.help-text{margin:16px 0 0}.member-table{overflow:hidden}.table-label{display:none}.member-row{min-width:0;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"name count" "last role";align-items:center;gap:9px 12px;min-height:0;padding:16px 18px}.member-name{grid-area:name;min-width:0}.member-name b:last-child{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.member-count{grid-area:count;color:#4c7a35;text-align:right}.member-last{grid-area:last;color:#788477;font-size:11px}.member-last:before{content:"마지막 참여일: ";color:#9aa49a}.member-role{grid-area:role;text-align:right}.role-select{max-width:120px;min-width:0}.member-table:not(.is-admin) .member-row{grid-template-columns:minmax(0,1fr) auto}.member-dates{min-width:0;padding:0 18px 16px}.member-date-chips{gap:6px}.member-date-chips span{margin:0;font-size:11px}.member-dates-more{margin-top:10px}.member-name-text{overflow:hidden}.profile-editor{grid-template-columns:minmax(0,1fr) auto;gap:8px}.profile-editor label,.profile-editor p{grid-column:1 / -1}.profile-editor p{font-size:10px}}.site-footer{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:22px max(24px,calc((100vw - 1170px)/2));text-align:left}.footer-meta{display:flex;flex-wrap:wrap;gap:7px 15px}.instagram-link{display:inline-flex;align-items:center;gap:7px;color:#60745b;font-size:11px;font-weight:700;text-decoration:none}.instagram-link:hover{color:#42652c}.instagram-link svg{width:17px;height:17px;fill:none;stroke:currentColor;stroke-width:1.8}@media(max-width:760px){.member-dates{padding:18px 16px}.site-footer{align-items:flex-start;flex-direction:column;gap:12px;padding:22px 20px}.footer-meta{gap:5px 12px}.instagram-link{align-items:flex-start;line-height:1.5}.instagram-link svg{flex:0 0 auto;margin-top:1px}}.login-shell{display:grid;height:100dvh;min-height:100vh;grid-template-rows:minmax(0,1fr) auto;overflow:hidden}.login-shell .login-page{height:100%;min-height:0}.login-footer{width:100%;flex-wrap:nowrap}.login-footer .footer-meta,.login-footer .instagram-link{white-space:nowrap}.site-footer:not(.login-footer) .instagram-link span:before{content:"@picklimb";margin-right:9px;color:currentColor;font-weight:800}@media(max-width:760px){.login-shell{grid-template-rows:90dvh 10dvh}.login-shell .login-page{height:90dvh;min-height:90dvh;grid-template-rows:30dvh 60dvh}.login-shell .login-intro{height:30dvh}.login-shell .login-panel{height:60dvh}.login-footer.site-footer{min-height:10dvh;gap:3px;padding:9px 18px;justify-content:center}.login-footer .footer-meta{gap:2px 8px;font-size:9px}.login-footer .instagram-link{gap:5px;font-size:9px;line-height:1.2;white-space:normal}.login-footer .instagram-link svg{width:14px;height:14px}.login-footer .instagram-link b{white-space:nowrap}}.settings-menu{position:relative}.profile .settings-trigger{display:grid;width:38px;height:38px;place-items:center;margin-left:3px;border:1px solid #d8e0d3;border-radius:50%;padding:0;background:#fff;color:#40513e;font-size:18px;line-height:1}.settings-dropdown{position:absolute;z-index:8;top:46px;right:0;width:180px;padding:9px;border:1px solid #d7dfd3;background:#fff;box-shadow:0 14px 30px #2632201c}.settings-dropdown p{margin:4px 8px 8px;padding-bottom:9px;border-bottom:1px solid #eef1eb;color:#697568;font-size:11px;font-weight:800}.profile .settings-dropdown button{display:block;width:100%;margin:0;border:0;padding:11px 9px;background:transparent;color:#4c5c4a;font-size:12px;text-align:left}.profile .settings-dropdown button:hover{background:#f2f7eb}.member-profile-modal label{margin-top:16px}.member-profile-modal input[readonly]{background:#f4f6f2;color:#748071}.withdraw-button{width:100%;min-height:42px;margin-top:15px;border:1px solid #e2c7c2;background:#fff8f7;color:#9a5147;font-size:12px;font-weight:800}@media(max-width:760px){.profile-summary{display:none}.profile .settings-trigger{width:38px;height:38px;margin-left:0}.settings-dropdown{top:45px;right:0;width:175px}.member-name{align-items:flex-start;gap:0}.member-name>.avatar{display:none}.member-name-text{display:block;width:100%;overflow:visible;color:var(--ink);font-size:13px;line-height:1.55}.member-name .member-name-text b{overflow:visible;white-space:normal;text-overflow:clip}.member-name-text small,.member-inline-role,.member-role-mark{display:inline}.member-role-mark{margin-right:4px}}.member-summary-cards{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-bottom:16px}.member-summary-cards>div,.summary-card{min-height:116px;padding:20px 18px;border:1px solid #dce5d8;background:#fff;color:var(--ink);text-align:left}.member-summary-cards span{display:block;color:#748176;font-size:12px;font-weight:800}.member-summary-cards strong{display:block;margin-top:9px;font-size:34px;line-height:1;letter-spacing:-.06em}.member-summary-cards strong small{margin-left:3px;font-size:13px;letter-spacing:0}.summary-card{cursor:pointer}.summary-card.absent-card{border-color:#cde1c3;background:#f5faec}.summary-card em{display:block;margin-top:10px;color:#608750;font-size:11px;font-style:normal;font-weight:800}.operator-tools{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-bottom:16px}.operator-tools .search{margin-right:auto}.sort-control{display:flex;align-items:center;gap:8px;margin:0;color:#667268;font-size:12px;font-weight:800;white-space:nowrap}.sort-control select{min-height:38px;border:1px solid #cbd5c7;border-radius:2px;padding:0 28px 0 10px;background:#fff;color:#425342;font-size:12px}.export-button{min-height:38px;border:0;padding:0 14px;background:#5f9540;color:#fff;font-size:12px;font-weight:800}.export-button span{margin-left:6px;color:#d7f2ae;font-size:16px}.member-directory{margin:70px 0 84px}.member-directory .section-head{margin-bottom:18px}.member-directory .section-head strong{color:#5e9445;font-size:22px}.directory-list{border:1px solid var(--line);background:#fff}.directory-row{display:flex;align-items:center;justify-content:space-between;gap:18px;min-height:72px;padding:14px 24px;border-bottom:1px solid #edf0eb}.directory-row:last-child{border-bottom:0}.directory-row b{display:block;color:var(--ink);font-size:14px}.directory-row span{display:block;margin-top:5px;color:#879087;font-size:11px}.directory-row .role{flex:0 0 auto}@media(max-width:760px){.member-summary-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.member-summary-cards>div,.summary-card{min-height:102px;padding:17px 15px}.member-summary-cards>div:first-child{grid-column:span 2;min-height:90px}.member-summary-cards strong{margin-top:8px;font-size:30px}.member-summary-cards span{font-size:11px}.operator-tools{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:9px}.operator-tools .search{grid-column:1 / -1;width:100%}.sort-control{min-width:0;gap:6px}.sort-control select{min-width:0;width:100%;padding-left:8px}.export-button{min-height:40px;padding:0 12px;white-space:nowrap}.member-directory{margin:52px 0 60px}.member-directory .section-head{align-items:flex-end}.directory-row{min-height:76px;padding:15px 17px}.directory-row b{font-size:13px}.directory-row span{max-width:200px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.directory-row .role{font-size:10px}}.previous-quarter-section{margin:74px 0 0;border:1px solid #d7e3d1;background:#f8fbf4}.previous-quarter-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:29px 30px}.previous-quarter-heading h2{margin:10px 0 0;color:var(--ink);font:700 28px/1.2 Pretendard,sans-serif;letter-spacing:-.05em}.previous-quarter-heading p{margin:8px 0 0;color:#738073;font-size:12px}.previous-quarter-heading .guide-toggle:disabled{border-color:#dce4d9;background:#f4f7f1;color:#a3ada1;cursor:default}.previous-quarter-body{padding:0 30px 30px;border-top:1px solid #e3ece0}.previous-quarter-body .member-summary-cards{margin-top:20px}.historical-member-table{margin-top:18px}.historical-member-table .member-row{grid-template-columns:2fr 1fr 1.4fr}@media(max-width:760px){.previous-quarter-section{margin-top:52px}.previous-quarter-heading{align-items:flex-start;gap:12px;padding:22px 20px}.previous-quarter-heading h2{margin-top:8px;font-size:22px;line-height:1.3}.previous-quarter-heading p{font-size:11px;line-height:1.5}.previous-quarter-heading .guide-toggle{min-width:104px;min-height:48px;padding:0 9px}.previous-quarter-body{padding:0 0 20px;border-top:1px solid #e3ece0}.previous-quarter-body .member-summary-cards{margin:16px 16px 0}.historical-member-table{margin:16px}.historical-member-table .member-row{grid-template-columns:minmax(0,1fr) auto}.historical-member-table .member-last{grid-area:last}.historical-member-table .member-count{grid-area:count}}.doldoli-logo{font-size:18px;font-weight:800;letter-spacing:-.06em;text-decoration:none;color:var(--ink)}.doldoli-logo.inverse{color:var(--lime);margin-bottom:60px;font-size:24px}.kakao-button{text-decoration:none}.toast{position:fixed;bottom:24px;left:50%;transform:translate(-50%);max-width:calc(100% - 32px);display:flex;gap:18px;align-items:center;padding:15px 20px;background:var(--ink);color:#fff;font-size:13px;z-index:20;box-shadow:0 6px 24px #17221d22}.toast button{border:0;background:none;color:var(--lime);font-size:20px}button:focus-visible,a:focus-visible{outline:2px solid #5e9445;outline-offset:3px}.modal{max-height:calc(100dvh - 40px);overflow:auto}.mobile-calendar-header button:disabled,.load-more:disabled{opacity:.4;cursor:default}@media(max-width:760px){.doldoli-logo.inverse{margin-bottom:12px}.login-card .button.primary{font-size:12px;min-height:44px;margin-top:15px}.login-panel{overflow:auto!important}.topbar{position:relative}}:root{--ink:#182d50;--paper:#edf4fc;--lime:#a9d9ff;--line:#d6e2f1;--muted:#61758f;--accent:#316fd1}.admin-panel{margin:65px 0 80px;padding:28px;border:1px solid var(--line);background:#fff;border-radius:24px;scroll-margin-top:24px}.admin-panel .section-head{align-items:center}.role.admin{background:#ddebff;color:#285da6}.admin-filters{display:flex;gap:20px;margin:18px 0}.admin-filters label{flex:1;margin:0;color:#526f92}.admin-filters input,.admin-filters select{display:block;width:100%;margin-top:8px;padding:12px;border:1px solid var(--line);border-radius:12px;background:#f7faff;color:var(--ink)}.admin-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:24px 0}.admin-summary>div{padding:18px;background:#edf5ff;border-radius:16px}.admin-summary span{display:block;font-size:12px;color:var(--muted)}.admin-summary strong{display:block;margin-top:8px;font-size:27px;color:#316fd1}.admin-members{display:grid;grid-template-columns:1fr 1fr;gap:16px}.admin-member{border:1px solid var(--line);border-radius:18px;padding:22px;min-width:0}.admin-member-head{display:flex;justify-content:space-between;gap:12px;align-items:center}.admin-member h3{margin:0;font-size:18px}.admin-member p{color:var(--muted);font-size:12px;margin:8px 0}.admin-member dl{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:18px 0}.admin-member dt{font-size:11px;color:var(--muted)}.admin-member dd{margin:5px 0 0;font-size:15px;font-weight:700}.admin-dates{display:flex;flex-wrap:wrap;gap:6px;max-height:150px;overflow:auto}.admin-dates span{font-size:11px;padding:5px 8px;border-radius:7px;background:#edf5ff;color:#426795}.member-withdraw,.member-restore{margin-top:18px;padding:10px 14px;border:1px solid #f0ccd0;border-radius:10px;background:#fff6f7;color:#b44355;font-size:12px;font-weight:700}.member-restore{background:#edf5ff;border-color:#ccddf4;color:#316fd1}.admin-confirm-actions{display:flex;gap:12px;align-items:stretch;margin-top:24px}.admin-confirm-actions>button:first-child{border:1px solid var(--line);padding:0 20px;border-radius:12px;background:#fff;color:var(--ink)}.admin-confirm-actions .button.primary{margin:0}.admin-notice{font-size:13px;padding:13px 16px;background:#edf5ff;border-radius:12px;color:#285da6}.admin-menu-link{display:block;padding:11px 9px;font-size:12px;text-decoration:none;color:#46678d;border-radius:10px}.admin-menu-link:hover{background:#edf5ff}@media(max-width:760px){.admin-panel{padding:20px 16px;margin:40px 0;border-radius:20px}.admin-panel .section-head{align-items:flex-start;flex-direction:column}.admin-members{grid-template-columns:1fr}.admin-summary{gap:6px}.admin-summary>div{padding:12px 8px}.admin-summary strong{font-size:22px}.admin-summary span{font-size:10px}.admin-filters{flex-direction:column;gap:12px}.admin-member{padding:18px}.admin-confirm-actions{gap:8px}}html,.dashboard,.boot-screen{background:var(--paper)}.topbar{background:#f7faff;border-bottom-color:var(--line)}.topbar nav a,.profile button{color:#536986}.doldoli-logo{color:#255dac}.eyebrow{color:#657e9e}.eyebrow.lime{color:#4179bd}.hero h1 i,.my-quarter h2 b,.member-directory .section-head strong{color:var(--accent)}.hero-stats{border-color:#c6d8f0}.hero-stats p{color:var(--accent)!important}.hero-stats em{color:var(--muted)}.calendar-card,.my-quarter,.guide-card,.mobile-timeline,.directory-list{border-radius:24px;overflow:hidden;box-shadow:0 6px 24px #182d5005}.today-check,.button,.guide-toggle,.calendar-controls button{border-radius:12px}.today-check,.mobile-check-in-button{background:#255dac}.calendar-controls button,.weekdays{border-color:var(--line)}.weekdays span{color:#6e829d}.calendar-grid{border-radius:16px;overflow:hidden}.calendar-day,.calendar-blank{border-color:#e7eef8;color:var(--ink)}.calendar-day:hover{background:#f0f6ff}.calendar-day.recorded{background:#e9f2ff}.calendar-day.recorded:after{background:#4c8cdf}.calendar-day.today b{background:#316fd1}.calendar-day i,.calendar-help{color:#6d84a4}.calendar-day small{color:#486992}.guide-toggle{background:#eff5ff;color:#285fa8;border-color:#d0dff3}.guide-toggle:hover{background:#e3eeff}.guide-summary h2{font-size:28px}.guide-body{max-width:none;background:#fbfdff;border-color:#e0eaf6;padding:28px 30px 30px}.guide-intro{display:flex;justify-content:space-between;align-items:center;gap:20px;padding-bottom:20px;border-bottom:1px solid var(--line)}.guide-intro p{padding:0;margin:0;font-size:13px;color:var(--muted);white-space:normal}.guide-source,.guide-section a{color:#2867be;font-size:13px;font-weight:700;text-decoration:underline;text-underline-offset:4px}.guide-source{white-space:nowrap}.guide-sections{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:22px}.guide-section{background:#fff;border:1px solid #dce7f5;border-radius:20px;padding:24px;min-width:0}.guide-section h3{font-size:18px;line-height:1.5;margin:0 0 14px;letter-spacing:-.03em;color:var(--ink)}.guide-section h3 span{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;background:#eaf2ff;color:#316fd1;border-radius:9px;font-size:12px;margin-right:9px;vertical-align:middle}.guide-section p{padding:0;margin:0 0 13px;white-space:normal;color:#5d7290}.guide-section ul{padding-left:19px;margin:0;color:#506684;font-size:13px;line-height:1.85}.guide-section li+li{margin-top:9px}.guide-section>a{display:inline-block;margin-top:16px}.guide-section:first-child,.guide-section:last-child{grid-column:1/-1;background:#f2f7ff}.directory-row{border-color:#e8eff8}.directory-row span{color:#7588a2}.role.member{background:#eaf2ff;color:#3a6db0}.profile .settings-trigger{border-color:var(--line);color:#386292}.settings-dropdown{border-color:var(--line);border-radius:18px;box-shadow:0 12px 35px #182d5015}.profile .settings-dropdown button{border-radius:10px;color:#46678d}.profile .settings-dropdown button:hover{background:#eef5ff}.modal-backdrop{background:#15294699;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.modal{border-radius:24px;background:#f7faff;box-shadow:0 24px 70px #12284333}.modal h2,.modal label{color:var(--ink)}.modal input{border:1px solid #cddcf0;border-radius:12px;background:#fff;padding:13px 14px}.member-profile-modal input[readonly]{background:#edf3fb;color:#617896}.checked-members{border-radius:14px;border-color:var(--line)}.checked-person,.checked-person.mine{background:#e6f0ff;color:#386292}.checked-person b{background:#d1e5ff;color:#2c63a8}.checked-person em{color:#316fd1}.button.primary{background:#316fd1;color:#fff}.button.outline{background:#fff;border-color:#d4dfee}.close{color:#5c7698}.day-description,.field-note{color:#69809e}.toast{border-radius:16px;background:#255dac}.site-footer{border-color:var(--line);color:#6a819f}.footer-meta{align-items:center}.crew-history{display:flex;flex-wrap:wrap;gap:8px 20px;margin-top:12px;font-size:11px;color:#6a819f}.login-intro{background:#19385f}.login-intro .eyebrow.lime{color:#b7ddff}.login-intro .intro-note{color:#bdd2ed}.login-card h2{color:var(--ink)}.intro-line{background:#a9d9ff}.kakao-button{border-radius:14px}button:focus-visible,a:focus-visible{outline-color:#316fd1}@media(max-width:760px){.calendar-card,.my-quarter,.guide-card,.mobile-timeline,.directory-list{border-radius:20px}.mobile-check-in-button{border-radius:14px}.mobile-calendar-header{border-color:#e7eef8}.mobile-calendar-header button{border-color:var(--line);color:#316fd1}.load-more{background:#f2f7ff;color:#5278a9;border-color:#e7eef8}.timeline-row{border-color:#e7eef8;color:var(--ink)}.timeline-row.today{background:#e8f2ff}.timeline-date{color:#385577}.timeline-members{color:#6b7f99}.timeline-row b{color:#316fd1}.guide-summary{align-items:flex-start;flex-direction:column;gap:18px}.guide-summary h2{font-size:23px}.guide-toggle{width:100%;min-height:44px;border-radius:12px}.guide-body{padding:22px 16px}.guide-intro{align-items:flex-start;flex-direction:column;gap:12px}.guide-sections{grid-template-columns:1fr;gap:12px;margin-top:18px}.guide-section{padding:20px 17px;border-radius:16px}.guide-section h3{font-size:17px}.guide-section ul{font-size:13px}.modal{border-radius:22px}.crew-history{flex-direction:column;gap:6px;line-height:1.6}.site-footer:not(.login-footer){align-items:flex-start;flex-direction:column}}.doldoli-logo{display:inline-flex;align-items:center;flex-shrink:0;line-height:0}.doldoli-logo img{display:block;width:52px;height:auto;object-fit:contain;border-radius:8px;background:#fff}.doldoli-logo.inverse img{width:78px;border-radius:12px}@media(max-width:760px){.doldoli-logo img{width:46px}.doldoli-logo.inverse img{width:62px}}.entry-form label{margin:0 0 10px;color:#46617e}.entry-form input{padding:14px 16px;border:1px solid #cbdcf0;border-radius:12px;background:#fff;letter-spacing:.12em}.entry-form input:focus{border-color:#316fd1;box-shadow:0 0 0 3px #316fd118}.entry-form input::placeholder{letter-spacing:0}.entry-form .kakao-button{margin-top:22px}.kakao-button:disabled{opacity:.65;cursor:wait}.entry-help{margin:16px 0 0;font-size:11px;line-height:1.6;color:var(--muted);text-align:center}.entry-settings{display:grid;grid-template-columns:1fr 1fr;gap:24px;padding:24px;margin:24px 0;border:1px solid var(--line);border-radius:20px;background:#f7faff}.entry-settings h3{margin:0 0 10px;font-size:18px}.entry-settings p{font-size:12px;line-height:1.6;color:var(--muted)}.entry-settings .current-entry-code{color:var(--ink)}.current-entry-code strong{margin-left:10px;font-size:19px;letter-spacing:.12em}.entry-settings form label{margin:0 0 10px}.entry-settings-actions{display:flex;gap:10px}.entry-settings-actions input{min-width:0;background:#fff;border:1px solid #cbdcf0;border-radius:12px;padding:12px}.entry-settings-actions .button{flex-shrink:0;background:#255dac;color:#fff;min-height:46px}.entry-settings .admin-notice{color:#285da6}@media(max-width:760px){.entry-settings{grid-template-columns:1fr;padding:18px;gap:16px}.entry-settings-actions{flex-direction:column}}.attendance-view-toggle{display:flex;gap:8px;margin:24px 0 16px}.attendance-view-toggle button{padding:12px 24px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--ink);font-weight:700}.attendance-view-toggle button[aria-pressed=true]{background:#255dac;color:#fff;border-color:#255dac}.desktop-calendar{display:block!important}.attendance-list-card{padding:28px;border:1px solid var(--line);border-radius:24px;background:#fff}.attendance-list-day{margin-top:24px}.attendance-date-link{display:flex;justify-content:space-between;gap:12px;width:100%;padding:12px 0;border:0;background:transparent;color:var(--ink);font-weight:800;text-align:left}.attendance-date-link span{font-size:11px;color:var(--accent)}.attendance-entries{display:grid;gap:10px}.attendance-entry{padding:16px;border:1px solid var(--line);border-radius:16px;background:#f8fbff;min-width:0}.attendance-entry-head{display:flex;justify-content:space-between;gap:12px;font-size:13px}.attendance-entry-head em{font-size:10px;font-style:normal;margin-left:8px;color:var(--accent)}.attendance-entry time{font-size:12px;color:var(--muted)}.attendance-place{font-size:13px;font-weight:700;margin:12px 0 4px}.attendance-address{font-size:11px;color:var(--muted);margin:0;line-height:1.5}.attendance-note{font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere;line-height:1.7;margin:12px 0 0}.attendance-entry a{display:inline-block;margin-top:10px;font-size:11px;color:var(--accent)}.gym-picker{margin:20px 0}.gym-picker-trigger{display:flex;justify-content:space-between;gap:12px;width:100%;padding:14px;border:1px solid #cbdcf0;border-radius:12px;background:#fff;color:var(--ink);text-align:left}.gym-search-panel{margin-top:10px;padding:14px;border:1px solid var(--line);border-radius:16px;background:#f7faff}.gym-search-controls{display:grid;grid-template-columns:85px 1fr auto;gap:8px;align-items:end}.gym-search-controls label{margin:0;font-size:11px}.gym-search-controls input,.gym-search-controls select,.gym-manual input{min-width:0;width:100%;margin-top:8px;padding:10px;border:1px solid #cbdcf0;border-radius:10px;background:#fff;font-size:12px}.gym-search-controls>button,.gym-more,.gym-manual>button{padding:12px;border:0;border-radius:10px;background:#255dac;color:#fff;font-size:12px}.gym-search-results{display:grid;gap:8px;margin-top:12px;max-height:220px;overflow:auto}.gym-search-results button{display:block;width:100%;padding:12px;border:1px solid var(--line);border-radius:12px;background:#fff;text-align:left;color:var(--ink)}.gym-search-results span{display:block;margin-top:5px;font-size:11px;color:var(--muted)}.gym-search-results strong{font-size:12px}.gym-more{margin-top:10px;width:100%}.gym-manual-toggle{border:0;background:transparent;font-size:12px;color:var(--accent);text-decoration:underline}.gym-manual label{margin:12px 0}.gym-manual>button{width:100%}.member-profile-modal{max-height:88dvh;overflow:auto}.member-profile-modal textarea{padding:12px;border:1px solid var(--line);border-radius:12px;background:#fff;resize:vertical}.admin-attendance-details{margin-top:26px}.admin-attendance-details>.attendance-entries{grid-template-columns:repeat(2,minmax(0,1fr))}@media(max-width:760px){.attendance-list-card{padding:20px 16px}.calendar-grid{min-width:0}.calendar-day{min-width:0;min-height:85px;padding:8px 4px}.calendar-day small{font-size:9px;overflow:hidden;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical}.calendar-header{gap:12px;flex-wrap:wrap}.calendar-header h2{font-size:23px}.calendar-actions{gap:8px}.calendar-card{padding:20px 12px}.calendar-help{font-size:11px}.gym-search-controls{grid-template-columns:75px minmax(0,1fr)}.gym-search-controls>button{grid-column:1 / -1}.admin-attendance-details>.attendance-entries{grid-template-columns:1fr}}.crew-chat-link{display:inline-flex;align-items:center;justify-content:center;padding:10px 14px;border-radius:12px;background:#fee500;color:#302a14!important;text-decoration:none;font-size:12px;font-weight:800;white-space:nowrap}.crew-chat-link:hover{background:#f4da00}.crew-chat-link:focus-visible{outline:3px solid #316fd1;outline-offset:3px}.site-footer .crew-chat-link{margin-top:12px}.admin-launcher{display:flex;justify-content:flex-end;margin:24px 0 0}.admin-launch-button,.admin-panel-controls button{border:1px solid #bfd2eb;border-radius:12px;padding:12px 18px;background:#255dac;color:#fff;font-size:13px;font-weight:800}.admin-launch-button[aria-expanded=true]{background:#e6effb;color:#255dac}.admin-management-view{scroll-margin-top:24px}.admin-panel-controls{display:flex;justify-content:flex-end;margin-top:36px}.admin-panel-controls button{background:#fff;color:#255dac}.admin-management-view .admin-panel{margin-top:14px}.admin-panel h2:focus-visible{outline:2px solid #316fd1;outline-offset:6px}@media(max-width:760px){.admin-launch-button{width:100%}.admin-launcher{margin-top:20px}}.directory-member-button{width:100%;text-align:left;background:#fff;border:0;border-bottom:1px solid var(--line);color:var(--ink);cursor:pointer}.directory-member-button:hover{background:#edf5ff}.directory-member-button .directory-detail-link{font-size:11px;color:#255dac;font-weight:800;white-space:nowrap}.admin-member-open{border:0;background:transparent;padding:0;text-align:left;color:var(--ink)}.admin-member-open>span{color:#255dac;font-size:11px;font-weight:700}.admin-member-open:hover h3{text-decoration:underline}.member-detail-modal{width:min(620px,calc(100vw - 32px));max-height:88dvh;overflow:auto}.member-detail-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;margin:24px 0;padding:18px;background:#f4f8ff;border-radius:16px}.member-detail-meta dt{font-size:11px;color:var(--muted)}.member-detail-meta dd{margin:6px 0 0;font-size:13px;overflow-wrap:anywhere}.member-detail-modal input{padding:12px;border:1px solid var(--line);border-radius:12px;background:#fff}.member-detail-history{margin-top:30px}.member-detail-history>p{font-size:12px;color:var(--muted);line-height:1.7}@media(max-width:760px){.member-detail-meta{grid-template-columns:1fr;gap:12px}.member-detail-modal{padding:24px 20px}}.admin-popup{width:min(1100px,calc(100vw - 32px));max-height:90dvh;overflow:auto;border-radius:24px;background:#f5f9ff;box-shadow:0 24px 80px #10274640;padding:0 24px 24px}.admin-popup-top{position:sticky;top:0;z-index:2;display:flex;justify-content:space-between;align-items:center;padding:18px 0;background:#f5f9ff}.admin-popup-top span{font-size:12px;font-weight:800;color:#46617e}.admin-popup-top button{border:1px solid var(--line);border-radius:12px;padding:10px 16px;background:#fff;color:var(--ink)}.admin-popup .admin-panel{margin:18px 0 0;box-shadow:none}.kakao-template-action{padding:16px;border-radius:16px;background:#fff;border:1px solid var(--line)}.kakao-template-button{border:0;border-radius:12px;background:#fee500;color:#302a14;padding:13px 20px;font-weight:800}.kakao-template-button:disabled{opacity:.6;cursor:wait}.kakao-template-action>p{margin:10px 0 0;font-size:12px;color:var(--muted);line-height:1.6}.admin-popup-backdrop{z-index:12}.modal-backdrop:has(.member-detail-modal){z-index:14}.admin-popup .modal-backdrop{z-index:13}@media(max-width:760px){.admin-popup{width:calc(100vw - 20px);padding:0 12px 16px;border-radius:18px;max-height:92dvh}.admin-popup .admin-panel{padding:18px 12px}.kakao-template-button{width:100%}}.member-role-control{margin:18px 0;padding-top:16px;border-top:1px solid var(--line)}.member-role-control label{font-size:12px;margin-bottom:8px}.member-role-control>div{display:flex;gap:10px}.member-role-control select{flex:1;min-width:0;padding:10px;border:1px solid var(--line);border-radius:12px;background:#fff}.member-role-control .button{background:#255dac;color:#fff}.member-role-control .button:disabled{opacity:.5;cursor:default}.attendance-toolbar{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;margin:24px 0 16px}.attendance-toolbar .attendance-view-toggle{margin:0}.attendance-scope-toggle{display:flex;gap:8px}.attendance-scope-toggle button{padding:12px 18px;border:1px solid var(--line);border-radius:14px;background:#fff;color:var(--ink);font-weight:700}.attendance-scope-toggle button[aria-pressed=true]{background:#e0edff;border-color:#9bbcec;color:#255dac}.gym-badge{display:inline-flex;align-items:center;justify-content:center;width:68px;height:68px;min-width:68px;border:1px solid #d5e3f7;border-radius:16px;background:#fff;overflow:hidden;vertical-align:middle;flex-shrink:0}.gym-badge.compact{width:48px;height:48px;min-width:48px;border-radius:12px}.gym-badge img{width:100%;height:100%;object-fit:contain;padding:6px}.gym-name-logo{display:flex;align-items:center;justify-content:center;width:100%;height:100%;padding:5px;background:#e8f1ff;color:#214f8c;font-size:11px;font-weight:800;line-height:1.25;text-align:center;overflow-wrap:anywhere}.gym-badge.compact .gym-name-logo{font-size:9px}.calendar-gym-logos{display:flex;gap:4px;align-items:center;margin:5px 0}.calendar-more-gyms{font-size:10px;color:#46617e}.calendar-day .calendar-boulder-total{display:block;font-size:10px;margin:3px 0 0}.attendance-gym-identity{display:flex;align-items:center;gap:12px;margin:14px 0}.attendance-gym-identity .attendance-place{margin:0;overflow-wrap:anywhere}.gym-picker-trigger{align-items:center}.gym-picker-trigger>span:nth-last-child(2){flex:1}.gym-search-results button{display:flex;align-items:center;gap:10px}.gym-search-results .gym-badge{display:inline-flex;margin:0}.gym-search-results .gym-name-logo{display:flex;margin:0;color:#214f8c;font-size:9px}.gym-result-text{flex:1;min-width:0}.my-gym-stats{padding:22px;margin:0 0 20px;border:1px solid var(--line);border-radius:22px;background:#fff}.my-gym-stats h3{margin:0;font-size:17px}.my-gym-stats .section-head>span{font-size:12px;color:var(--muted)}.gym-stat-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.gym-stat-grid article{display:flex;gap:14px;padding:16px;border:1px solid var(--line);border-radius:16px;background:#f8fbff}.gym-stat-grid article>div{min-width:0}.gym-stat-grid h4{font-size:14px;margin:0;overflow-wrap:anywhere}.gym-stat-grid p{font-size:12px;color:var(--muted);margin:6px 0}.boulder-summary>strong{font-size:13px;color:#255dac}.boulder-summary>div{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px}.boulder-summary>div>span{display:inline-flex;align-items:center;gap:5px;font-size:11px;padding:5px 8px;border:1px solid var(--line);border-radius:10px;background:#fff}.boulder-summary i,.boulder-count-row i{display:inline-block;width:12px;height:12px;min-width:12px;border:1px solid #0f294b33;border-radius:50%}.boulder-no-record{font-size:11px;color:var(--muted)}.boulder-fields{min-width:0;margin:20px 0;padding:18px;border:1px solid var(--line);border-radius:16px;background:#f7faff}.boulder-fields legend{font-size:15px;font-weight:800;padding:0 6px;color:var(--ink)}.boulder-fields legend span{font-size:11px;font-weight:400;color:var(--muted)}.boulder-source{font-size:11px;line-height:1.6}.boulder-source a{color:var(--accent)}.boulder-source span{display:block;color:var(--muted);margin-top:4px}.boulder-input-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.boulder-count-row{display:flex;align-items:center;gap:7px;margin:0!important;padding:10px;border:1px solid var(--line);border-radius:12px;background:#fff}.boulder-count-row>span{display:flex;align-items:center;gap:6px;flex:1;font-size:12px;min-width:0;overflow-wrap:anywhere}.boulder-count-row input{width:62px!important;min-width:0;padding:8px!important;margin:0!important;border:1px solid var(--line);border-radius:8px;font-size:13px}.boulder-count-row small{font-size:11px;color:var(--muted)}.boulder-add{display:grid;grid-template-columns:minmax(0,1fr) 96px auto;gap:8px;align-items:end;margin-top:16px}.boulder-add label{font-size:11px;margin:0}.boulder-add input,.boulder-add select{width:100%;min-width:0;margin-top:8px;padding:10px;border:1px solid var(--line);border-radius:10px;background:#fff}.boulder-add button{border:0;border-radius:10px;background:#255dac;color:#fff;padding:12px;font-size:11px}.boulder-add button:disabled{opacity:.5}.boulder-total{margin:14px 0 0;font-size:12px;color:#46617e}.boulder-total strong{color:#255dac;font-size:16px}@media(max-width:760px){.attendance-toolbar{gap:10px}.attendance-view-toggle button,.attendance-scope-toggle button{padding:11px 14px;font-size:12px}.my-gym-stats{padding:16px}.gym-stat-grid{grid-template-columns:1fr}.gym-badge{width:54px;height:54px;min-width:54px}.calendar-gym-logos{flex-wrap:wrap;gap:2px}.calendar-gym-logos .gym-badge.compact{width:30px;height:30px;min-width:30px;border-radius:8px}.calendar-gym-logos .gym-badge.compact .gym-name-logo{font-size:7px;padding:2px}.calendar-gym-logos .gym-badge img{padding:3px}.calendar-day .calendar-boulder-total{font-size:8px;line-height:1.2}.calendar-day.recorded{min-height:110px}.boulder-fields{padding:12px}.boulder-input-grid{grid-template-columns:1fr}.boulder-add{grid-template-columns:minmax(0,1fr) 96px}.boulder-add button{grid-column:1/-1}.boulder-count-row input{width:74px!important}}.boulder-remove{border:0;border-radius:8px;background:#eef3fa;color:#46617e;font-size:16px;padding:4px 7px}.boulder-footer{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-top:14px}.boulder-footer .boulder-total{margin:0}.boulder-reset{border:0;background:transparent;color:var(--muted);font-size:11px;text-decoration:underline}.boulder-reset:disabled{opacity:.4}@media(max-width:760px){.calendar-day .calendar-boulder-total{font-size:9px}}.install-app-button{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;padding:9px 12px;border:1px solid #cbdcf0;border-radius:14px;background:#fff;color:#255dac;font-size:12px;font-weight:800;white-space:nowrap}.install-app-button:hover{background:#edf5ff}.install-app-button:disabled{opacity:.6;cursor:wait}.login-install-button{position:fixed;right:20px;top:max(16px,env(safe-area-inset-top));z-index:5;box-shadow:0 5px 20px #123b6815}.install-guide-backdrop{z-index:40}.install-guide{max-width:470px}.install-app-preview{display:block;margin-bottom:18px;border:1px solid var(--line);border-radius:16px}.install-guide h2{font-size:25px;margin:12px 0}.install-steps{padding:16px;border:1px solid var(--line);border-radius:16px;background:#f7faff;font-size:13px;line-height:1.9;color:#35577e}.install-steps ol{margin:0;padding-left:20px}.install-steps p{margin:0 0 12px}.install-message{padding:12px;border-radius:12px;background:#e8f1ff;color:#255dac;font-size:13px;line-height:1.6}.install-guide .field-note{line-height:1.7;margin-top:18px}@media(max-width:760px){.install-app-button{width:38px;height:38px;min-height:38px;padding:8px;border-radius:50%}.install-app-button>span{display:none}.login-install-button{right:16px;top:max(12px,env(safe-area-inset-top));width:auto;padding:8px 12px;border-radius:14px}.login-install-button>span{display:inline}.install-guide h2{font-size:22px}}.install-guide{white-space:normal;font-weight:400;text-align:left}.install-guide .muted,.install-guide .field-note{overflow-wrap:anywhere}.gym-scope-toggle{display:flex;gap:8px;margin-bottom:14px}.gym-scope-toggle button{border:1px solid var(--line);background:#fff;color:var(--ink);border-radius:12px;padding:9px 14px;font-weight:700}.gym-scope-toggle button[aria-pressed=true]{background:#255dac;color:#fff}.gym-google-search{display:block;margin:12px 0;font-size:12px;color:var(--accent)}.calendar-member-gyms{display:flex;flex-direction:column;gap:5px;margin:7px 0}.calendar-member-gym{display:flex;align-items:center;gap:6px;min-width:0}.calendar-member-details{display:flex;flex:1;align-items:center;flex-wrap:wrap;gap:3px 5px;min-width:0;max-width:100%}.calendar-member-name{min-width:0;max-width:100%;font-size:11px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-grade-count{display:inline-flex;align-items:center;gap:3px;max-width:100%;padding:2px 4px;border:1px solid #d5e3f7;border-radius:999px;background:#fff;color:#214f8c;font-size:10px;line-height:1.2;white-space:nowrap;font-variant-numeric:tabular-nums}.calendar-grade-dot{width:9px;height:9px;flex:0 0 9px;border:1px solid #172b4d40;border-radius:50%}.calendar-member-gym .gym-badge.compact{width:32px;height:32px;min-width:32px;border-radius:8px}.calendar-member-gym .gym-name-logo{font-size:7px}.calendar-day{min-height:150px}@media(max-width:760px){.calendar-member-gym{flex-direction:column;gap:2px;align-items:flex-start}.calendar-member-details{gap:3px}.calendar-member-name{font-size:9px}.calendar-grade-count{font-size:9px;padding:2px 3px;gap:2px}.calendar-grade-dot{width:8px;height:8px;flex-basis:8px}.calendar-member-gym .gym-badge.compact{width:30px;height:30px;min-width:30px}.calendar-day{min-height:110px}}.gym-scroll-sentinel{height:1px;min-height:1px;margin:0!important}.gym-search-results{overscroll-behavior:contain}.modal.attendance-day-modal{width:min(880px,calc(100vw - 32px));max-height:90dvh}.attendance-day-modal .gym-search-controls{grid-template-columns:110px minmax(0,1fr) auto}@media(max-width:760px){.modal.attendance-day-modal{width:calc(100vw - 24px);padding:24px 20px}.attendance-day-modal .gym-search-controls{grid-template-columns:85px minmax(0,1fr)}}.gym-badge .gym-round-logo{width:100%;height:100%;padding:6px;background:#fff}@media(max-width:480px){.calendar-grade-count{padding:2px;font-size:8px;gap:2px}.calendar-grade-dot{width:6px;height:6px;flex-basis:6px}.calendar-grade-unit{display:none}}@media(min-width:1024px){.dashboard{--dashboard-width:1170px}.dashboard.dashboard-expanded{--dashboard-width:1840px}.dashboard>.content{width:min(var(--dashboard-width),calc(100% - 48px))}.dashboard>.topbar,.dashboard>.site-footer{padding-left:max(24px,calc((100% - var(--dashboard-width))/2));padding-right:max(24px,calc((100% - var(--dashboard-width))/2))}.desktop-calendar{width:100%;margin-left:0;transform:none}.desktop-calendar .calendar-card{padding:24px}.desktop-calendar .calendar-grid,.desktop-calendar .weekdays{grid-template-columns:repeat(7,minmax(0,1fr))}.desktop-calendar .calendar-day{padding:11px 6px;min-width:0}.desktop-calendar .calendar-member-gym{gap:4px}.desktop-calendar .calendar-member-details{gap:3px}.desktop-calendar .calendar-grade-count{padding:2px 3px}.desktop-calendar .calendar-member-gym .gym-badge.compact{width:48px;height:48px;min-width:48px;border-radius:12px}.desktop-calendar .calendar-member-name{font-size:12px}}.calendar-size-toggle{display:inline-flex;align-items:center;justify-content:center;min-height:38px;padding:9px 12px;border:1px solid #bfd2eb;border-radius:12px;background:#fff;color:#255dac;font-size:12px;font-weight:700;white-space:nowrap}.calendar-size-toggle:hover,.calendar-size-toggle[aria-pressed=true]{background:#e8f1ff}@media(max-width:1239px){.calendar-size-toggle{display:none}}@media(min-width:761px)and (max-width:1023px){.calendar-member-gym .gym-badge.compact{width:44px;height:44px;min-width:44px;border-radius:10px}}@media(max-width:760px){.calendar-member-gym .gym-badge.compact{width:min(36px,100%);height:auto;min-width:0;aspect-ratio:1}.calendar-member-gym .gym-badge img{padding:3px}}.coupang-partners{margin:0 0 36px;padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.coupang-ad-label{margin:0 0 14px;font-size:12px;color:var(--muted)}.coupang-ad-intro{margin-bottom:16px;padding:18px 20px;border:1px solid var(--line);border-radius:16px;background:#f7faff;text-align:center}.coupang-ad-intro strong{font-size:15px;color:#255dac}.coupang-ad-intro p{margin:9px 0 0;font-size:12px;line-height:1.7;color:#486992}.coupang-partners>iframe{display:block;width:100%;height:140px;border:0;border-radius:12px;background:#fff}.topbar nav{align-items:center}.topbar nav .developer-support-link{display:inline-flex;align-items:center;padding:9px 12px;border:1px solid #bfd2eb;border-radius:12px;background:#e8f1ff;color:#255dac}.topbar nav .developer-support-link:hover{background:#dbeaff}#coupang-partners{scroll-margin-top:24px}@media(max-width:760px){.topbar{height:auto;min-height:62px;flex-wrap:wrap;padding:10px 16px;gap:8px 12px}.topbar .profile{margin-left:auto}.topbar nav{order:3;display:flex;width:100%;margin:0;justify-content:center;gap:12px}.topbar nav a[href="#guide"]{display:inline-flex;font-size:11px}.topbar nav .developer-support-link{font-size:11px;padding:8px 10px}}@media(max-width:760px){.coupang-ad-intro{padding:16px 12px}.coupang-ad-intro p{font-size:11px}.coupang-partners{margin-bottom:24px}}.modal.modal-scroll-shell{display:flex;flex-direction:column;max-height:min(90dvh,calc(100dvh - 40px));padding:0;overflow:hidden}.modal-fixed-header{display:flex;align-items:flex-start;gap:16px;flex-shrink:0;padding:28px 35px 18px;border-bottom:1px solid var(--line)}.modal-fixed-header>div{order:1;flex:1;min-width:0}.modal-fixed-header h2{margin:10px 0 0;overflow-wrap:anywhere}.modal-fixed-header .close{position:static;order:2;display:grid;place-items:center;flex:0 0 40px;width:40px;height:40px;padding:0;border:1px solid var(--line);border-radius:12px;background:#fff;color:#486992;font-size:26px;line-height:1}.modal-fixed-header .close:hover{background:#e8f1ff}.modal-scroll-body{min-height:0;overflow-y:auto;overscroll-behavior-y:contain;scrollbar-gutter:stable;padding:18px 35px 35px}@media(max-width:760px){.modal-scroll-backdrop{padding:12px}.modal.modal-scroll-shell{max-height:calc(100dvh - 24px)}.modal-fixed-header{padding:20px 20px 16px;gap:12px}.modal-fixed-header h2{font-size:24px}.modal-scroll-body{padding:16px 20px 24px}}.period-select{display:grid;gap:8px;max-width:240px;margin:20px 0;font-weight:700}.period-select select,.member-activity-control select{width:100%;padding:10px;border:1px solid #cbdcfa;border-radius:12px;background:#fff;color:#19365a}.member-activity-control{display:flex;align-items:end;gap:10px;flex-wrap:wrap;margin:14px 0}.member-activity-control label{flex:1;min-width:140px;display:grid;gap:6px;font-size:12px}.member-activity-control p{width:100%;font-size:12px}.monthly-participation{background:#fff;border:1px solid #cbdcfa;border-radius:24px;padding:24px;margin:20px 0}.monthly-participation h3{margin:0 0 8px}.monthly-participation p{color:#637e9e;font-size:13px}.participation-members{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:10px;margin-top:16px}.participation-members button{display:flex;justify-content:space-between;gap:12px;border:1px solid #cbdcfa;border-radius:12px;padding:14px;background:#f6f9ff;color:#19365a;text-align:left}.participation-members span{font-size:12px;color:#637e9e}.attendance-settings{padding:20px;background:#f6f9ff;border:1px solid #cbdcfa;border-radius:18px;margin:20px 0}.participation-trigger{margin:16px 0}.participation-toolbar{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap}.participation-week,.participation-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.participation-week span{text-align:center;padding:12px 0;font-size:12px}.participation-grid>div{min-height:90px;border:1px solid #e4edfa;padding:5px;min-width:0}.participation-grid button{display:block;width:100%;border:0;background:#eef5ff;border-radius:8px;padding:4px;margin:4px 0;color:#19365a;text-align:left}.participation-grid .calendar-member{flex-wrap:wrap}.monthly-participation input{display:block;padding:10px;border-radius:12px;border:1px solid #cbdcfa;margin:8px 0}.participation-calendar{margin-top:20px}@media(max-width:600px){.monthly-participation{padding:12px}.participation-grid>div{padding:2px}.participation-grid .calendar-member-name{font-size:10px}}.attendance-toolbar .attendance-scope-toggle{flex-wrap:wrap;align-items:center}.attendance-toolbar .participation-trigger{margin:0;padding:12px 18px;border:1px solid #5364cd;border-radius:14px;background:linear-gradient(135deg,#3769c8,#7152bc);color:#fff;box-shadow:0 3px 9px #5364cd26;font-weight:700;cursor:pointer;transition:box-shadow .15s,filter .15s}.attendance-toolbar .participation-trigger:hover{filter:brightness(1.08);box-shadow:0 4px 12px #5364cd40}.attendance-toolbar .participation-trigger:focus-visible{outline:3px solid #a0baf4;outline-offset:3px}@media(max-width:760px){.attendance-toolbar .participation-trigger{padding:11px 14px;font-size:12px}.attendance-toolbar .attendance-scope-toggle{gap:6px}}
