@import url('https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/variable/pretendardvariable-dynamic-subset.min.css');
:root{color-scheme:dark;font-family:'Pretendard Variable',Pretendard,-apple-system,BlinkMacSystemFont,system-ui,'Apple SD Gothic Neo',sans-serif;--bg:#0b1713;--panel:#172a21;--panel2:#20382b;--line:#355542;--ink:#edf7ed;--muted:#a8c4b0;--green:#70d39b;--aqua:#a9e5c0;--discord:#8e9dff}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:radial-gradient(ellipse 65% 45% at 8% 0%,#203c2c 0,transparent 75%),radial-gradient(ellipse 80% 70% at 95% 95%,#152e29 0,transparent 75%),var(--bg);color:var(--ink);min-height:100vh}button,a,input{font:inherit}a{color:inherit;text-decoration:none}button{cursor:pointer}button:focus-visible,a:focus-visible,select:focus-visible{outline:3px solid var(--green);outline-offset:3px}img{max-width:100%}.shell{width:min(1220px,calc(100% - 40px));margin:auto}.nav{display:flex;align-items:center;gap:20px;justify-content:space-between;padding:25px 0}.brand{display:flex;gap:11px;align-items:center;font-weight:900;font-size:22px;letter-spacing:-.05em}.brand-icon{display:grid;place-items:center;width:41px;height:41px;border-radius:13px;background:#e8f3e9;font-size:25px}.navlinks{display:flex;gap:23px;align-items:center;font-size:13px;color:#b6cfbc;flex-wrap:wrap}.navlinks a:hover{color:white}.navbuttons{display:flex;align-items:center;gap:8px}.btn{border:1px solid var(--line);border-radius:13px;background:#1c3025;color:var(--ink);display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:750;padding:13px 19px;transition:background .15s,transform .15s}.btn:hover{background:#2a4634;transform:translateY(-1px)}.btn.primary{background:#46af76;color:#081b10;border-color:#46af76}.btn.primary:hover{background:#68cf91}.btn.discord{background:#5865f2;color:#fff;border-color:#5865f2}.btn.small{font-size:12px;padding:9px 13px}.tag{color:var(--green);font-size:12px;font-weight:800;letter-spacing:.09em;text-transform:uppercase}.hero{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);gap:26px;padding:72px 0 80px;align-items:center}.hero h1{font-size:clamp(39px,5vw,65px);line-height:1.21;letter-spacing:-.07em;margin:16px 0 22px}.hero p{color:var(--muted);line-height:1.9;font-size:16px;max-width:620px}.hero-actions{display:flex;gap:11px;flex-wrap:wrap;margin-top:32px}.hero-graphic{min-height:330px;border:1px solid #3f644d;border-radius:28px;display:grid;place-items:center;position:relative;background:linear-gradient(155deg,#254d34,#112a22);overflow:hidden;box-shadow:0 30px 100px #0004}.hero-graphic:before,.hero-graphic:after{content:'';position:absolute;border:1px solid #ffffff13;border-radius:50%;width:490px;height:490px}.hero-graphic:after{width:350px;height:350px}.hero-panda{font-size:130px;z-index:2;filter:drop-shadow(0 18px 25px #0005)}.hero-label{position:absolute;bottom:30px;font-weight:800;color:#d7f4dd}.section{margin:0 0 68px}.section h2{font-size:28px;letter-spacing:-.055em}.section-intro{color:var(--muted);font-size:14px;line-height:1.8}.feature-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.panel{background:linear-gradient(150deg,#1b3226,#14281f);border:1px solid var(--line);border-radius:19px;box-shadow:0 10px 30px #0002}.feature{padding:23px}.feature .emoji{font-size:29px}.feature h3{font-size:17px;margin:14px 0 7px}.feature p{font-size:13px;line-height:1.7;color:var(--muted);margin:0}footer{padding:45px 0 55px;border-top:1px solid #294735;color:#86a795;font-size:12px;display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap}footer a{color:#b4dcc2}footer a:hover{text-decoration:underline}.auth-screen{display:grid;place-items:center;padding:25px}.auth-card{width:min(460px,100%);border-radius:25px;background:var(--panel);border:1px solid var(--line);padding:42px 28px;text-align:center}.auth-card .panda{font-size:70px}.auth-card p{color:var(--muted);line-height:1.8}.auth-card .btn{margin-top:15px}
/* Dashboard */
.dash-heading{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:32px 0 25px}.dash-heading h1{font-size:35px;letter-spacing:-.055em;margin:8px 0}.subtext,.muted{color:var(--muted)}.subtext{font-size:13px;line-height:1.7}.viewer{display:flex;align-items:center;gap:8px;color:#c6dfcb;font-size:13px}.avatar{width:36px;height:36px;border-radius:50%;object-fit:cover;background:#2c5140}.dash-main{display:grid;gap:21px;margin-bottom:55px}.section-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:13px;flex-wrap:wrap}.section-head h2{font-size:21px;letter-spacing:-.035em;margin:0}.section-head p{font-size:12px;color:var(--muted);margin:4px 0 0}.calendar-layout{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(310px,.88fr);gap:16px}.calendar{padding:20px;min-width:0}.cal-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:15px}.cal-top strong{font-size:19px}.month-controls{display:flex;gap:6px}.mini-btn{min-width:32px;height:32px;border-radius:9px;border:1px solid var(--line);color:#d5edda;background:#244031}.mini-btn:hover{background:#315b40}.weekday,.days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.weekday span{text-align:center;color:#8bab99;font-size:11px;padding:8px 0}.day{min-height:60px;text-align:left;padding:8px;border:1px solid transparent;background:#20362a;border-radius:10px;color:#e5f4e9;display:flex;flex-direction:column;justify-content:space-between;gap:5px}.day:hover{background:#2b5039}.day.active{border-color:#88dfa9;background:#2b5138}.day.today .daynum{color:var(--green);font-weight:900}.day.out{background:transparent;cursor:default}.daynum{font-size:12px}.dots{display:flex;gap:3px;flex-wrap:wrap}.dot{width:5px;height:5px;background:#79d9a0;border-radius:100%}.dot.long{background:#a8baff}.dot.rank{background:#f1bf77}.calendar-foot{font-size:11px;color:var(--muted);margin:13px 3px 0}.calendar-foot span{display:inline-flex;align-items:center;gap:5px;margin-right:12px}.recruit-panel{padding:20px;min-height:465px;display:flex;flex-direction:column}.filter-row{display:flex;gap:6px;flex-wrap:wrap;margin:13px 0}.filter{padding:7px 11px;border:1px solid var(--line);border-radius:9px;background:#223b2e;color:#b8cfbe;font-size:11px}.filter.selected{background:#3d7650;color:white;border-color:#76ba83}.recruit-list{display:flex;flex-direction:column;gap:9px;max-height:375px;overflow:auto;padding-right:4px}.recruit{border:1px solid #355543;border-radius:12px;background:#1e3629;padding:13px;display:block}.recruit:hover{background:#294834}.recruit-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:7px}.recruit-title{font-size:13px;font-weight:800;line-height:1.4}.type{border-radius:7px;font-size:10px;padding:4px 7px;font-weight:850;color:#e1eae2;background:#426d53;flex-shrink:0}.type.long{background:#454a80}.type.rank{background:#775b32}.recruit-meta{display:flex;gap:11px;flex-wrap:wrap;color:#a6c6b0;font-size:11px}.empty{display:flex;align-items:center;justify-content:center;flex:1;text-align:center;min-height:130px;color:#8cae99;font-size:13px;line-height:1.8}.leaderboards{display:grid;grid-template-columns:1fr 1fr;gap:16px}.rank-card{padding:20px}.rank-card h3{font-size:17px;margin:0 0 17px}.rank-row{display:flex;align-items:center;gap:12px;padding:9px 0;border-bottom:1px solid #294a36}.rank-row:last-child{border-bottom:none}.rank-number{font-size:13px;font-weight:850;width:23px;text-align:center;color:#a8cfb5}.rank-name{flex:1;min-width:0;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:700}.rank-time{white-space:nowrap;font-size:12px;color:#9ed5b0;font-variant-numeric:tabular-nums}.boosts{padding:20px}.booster-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.booster{display:flex;align-items:center;gap:10px;padding:11px;border-radius:12px;background:#203a2d;min-width:0}.booster .avatar{flex:none}.booster strong{font-size:12px;display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.booster small{font-size:10px;color:var(--muted)}.notice{border:1px solid #8a653b;background:#443221;color:#ffdda9;border-radius:13px;padding:13px 16px;font-size:12px;line-height:1.7}.hidden{display:none!important}
@media(max-width:950px){.navlinks{display:none}.hero{grid-template-columns:1fr;gap:20px;padding:45px 0}.hero-graphic{min-height:240px}.calendar-layout{grid-template-columns:1fr}.recruit-panel{min-height:260px}.booster-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:650px){.shell{width:min(100% - 26px,1220px)}.nav{padding:15px 0}.brand{font-size:19px}.navbuttons .btn{padding:9px 10px;font-size:11px}.hero h1{font-size:38px}.hero-actions .btn{width:100%}.feature-grid{grid-template-columns:1fr}.leaderboards{grid-template-columns:1fr}.dash-heading{flex-direction:column;align-items:flex-start}.day{min-height:52px;padding:5px}.calendar,.recruit-panel,.rank-card,.boosts{padding:14px}.booster-grid{grid-template-columns:1fr 1fr}.booster{padding:8px}.booster .avatar{width:29px;height:29px}footer{padding:25px 0}}

/* 모든 페이지의 공통 상단 메뉴 */
.brand-en{font-size:11px;letter-spacing:.06em;color:#75c993;margin-left:4px}.brand-icon{display:grid!important;place-items:center!important;line-height:1;flex:0 0 41px;text-align:center}.hero-graphic{position:relative}.hero-panda{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;line-height:1;transform:translateY(-8px);text-align:center}.account-wrap{position:relative}.nav-avatar{width:25px;height:25px;border-radius:50%;object-fit:cover}.account-menu{position:absolute;right:0;top:calc(100% + 10px);z-index:50;width:174px;padding:8px;background:#1b3327;border:1px solid #42634f;border-radius:14px;box-shadow:0 20px 50px #0008}.account-menu a,.account-menu button{display:block;width:100%;font-size:12px;text-align:left;border:0;border-radius:8px;padding:10px;background:none;color:#e1efdf}.account-menu a:hover,.account-menu button:hover{background:#2b4c39}.navbuttons .btn{white-space:nowrap}.navbuttons .btn.primary{max-width:190px}.navbuttons .btn.primary span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profile-panel,.admin-panel{padding:22px}.profile-head{display:flex;align-items:center;gap:16px;padding-bottom:18px;border-bottom:1px solid var(--line);margin-bottom:19px}.profile-head img{width:74px;height:74px;border-radius:22px}.profile-head h3{margin:0 0 7px;font-size:21px}.profile-head p{margin:0;font-size:12px;color:var(--muted)}.profile-fields{display:grid;grid-template-columns:1fr 1fr;gap:17px}.form-card{border-radius:15px;background:#1d382a;border:1px solid #345742;padding:17px}.form-card h3{font-size:15px;margin:0 0 7px}.form-card p{color:var(--muted);font-size:12px;line-height:1.6}.form-line{display:flex;align-items:flex-end;gap:10px;margin:10px 0}.form-line label{min-width:0;flex:1;display:grid;gap:6px;color:#b6d2bf;font-size:12px}.form-line input,.form-line select{min-width:0;width:100%;padding:11px 12px;border:1px solid #40624e;border-radius:10px;color:var(--ink);background:#11261b;font:inherit;font-size:12px}.form-line input:focus,.form-line select:focus{outline:2px solid #69c68c}.form-line button,.form-card button{font-size:12px}.mini-title{margin:21px 0 10px;font-size:14px}.my-recruitment-grid,.admin-recruitments{display:grid;gap:10px}.recruit-line{display:flex;align-items:center;justify-content:space-between;gap:12px;border:1px solid #345742;border-radius:12px;padding:12px;background:#1b3426}.recruit-line strong{font-size:13px;display:block}.recruit-line small{font-size:11px;color:var(--muted)}.recruit-line .btn{font-size:11px;padding:7px 10px}.pill{border-radius:8px;padding:5px 8px;background:#284f36;color:#b3ecc5;font-size:11px}.danger-button{background:#71323a;border-color:#aa5361;color:#ffe4e4}.danger-button:hover{background:#8f3c4a}.section-note{font-size:12px;color:var(--muted);margin:10px 0}.profile-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.field-pair{display:flex;align-items:center;justify-content:space-between;gap:6px}.field-pair input{flex:1}.status-message{font-size:12px;min-height:17px;margin:8px 0;color:#9ee4b7}.admin-section.hidden{display:none!important}
@media(max-width:950px){.profile-fields{grid-template-columns:1fr}.profile-grid{grid-template-columns:1fr 1fr}}@media(max-width:650px){.profile-grid{grid-template-columns:1fr}.profile-head img{width:58px;height:58px}.profile-panel,.admin-panel{padding:14px}.navbuttons .discord-link{display:none}.navbuttons .btn.primary{max-width:156px}.nav{gap:10px}}

.profile-fields{align-items:start}.avatar-fallback{display:grid;place-items:center;width:36px;height:36px;flex:none;border-radius:50%;background:#345b44;font-size:19px}.profile-head .avatar-fallback{width:74px;height:74px;border-radius:22px;font-size:38px}.locked-year{font-size:12px;font-weight:850;white-space:nowrap;color:#b5e6c7;padding:0 3px 12px}.admin-actions{display:flex;gap:6px;flex-wrap:wrap;flex-shrink:0}@media(max-width:650px){.profile-head .avatar-fallback{width:58px;height:58px;font-size:29px}.admin-actions .btn{font-size:10px}}

/* 회원 대시보드는 메뉴별 화면을 분리해 한 번에 필요한 정보만 보여줍니다. */
.dashboard-frame{display:grid;grid-template-columns:210px minmax(0,1fr);gap:25px;align-items:start;padding-bottom:55px}
.dashboard-sidebar{position:sticky;top:12px;padding:13px;background:#162c21;border:1px solid var(--line);border-radius:18px;display:grid;gap:5px}
.sidebar-label{font-size:11px;font-weight:800;letter-spacing:.03em;color:#92ae9e;padding:14px 12px 6px}
.dash-tab{width:100%;border:1px solid transparent;border-radius:11px;background:transparent;color:#c5ddca;text-align:left;font-size:14px;font-weight:750;padding:12px 14px;display:flex;gap:12px;align-items:center}
.dash-tab:hover,.dash-tab.selected{background:#284b37;color:#f6fff8}.dash-tab.selected{border-color:#4a9063}
.dash-main{min-width:0;display:block;margin:0}.dash-view{min-width:0}.dash-view>.section-head:first-child{margin:0 0 18px}
.quick-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:15px;margin-bottom:24px}
.quick-card{display:grid;text-align:left;gap:8px;border:1px solid #365b44;background:linear-gradient(145deg,#203f2e,#172e24);color:#f0fbf1;padding:21px;border-radius:16px}
.quick-card:hover{border-color:#7ec499;background:#2b503a}.quick-card>span{font-size:23px}.quick-card strong{font-size:18px}.quick-card small{font-size:12px;color:#adcbba}
.home-recruits{padding:22px}.home-recruits .explorer-results{grid-template-columns:repeat(2,minmax(0,1fr))}
.explorer-shell{padding:20px;margin-bottom:22px}.explorer-heading{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-bottom:17px}
.explorer-heading h3{font-size:18px;margin:0}.explorer-controls{display:grid;grid-template-columns:minmax(160px,1.6fr) repeat(3,minmax(105px,1fr));gap:10px;margin-bottom:19px}
.explorer-controls label{display:grid;gap:7px;font-size:11px;color:#abcbb6;font-weight:650}
.explorer-controls input,.explorer-controls select,.admin-search{background:#10271b;color:#f2fff5;border:1px solid #436b50;border-radius:10px;padding:10px 11px;min-width:0;width:100%;font-size:12px;min-height:42px}
.explorer-controls select,.explorer-controls input{font-family:inherit}.explorer-controls label:last-child{grid-column:span 1}
.explorer-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-content:start}
.recruit-card{background:#1a3225;border:1px solid #3b5944;border-radius:14px;padding:16px;min-width:0;display:flex;flex-direction:column;gap:12px}
.rc-header{display:flex;align-items:center;justify-content:space-between;gap:10px}.rc-title{font-size:15px;line-height:1.4;overflow-wrap:anywhere}
.recruit-card .recruit-meta{padding:0 0 11px;border-bottom:1px solid #355440;gap:8px 12px;font-size:12px}
.rc-owner{display:flex;align-items:center;gap:11px;font-size:12px}.rc-label{color:#a8c9b3;font-size:11px;flex-shrink:0;min-width:43px}
.rc-roster{display:grid;gap:10px}.rc-roster-line{display:flex;align-items:flex-start;gap:11px}.rc-names{display:flex;flex-wrap:wrap;gap:5px;min-width:0}
.rc-person{border:1px solid #385d46;color:#e0f6e7;background:#284432;font-size:11px;padding:4px 8px;border-radius:7px;overflow-wrap:anywhere}
.rc-empty{font-size:11px;color:#789c86}.rc-link{align-self:flex-start;margin-top:auto!important;font-size:11px!important}
.calendar-fold{padding:0;border:1px solid #355543;border-radius:16px;overflow:hidden}.calendar-fold>summary{list-style:none;cursor:pointer;padding:17px 20px;display:flex;justify-content:space-between;align-items:center;gap:14px;font-size:15px;font-weight:800;background:#1b3728}
.calendar-fold>summary::-webkit-details-marker{display:none}.calendar-fold>summary span{font-size:11px;color:#9ec5ad;font-weight:500}.calendar-fold[open]>.calendar-layout{margin:16px}
.calendar-fold .calendar-layout{grid-template-columns:minmax(0,1fr) minmax(260px,1fr);gap:12px}.calendar-fold .recruit-list{max-height:530px}
.profile-panel{max-width:1020px;padding:22px}.profile-tabs{display:flex;flex-wrap:wrap;gap:8px;border-bottom:1px solid #345543;padding-bottom:14px;margin-bottom:19px}
.profile-tab{padding:11px 14px;border-radius:10px;border:1px solid #365844;color:#b5cfbd;background:#20382a;font-size:13px;font-weight:750}
.profile-tab.selected,.profile-tab:hover{color:white;background:#346b49;border-color:#73bf8b}
.profile-tab-content{max-width:800px}.profile-tab-content .form-card{max-width:800px}.profile-tab-content .profile-grid{grid-template-columns:1fr 1fr;align-items:start}
.profile-tab-content .form-card p{margin:5px 0 14px}.profile-tab-content .form-card h3{font-size:16px}
.profile-tab-content .form-line{align-items:center}.profile-tab-content .form-line label{font-size:12px}
.profile-tab-content .my-recruitment-grid{max-width:800px}.profile-tab-content .recruit-line{min-height:65px}
.admin-panel{padding:20px}.admin-tabs{margin-bottom:22px}.admin-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}
.admin-stat{display:flex;flex-direction:column;gap:8px;border:1px solid #365b45;background:#203b2c;border-radius:13px;padding:20px}.admin-stat span{color:#aaccb6;font-size:12px}.admin-stat strong{font-size:27px;font-variant-numeric:tabular-nums}
.admin-tab-panel .admin-recruitments{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-tab-panel .admin-recruitments .recruit-card .danger-button{align-self:flex-start}
.admin-search{max-width:520px;margin:0 0 16px}.member-search-results{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.member-search-card{background:#1d392a;border:1px solid #385643;border-radius:12px;padding:12px;display:flex;align-items:center;gap:10px;min-width:0}
.member-search-info{min-width:0;flex:1;display:grid;gap:4px}.member-search-info strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:13px}.member-search-info small{color:#9fc1a8;font-size:11px}
.admin-feature-card{display:grid;gap:7px;padding:16px;background:#1d392a;border:1px solid #385643;border-radius:13px;margin:0 0 9px;max-width:650px}
.admin-feature-card strong{font-size:14px}.admin-feature-card span{font-size:12px;color:#aec6b3}.admin-feature-card code{font-family:inherit;font-size:12px;color:#b6efc8}
.admin-tab-panel>.btn.primary{display:inline-flex;margin-top:12px}
@media(max-width:1100px){.dashboard-frame{grid-template-columns:180px minmax(0,1fr);gap:15px}.explorer-controls{grid-template-columns:repeat(3,minmax(0,1fr))}.explorer-controls>.explorer-search{grid-column:span 3}.explorer-results,.admin-tab-panel .admin-recruitments{grid-template-columns:1fr}}
@media(max-width:760px){.dashboard-frame{display:block}.dashboard-sidebar{position:static;display:flex;overflow-x:auto;margin:0 0 20px;gap:5px;padding:8px;scrollbar-width:thin}.sidebar-label{display:none}.dash-tab{width:auto;flex:none;white-space:nowrap;font-size:12px;padding:10px}.dash-tab span{display:inline}.explorer-controls{grid-template-columns:repeat(2,minmax(0,1fr))}.explorer-controls>.explorer-search{grid-column:span 2}.home-recruits .explorer-results,.member-search-results{grid-template-columns:1fr}.calendar-fold .calendar-layout{grid-template-columns:1fr}.quick-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-stats{grid-template-columns:repeat(2,minmax(0,1fr))}.profile-tab-content .profile-grid{grid-template-columns:1fr}.dashboard-sidebar{border-radius:12px}}
@media(max-width:440px){.explorer-controls{grid-template-columns:1fr}.explorer-controls>.explorer-search{grid-column:span 1}.quick-card{padding:15px}.quick-card strong{font-size:14px}.quick-card small{font-size:11px}.profile-panel,.admin-panel,.explorer-shell{padding:13px}.profile-tabs{gap:5px}.profile-tab{font-size:11px;padding:10px 8px}.admin-stats{gap:8px}.admin-stat{padding:12px}.rc-roster-line{gap:7px}.rc-label{min-width:40px}}
