@import"https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@100..900&display=swap";.noto-sans-kr{font-family:Noto Sans KR,sans-serif;font-optical-sizing:auto;font-style:normal}.noto-body-light{font-family:Noto Sans KR,sans-serif;font-weight:300}.noto-body-regular{font-family:Noto Sans KR,sans-serif;font-weight:400}.noto-body-medium{font-family:Noto Sans KR,sans-serif;font-weight:500}.noto-body-bold{font-family:Noto Sans KR,sans-serif;font-weight:700}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;font-family:Noto Sans KR,sans-serif;font-optical-sizing:auto;font-style:normal;font-weight:400}:root{--page-bg: #FAF7F0;--footer-bg: #F5F1E8;--footer-text: #4B4740;--link-text: #6D5B4F;--link-hover: #8C765E;--button-bg: #D9CDBF;--button-text: #FFFFFF;--button-hover-bg: #C0B49A;--button-hover-text: #FFFFFF;--badge-admin-bg: #2a2a2a;--badge-admin-color: #fff;--badge-member-bg: #EDE8E0;--badge-member-color: #5a5248;--badge-student-bg: #E8EDE0;--badge-student-color: #4a6040;--badge-teacher-bg: #FEF3CD;--badge-teacher-color: #856404;--row-admin-bg: #F5F1E8;--border-color: #E8E2D9;--border-light: #F0EBE3;--table-head-bg: #F5F1E8;--table-hover-bg: #FDFAF6}.footer{background-color:var(--footer-bg);color:var(--footer-text);font-family:Noto Sans KR,sans-serif;border-top:1px solid #E8E2D9}.footer-inner{display:flex;justify-content:space-between;align-items:flex-start;gap:48px;max-width:1200px;margin:0 auto;padding:48px 3rem 40px}.footer-left{display:flex;flex-direction:column;gap:10px;max-width:220px}.footer-logo{width:48px;margin-bottom:4px;opacity:.85}.footer-brand{font-size:15px;font-weight:700;color:#2a2a2a;margin:0}.footer-desc{font-size:13px;color:#999;line-height:1.7;margin:0}.footer-links{display:flex;gap:64px}.footer-col{display:flex;flex-direction:column;gap:10px;min-width:120px}.footer-col h4{font-size:12px;font-weight:700;letter-spacing:.1em;color:#aaa;text-transform:uppercase;margin-bottom:4px}.footer-col a{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--link-text);text-decoration:none;font-weight:500;transition:color .15s}.footer-col a:hover{color:var(--link-hover)}.footer-icon{width:14px;height:14px;opacity:.6;flex-shrink:0}.footer-bottom{border-top:1px solid #E8E2D9;padding:16px 3rem}.footer-copyright{max-width:1200px;margin:0 auto 6px;font-size:12px;color:#bbb;text-align:center}.footer-disclaimer{max-width:1200px;margin:0 auto;font-size:11px;color:#ccc;text-align:center;line-height:1.6}@media(max-width:768px){.footer-inner{flex-direction:column;gap:32px;padding:40px 24px 32px}.footer-left{max-width:100%}.footer-links{gap:40px}.footer-bottom{padding:16px 24px}}.btn-primary{background:var(--button-bg);color:var(--button-text);padding:.5rem 1.2rem;border-radius:999px;text-decoration:none;font-weight:600;transition:transform .2s,box-shadow .2s}.btn-primary:hover{transform:scale(1.05)}.navbar{position:sticky;top:0;z-index:1100;background:var(--footer-bg);box-shadow:0 2px 6px #00000014}.navbar-inner{max-width:1200px;height:70px;margin:0 auto;padding:0 2rem;display:flex;align-items:center;justify-content:space-between}.nav-brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--footer-text);font-weight:600;font-size:1.1rem}.nav-brand img{width:40px}.nav-menu{display:flex;align-items:center;gap:2rem}.nav-list{display:flex;align-items:center;gap:2rem;list-style:none}.nav-list a,.nav-list button{background:none;border:none;font:inherit;cursor:pointer;color:var(--footer-text);text-decoration:none;position:relative;padding:.3rem 0}.nav-list a:after,.nav-list button:after{content:"";position:absolute;left:0;bottom:0;width:0;height:2px;background:var(--footer-text);transition:width .25s}.nav-list a:hover:after,.nav-list button:hover:after{width:100%}.hamburger{display:none;flex-direction:column;gap:4px;background:none;border:none;cursor:pointer}.hamburger span{width:24px;height:3px;background:var(--footer-text)}.nav-right{display:flex;align-items:center;gap:10px}.nav-profile{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background:#ede8e0;color:var(--link-text);text-decoration:none;transition:background .15s,color .15s}.nav-profile:hover{background:var(--button-bg);color:#fff}@media(max-width:768px){.hamburger{display:flex;z-index:1200}.nav-menu{position:fixed;top:0;right:0;width:260px;height:100vh;padding:80px 30px;flex-direction:column;align-items:flex-start;gap:2rem;background:var(--footer-bg);transform:translate(100%);transition:transform .3s ease;z-index:1150}.nav-menu.open{transform:translate(0)}.nav-list{flex-direction:column;align-items:flex-start;gap:1.5rem}}.nav-overlay{position:fixed;inset:0;background:#00000059;z-index:1000}.layout{display:flex;flex-direction:column;min-height:100%;background-color:var(--page-bg)}.layout-main{flex:1;display:flex;flex-direction:column}.main-page{width:100%}.pages{height:100vh;display:flex;justify-content:center;align-items:center;padding:0 10%}.pages.home{flex-direction:row;gap:80px}.home-left{flex:0 0 auto;display:flex;align-items:center;justify-content:center}.logo{width:160px;opacity:.9}.home-right{display:flex;flex-direction:column;justify-content:center;gap:12px}.home-eyebrow{font-size:12px;font-weight:600;letter-spacing:.15em;color:var(--link-text);text-transform:uppercase}.home-right h1{font-size:56px;font-weight:700;color:#1a1a1a;line-height:1.1;margin:0}.home-right p{font-size:18px;color:#888;margin:0}.buttons{display:flex;gap:12px;margin-top:8px}.btn-ghost{padding:.5rem 1.2rem;border-radius:999px;border:1.5px solid var(--button-bg);color:var(--link-text);text-decoration:none;font-weight:600;font-size:14px;transition:all .2s}.btn-ghost:hover{background:var(--button-bg);color:#fff}.section-eyebrow{display:block;font-size:11px;font-weight:600;letter-spacing:.15em;color:var(--link-text);margin-bottom:12px}.section-title{font-size:36px;font-weight:700;color:#1a1a1a;margin:0 0 40px;line-height:1.2}.pages.about{background:#fff;border-top:1px solid #F0EBE3;border-bottom:1px solid #F0EBE3}.about-inner{max-width:900px;width:100%}.about-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.about-card{padding:32px 28px;background:var(--page-bg);border:1px solid #E8E2D9;border-radius:10px;display:flex;flex-direction:column;gap:12px;transition:box-shadow .15s,border-color .15s}.about-card:hover{border-color:var(--button-bg);box-shadow:0 4px 20px #0000000f}.about-card__icon{width:28px;height:28px;opacity:.7}.about-card h3{font-size:17px;font-weight:700;color:#1a1a1a;margin:0}.about-card p{font-size:14px;color:#888;line-height:1.7;margin:0}.pages.join{background:var(--page-bg)}.join-inner{max-width:600px;width:100%;text-align:center}.join-desc{font-size:16px;color:#888;line-height:1.8;margin:0 0 36px}.join-actions{display:flex;gap:12px;justify-content:center}@media(max-width:768px){.pages{padding:80px 24px}.pages.home{flex-direction:column;gap:40px;text-align:center;padding:80px 24px}.logo{width:100px}.home-right h1{font-size:36px}.buttons{justify-content:center}.section-title{font-size:28px;margin-bottom:28px}.about-cards{grid-template-columns:1fr;gap:16px}.join-actions{flex-direction:column;align-items:center}}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background-color:var(--page-bg);padding:40px 20px}.login-card{width:100%;max-width:440px;background:#fff;border:1px solid #E8E2D9;border-radius:4px;padding:48px 44px;box-shadow:0 2px 24px #0000000f}.login-card__header{margin-bottom:36px}.login-card__eyebrow{display:block;font-size:11px;font-weight:600;letter-spacing:.15em;color:var(--link-text);margin-bottom:10px}.login-card__title{font-size:28px;font-weight:700;color:#1a1a1a;margin:0}.login-form{display:flex;flex-direction:column;gap:20px}.login-field{display:flex;flex-direction:column;gap:6px}.login-field label{font-size:13px;font-weight:600;color:#4b4740;letter-spacing:.02em}.login-field input{padding:11px 14px;border:1.5px solid #DDD8CF;border-radius:4px;font-size:14px;font-family:Noto Sans KR,sans-serif;background:#fdfcfa;color:#1a1a1a;transition:border-color .15s,box-shadow .15s;outline:none}.login-field input:focus{border-color:var(--link-hover);box-shadow:0 0 0 3px #8c765e1f;background:#fff}.login-remember{display:flex;align-items:center;gap:8px;font-size:13px;color:#4b4740;cursor:pointer}.login-remember input[type=checkbox]{width:15px;height:15px;accent-color:var(--link-hover);cursor:pointer}.login-error{font-size:13px;color:#c0392b;background:#fdf2f2;border:1px solid #f5c6c6;border-radius:4px;padding:10px 14px;margin:0}.login-submit{margin-top:4px;padding:13px;background-color:var(--button-bg);color:#fff;font-size:14px;font-weight:700;font-family:Noto Sans KR,sans-serif;letter-spacing:.04em;border:none;border-radius:4px;cursor:pointer;transition:background-color .15s,transform .1s}.login-submit:hover:not(:disabled){background-color:var(--button-hover-bg)}.login-submit:active:not(:disabled){transform:scale(.99)}.login-submit:disabled{opacity:.6;cursor:not-allowed}.login-footer{margin-top:24px;text-align:center;font-size:13px;color:#888}.login-footer a{color:var(--link-text);font-weight:600;text-decoration:none}.login-footer a:hover{color:var(--link-hover);text-decoration:underline}.login-password-wrap{position:relative;display:flex;align-items:center}.login-password-wrap input{width:100%;padding-right:60px}.login-password-toggle{position:absolute;right:14px;background:none;border:none;font-size:12px;font-weight:600;font-family:Noto Sans KR,sans-serif;color:#aaa;cursor:pointer;padding:0;transition:color .15s}.login-password-toggle:hover{color:var(--link-hover)}.login-joined{font-size:13px;color:#27ae60;background:#f0faf0;border:1px solid #c3e6c3;border-radius:4px;padding:10px 14px;margin-bottom:20px}.recruit-page{max-width:680px;margin:0 auto;padding:80px 24px 120px}.recruit-header{margin-bottom:56px;text-align:center}.recruit-label{display:inline-block;font-size:11px;font-weight:600;letter-spacing:.18em;color:var(--link-text);margin-bottom:16px}.recruit-header h1{font-size:42px;font-weight:700;color:#1a1a1a;margin-bottom:12px;line-height:1.2}.recruit-header p{font-size:16px;color:#888;opacity:1}.recruit-form{display:flex;flex-direction:column;gap:28px}.field-group{display:flex;flex-direction:column;gap:8px}.field-group label{font-size:13px;font-weight:600;color:#4b4740;letter-spacing:.02em}.field-group input,.field-group textarea{padding:11px 14px;border:1.5px solid #DDD8CF;border-radius:4px;font-size:14px;font-family:Noto Sans KR,sans-serif;background:#fdfcfa;color:#1a1a1a;transition:border-color .15s,box-shadow .15s;outline:none;resize:vertical}.field-group input:focus,.field-group textarea:focus{border-color:var(--link-hover);box-shadow:0 0 0 3px #8c765e1f;background:#fff}.optional{font-weight:400;color:#aaa;font-size:12px}.lang-grid{display:flex;flex-wrap:wrap;gap:8px}.lang-chip{padding:7px 16px;border:1.5px solid #DDD8CF;border-radius:100px;font-size:13px;font-family:Noto Sans KR,sans-serif;font-weight:500;background:#fdfcfa;color:#4b4740;cursor:pointer;transition:all .15s}.lang-chip:hover{border-color:var(--link-hover);color:var(--link-hover)}.lang-chip.selected{background:var(--button-bg);border-color:var(--button-bg);color:#fff}.lang-chip.selected:hover{background:var(--button-hover-bg);border-color:var(--button-hover-bg)}.recruit-error{font-size:13px;color:#c0392b;background:#fdf2f2;border:1px solid #f5c6c6;border-radius:4px;padding:10px 14px;margin:0}.recruit-submit{padding:14px;background-color:var(--button-bg);color:#fff;font-size:15px;font-weight:700;font-family:Noto Sans KR,sans-serif;letter-spacing:.04em;border:none;border-radius:4px;cursor:pointer;transition:background-color .15s,transform .1s}.recruit-submit:hover:not(:disabled){background-color:var(--button-hover-bg)}.recruit-submit:active:not(:disabled){transform:scale(.99)}.recruit-submit:disabled{opacity:.6;cursor:not-allowed}.field-hint{font-size:12px;font-weight:500}.field-hint.error{color:#c0392b}.recruit-check-link{display:block;text-align:center;margin-top:12px;font-size:13px;color:var(--link-text);text-decoration:none;font-weight:500;transition:color .15s}.recruit-check-link:hover{color:var(--link-hover);text-decoration:underline}.admin-page{max-width:1100px;margin:0 auto;padding:60px 24px 100px;min-height:70vh}.admin-filters{display:flex;gap:8px;margin-bottom:24px}.filter-btn{padding:7px 18px;border:1.5px solid #DDD8CF;border-radius:100px;font-size:13px;font-family:Noto Sans KR,sans-serif;font-weight:500;background:#fdfcfa;color:#4b4740;cursor:pointer;transition:all .15s}.admin-table-wrap{overflow-x:auto;border:1px solid #E8E2D9;border-radius:6px}.admin-table thead{background:#f5f1e8}.admin-table td{padding:14px 16px;border-top:1px solid #F0EBE3;color:#2a2a2a;vertical-align:middle;white-space:nowrap}.admin-table tbody tr:hover{background:#fdfaf6}.admin-table tbody tr.row-accepted{background:#f6fbf6}.admin-table tbody tr.row-rejected{background:#fdf6f6;opacity:.7}.status-badge{display:inline-block;padding:3px 10px;border-radius:100px;font-size:12px;font-weight:600;white-space:nowrap}.status-actions{display:flex;flex-direction:row;gap:6px;align-items:center}.motivation-btn{padding:4px 12px;border-radius:4px;font-size:12px;font-weight:600;font-family:Noto Sans KR,sans-serif;border:1.5px solid #DDD8CF;background:transparent;color:#4b4740;cursor:pointer;transition:all .15s;white-space:nowrap}.motivation-btn:hover{border-color:var(--link-hover);color:var(--link-hover)}.motivation-btn.open{background:var(--button-bg);border-color:var(--button-bg);color:#fff}.motivation-row td{background:#fdfaf6;border-top:none;padding:0 16px 16px;white-space:normal}.motivation-content{border-left:3px solid #DDD8CF;padding:12px 16px;background:#fff;border-radius:0 6px 6px 0}.motivation-label{display:block;font-size:11px;font-weight:600;letter-spacing:.06em;color:#6b6460;text-transform:uppercase;margin-bottom:8px}.motivation-content p{margin:0;font-size:14px;line-height:1.75;color:#2a2a2a;white-space:pre-wrap}.action-btn.cancel{border-color:#999;color:#999}.action-btn.cancel:hover{background:#999;color:#fff}@media(max-width:768px){.admin-page{padding:32px 16px 80px}.admin-header h1{font-size:22px}.admin-filters{flex-wrap:wrap;gap:6px}.filter-btn{padding:6px 14px;font-size:12px}.admin-table-wrap{border:none;border-radius:0;overflow:visible}.admin-table thead{display:none}.admin-table,.admin-table tbody{display:block}.admin-table tbody tr{display:flex;flex-direction:column;gap:10px;background:#fff;border:1px solid #E8E2D9;border-radius:8px;padding:16px;margin-bottom:12px}.admin-table tbody tr:hover{background:#fff}.admin-table tbody tr.row-accepted{background:#f6fbf6;border-color:#a8d5a8}.admin-table tbody tr.row-rejected{background:#fdf6f6;border-color:#f5c6c6;opacity:.85}.admin-table td{display:flex;align-items:flex-start;gap:8px;padding:0;border:none;font-size:13px;white-space:normal}.admin-table td:before{content:attr(data-label);font-size:11px;font-weight:600;color:#aaa;letter-spacing:.05em;min-width:72px;flex-shrink:0;padding-top:1px}.admin-table td:empty{display:none}.status-actions{flex-wrap:wrap}.action-btn{padding:5px 10px;font-size:12px}.motivation-btn{padding:4px 10px;font-size:12px}.motivation-row{display:block}.motivation-row td{display:block;padding:0 0 4px;margin-top:-8px}.motivation-row td:before{display:none}.lang-tags span{font-size:11px}.status-badge{font-size:12px}.empty{text-align:left;padding:16px!important}}.notfound-page{display:flex;align-items:center;justify-content:center;min-height:70vh;padding:80px 24px;background-color:var(--page-bg)}.notfound-card{text-align:center;display:flex;flex-direction:column;align-items:center;gap:12px}.notfound-code{font-size:96px;font-weight:800;color:#e8e2d9;line-height:1;letter-spacing:-4px}.notfound-title{font-size:24px;font-weight:700;color:#1a1a1a;margin:0}.notfound-desc{font-size:14px;color:#aaa;line-height:1.7;margin:0}.notfound-btn{margin-top:12px;padding:12px 28px;background:var(--button-bg);color:#fff;font-size:14px;font-weight:700;font-family:Noto Sans KR,sans-serif;border:none;border-radius:4px;cursor:pointer;transition:background-color .15s}.notfound-btn:hover{background:var(--button-hover-bg)}.join-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background-color:var(--page-bg);padding:40px 20px}.join-card{width:100%;max-width:440px;background:#fff;border:1px solid #E8E2D9;border-radius:4px;padding:48px 44px;box-shadow:0 2px 24px #0000000f}.join-card__header{margin-bottom:36px}.join-card__eyebrow{display:block;font-size:11px;font-weight:600;letter-spacing:.15em;color:var(--link-text);margin-bottom:10px}.join-card__title{font-size:28px;font-weight:700;color:#1a1a1a;margin:0}.join-form{display:flex;flex-direction:column;gap:20px}.join-field{display:flex;flex-direction:column;gap:6px}.join-field label{font-size:13px;font-weight:600;color:#4b4740;letter-spacing:.02em}.join-field input{padding:11px 14px;border:1.5px solid #DDD8CF;border-radius:4px;font-size:14px;font-family:Noto Sans KR,sans-serif;background:#fdfcfa;color:#1a1a1a;transition:border-color .15s,box-shadow .15s;outline:none}.join-field input:focus{border-color:var(--link-hover);box-shadow:0 0 0 3px #8c765e1f;background:#fff}.join-field__hint{font-size:12px;font-weight:500}.join-field__hint.error{color:#c0392b}.join-field__hint.success{color:#27ae60}.join-error{font-size:13px;color:#c0392b;background:#fdf2f2;border:1px solid #f5c6c6;border-radius:4px;padding:10px 14px;margin:0}.join-submit{margin-top:4px;padding:13px;background-color:var(--button-bg);color:#fff;font-size:14px;font-weight:700;font-family:Noto Sans KR,sans-serif;letter-spacing:.04em;border:none;border-radius:4px;cursor:pointer;transition:background-color .15s,transform .1s}.join-submit:hover:not(:disabled){background-color:var(--button-hover-bg)}.join-submit:active:not(:disabled){transform:scale(.99)}.join-submit:disabled{opacity:.6;cursor:not-allowed}.join-footer{margin-top:24px;text-align:center;font-size:13px;color:#888}.join-footer a{color:var(--link-text);font-weight:600;text-decoration:none}.join-footer a:hover{color:var(--link-hover);text-decoration:underline}.join-divider{border:none;border-top:1px solid #E8E2D9;margin:4px 0}.profile-page{min-height:80vh;display:flex;align-items:flex-start;justify-content:center;padding:80px 24px 120px;background-color:var(--page-bg)}.profile-loading,.profile-error{display:flex;align-items:center;justify-content:center;height:40vh;font-size:14px;color:#aaa}.profile-error{color:#c0392b}.profile-card{width:100%;max-width:520px;background:#fff;border:1px solid #E8E2D9;border-radius:8px;padding:40px 44px;box-shadow:0 2px 24px #0000000d}.profile-header{display:flex;align-items:center;gap:24px;margin-bottom:28px}.profile-avatar{flex-shrink:0;width:80px;height:80px;border-radius:50%;background:var(--button-bg);display:flex;align-items:center;justify-content:center;overflow:hidden;border:2px solid #E8E2D9}.profile-avatar span{font-size:32px;font-weight:700;color:#fff;line-height:1}.profile-avatar img{width:100%;height:100%;object-fit:cover}.profile-header-info{display:flex;flex-direction:column;gap:4px;min-width:0}.profile-name-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.profile-name{font-size:22px;font-weight:700;color:#1a1a1a;margin:0;line-height:1.2}.profile-role-badge{display:inline-block;padding:2px 10px;background:var(--badge-member-bg);border-radius:100px;font-size:11px;font-weight:600;color:var(--badge-member-color);letter-spacing:.03em;white-space:nowrap}.profile-role-badge.admin{background:var(--badge-admin-bg);color:var(--badge-admin-color)}.profile-username{font-size:13px;color:#bbb;margin:0}.profile-github-link{display:inline-flex;align-items:center;gap:5px;font-size:13px;color:var(--link-text);text-decoration:none;font-weight:500;margin-top:2px;transition:color .15s;width:fit-content}.profile-github-link:hover{color:var(--link-hover)}.profile-github-link img{flex-shrink:0;opacity:.7}.profile-divider{border:none;border-top:1px solid #F0EBE3;margin-bottom:24px}.profile-details{display:flex;flex-direction:column;gap:12px;margin:0 0 32px}.profile-detail-row{display:flex;justify-content:space-between;align-items:center}.profile-detail-row dt{font-size:13px;font-weight:600;color:#aaa}.profile-detail-row dd{font-size:14px;color:#2a2a2a;margin:0;font-weight:500}.profile-edit-btn{display:block;width:100%;padding:13px;background-color:var(--button-bg);color:#fff;font-size:14px;font-weight:700;font-family:Noto Sans KR,sans-serif;letter-spacing:.04em;border:none;border-radius:4px;text-align:center;cursor:pointer;transition:background-color .15s;box-sizing:border-box}.profile-edit-btn:hover{background-color:var(--button-hover-bg)}.edit-page{min-height:80vh;display:flex;align-items:flex-start;justify-content:center;padding:80px 24px 120px;background-color:var(--page-bg)}.edit-card{width:100%;max-width:480px;background:#fff;border:1px solid #E8E2D9;border-radius:6px;padding:48px 44px;box-shadow:0 2px 24px #0000000d}.edit-card__header{margin-bottom:36px}.edit-card__eyebrow{display:block;font-size:11px;font-weight:600;letter-spacing:.15em;color:var(--link-text);margin-bottom:10px}.edit-card__title{font-size:28px;font-weight:700;color:#1a1a1a;margin:0}.edit-form{display:flex;flex-direction:column;gap:20px}.edit-field{display:flex;flex-direction:column;gap:6px}.edit-field label{font-size:13px;font-weight:600;color:#4b4740;letter-spacing:.02em}.edit-field input[type=text]{padding:11px 14px;border:1.5px solid #DDD8CF;border-radius:4px;font-size:14px;font-family:Noto Sans KR,sans-serif;background:#fdfcfa;color:#1a1a1a;transition:border-color .15s,box-shadow .15s;outline:none;width:100%}.edit-field input[type=text]:focus{border-color:var(--link-hover);box-shadow:0 0 0 3px #8c765e1f;background:#fff}.edit-optional{font-weight:400;color:#aaa;font-size:12px}.edit-input-prefix{display:flex;align-items:center;border:1.5px solid #DDD8CF;border-radius:4px;background:#fdfcfa;overflow:hidden;transition:border-color .15s,box-shadow .15s}.edit-input-prefix:focus-within{border-color:var(--link-hover);box-shadow:0 0 0 3px #8c765e1f;background:#fff}.edit-input-prefix span{padding:11px 10px 11px 14px;font-size:14px;color:#aaa;white-space:nowrap;-webkit-user-select:none;user-select:none}.edit-input-prefix input{flex:1;padding:11px 14px 11px 0;border:none;background:transparent;font-size:14px;font-family:Noto Sans KR,sans-serif;color:#1a1a1a;outline:none}.edit-field input[type=password]{padding:11px 14px;border:1.5px solid #DDD8CF;border-radius:4px;font-size:14px;font-family:Noto Sans KR,sans-serif;background:#fdfcfa;color:#1a1a1a;transition:border-color .15s,box-shadow .15s;outline:none}.edit-field input[type=password]:focus{border-color:var(--link-hover);box-shadow:0 0 0 3px #8c765e1f;background:#fff}.edit-hint{font-size:12px;font-weight:500}.edit-hint.error{color:#c0392b}.edit-hint.success{color:#27ae60}.edit-divider{border:none;border-top:1px solid #F0EBE3;margin:4px 0}.edit-error{font-size:13px;color:#c0392b;background:#fdf2f2;border:1px solid #f5c6c6;border-radius:4px;padding:10px 14px;margin:0}.edit-actions{display:flex;gap:10px;margin-top:4px}.edit-cancel{flex:1;padding:13px;background:transparent;color:#888;font-size:14px;font-weight:600;font-family:Noto Sans KR,sans-serif;border:1.5px solid #DDD8CF;border-radius:4px;cursor:pointer;transition:all .15s}.edit-cancel:hover{border-color:#bbb;color:#555}.edit-submit{flex:2;padding:13px;background-color:var(--button-bg);color:#fff;font-size:14px;font-weight:700;font-family:Noto Sans KR,sans-serif;letter-spacing:.04em;border:none;border-radius:4px;cursor:pointer;transition:background-color .15s}.edit-submit:hover:not(:disabled){background-color:var(--button-hover-bg)}.edit-submit:disabled{opacity:.6;cursor:not-allowed}.check-page{display:flex;align-items:center;justify-content:center;padding:80px 24px 120px;background-color:var(--page-bg);min-height:70vh}.check-card{width:100%;max-width:480px;background:#fff;border:1px solid #E8E2D9;border-radius:8px;padding:48px 44px;box-shadow:0 2px 24px #0000000d}.check-header{margin-bottom:32px}.check-eyebrow{display:block;font-size:11px;font-weight:600;letter-spacing:.15em;color:var(--link-text);margin-bottom:10px}.check-title{font-size:28px;font-weight:700;color:#1a1a1a;margin:0 0 8px}.check-desc{font-size:14px;color:#aaa;margin:0}.check-form{display:flex;flex-direction:column;gap:10px}.check-field{display:flex;gap:8px}.check-field input{flex:1;padding:11px 14px;border:1.5px solid #DDD8CF;border-radius:4px;font-size:15px;font-family:Noto Sans KR,sans-serif;background:#fdfcfa;color:#1a1a1a;outline:none;transition:border-color .15s,box-shadow .15s;letter-spacing:.1em;min-width:0}.check-field input:focus{border-color:var(--link-hover);box-shadow:0 0 0 3px #8c765e1f;background:#fff}.check-btn{padding:11px 20px;background:var(--button-bg);color:#fff;font-size:14px;font-weight:700;font-family:Noto Sans KR,sans-serif;border:none;border-radius:4px;cursor:pointer;transition:background-color .15s;white-space:nowrap;flex-shrink:0}.check-btn:hover:not(:disabled){background:var(--button-hover-bg)}.check-btn:disabled{opacity:.5;cursor:not-allowed}.check-error{font-size:13px;color:#c0392b;background:#fdf2f2;border:1px solid #f5c6c6;border-radius:4px;padding:10px 14px;margin:0}.check-result{margin-top:28px;padding:20px;border-radius:6px;border:1.5px solid #E8E2D9;background:#fdfcfa}.check-result.accepted{border-color:#a8d5a8;background:#f6fbf6}.check-result.rejected{border-color:#f5c6c6;background:#fdf6f6}.check-result.pending{border-color:#fde8a0;background:#fffdf0}.check-result__top{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;gap:8px}.check-result__name{font-size:16px;font-weight:700;color:#1a1a1a;word-break:keep-all}.check-result__badge{display:inline-block;padding:3px 12px;border-radius:100px;font-size:12px;font-weight:700;flex-shrink:0}.check-result__badge.pending{background:#fef3cd;color:#856404}.check-result__badge.accepted{background:#d1f2d1;color:#1a6b1a}.check-result__badge.rejected{background:#f8d7da;color:#842029}.check-result__desc{font-size:13px;color:#666;margin:0 0 12px;word-break:keep-all;line-height:1.6}.check-result__info{display:flex;flex-direction:column;gap:8px}.check-result__langs{display:flex;flex-wrap:wrap;gap:4px}.check-result__langs span{padding:2px 8px;background:#ede8e0;border-radius:100px;font-size:11px;font-weight:500;color:#5a5248}.check-invite{margin-top:16px;padding-top:16px;border-top:1px solid #d1ecd1;display:flex;flex-direction:column;gap:8px}.check-invite__label{font-size:12px;font-weight:600;color:#aaa;letter-spacing:.05em;margin:0;text-transform:uppercase}.check-invite__code-wrap{display:flex;align-items:center;gap:10px}.check-invite__code{flex:1;font-size:18px;font-weight:700;letter-spacing:.15em;color:#1a6b1a;background:#e8f7e8;padding:12px 16px;border-radius:4px;text-align:center;font-family:monospace;word-break:break-all;min-width:0}.check-invite__copy{padding:8px 14px;background:transparent;border:1.5px solid #2d8a2d;border-radius:4px;color:#2d8a2d;font-size:13px;font-weight:600;font-family:Noto Sans KR,sans-serif;cursor:pointer;transition:all .15s;white-space:nowrap;flex-shrink:0}.check-invite__copy:hover{background:#2d8a2d;color:#fff}.check-invite__notice{font-size:12px;color:#aaa;margin:0;word-break:keep-all;line-height:1.6}.check-result__name-row{display:flex;align-items:center;gap:6px}.check-result__dot{font-size:14px;color:#ccc;line-height:1}.check-result__sid{font-size:14px;font-weight:500;color:#aaa}@media(max-width:480px){.check-page{padding:40px 16px 80px}.check-card{padding:32px 24px;border-radius:8px}.check-title{font-size:24px}.check-invite__code{font-size:15px;letter-spacing:.08em;padding:10px 12px}}.detail-page{max-width:680px;margin:0 auto;padding:60px 24px 100px}.detail-loading{display:flex;align-items:center;justify-content:center;height:40vh;font-size:14px;color:#aaa}.detail-back{background:none;border:none;font-size:13px;font-family:Noto Sans KR,sans-serif;color:#6b6460;cursor:pointer;padding:0;margin-bottom:28px;display:block}.detail-back:hover{color:var(--link-hover)}.detail-card{border:1px solid #E8E2D9;border-radius:10px;padding:32px;background:#fff}.detail-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:28px}.detail-name-wrap{display:flex;align-items:baseline;gap:12px}.detail-name{font-size:24px;font-weight:700;color:#1a1a1a;margin:0}.detail-student-id{font-size:13px;color:#aaa}.status-badge{display:inline-block;padding:4px 12px;border-radius:100px;font-size:12px;font-weight:600}.status-badge.pending{background:#fef3cd;color:#856404}.status-badge.accepted{background:#d1f2d1;color:#1a6b1a}.status-badge.rejected{background:#f8d7da;color:#842029}.detail-info{display:flex;flex-direction:column;gap:14px;padding-bottom:24px;border-bottom:1px solid #F0EBE3;margin-bottom:24px}.detail-row{display:flex;align-items:center;gap:16px}.detail-label{font-size:12px;font-weight:600;letter-spacing:.05em;color:#6b6460;width:56px;flex-shrink:0}.detail-empty{color:#bbb;font-size:14px}.detail-info a{color:var(--link-text);font-size:14px;text-decoration:none;font-weight:500}.detail-info a:hover{color:var(--link-hover);text-decoration:underline}.lang-tags{display:flex;flex-wrap:wrap;gap:4px}.lang-tags span{padding:2px 8px;background:#ede8e0;border-radius:100px;font-size:11px;font-weight:500;color:#5a5248}.detail-section{padding-bottom:24px;border-bottom:1px solid #F0EBE3;margin-bottom:24px}.detail-section-label{display:block;font-size:11px;font-weight:600;letter-spacing:.06em;color:#6b6460;text-transform:uppercase;margin-bottom:10px}.detail-motivation{margin:0;font-size:14px;line-height:1.85;color:#2a2a2a;white-space:pre-wrap}.detail-actions{display:flex;flex-direction:column;gap:10px}.status-actions{display:flex;flex-direction:row;gap:6px}.action-btn{padding:7px 16px;border-radius:4px;font-size:13px;font-weight:600;font-family:Noto Sans KR,sans-serif;border:1.5px solid;cursor:pointer;transition:all .15s;background:transparent}.action-btn.accepted{border-color:#2d8a2d;color:#2d8a2d}.action-btn.accepted:hover{background:#2d8a2d;color:#fff}.action-btn.rejected{border-color:#c0392b;color:#c0392b}.action-btn.rejected:hover{background:#c0392b;color:#fff}.action-btn.pending{border-color:#999;color:#999}.action-btn.pending:hover{background:#999;color:#fff}.admin-page{max-width:1100px;margin:0 auto;padding:60px 24px 100px}.admin-loading{display:flex;align-items:center;justify-content:center;height:40vh;font-size:14px;color:#aaa}.admin-header{display:flex;align-items:baseline;gap:16px;margin-bottom:32px}.admin-header h1{font-size:28px;font-weight:700;color:#1a1a1a}.admin-count{font-size:13px;color:#aaa;font-weight:500}.admin-filters{display:flex;align-items:center;gap:8px;margin-bottom:24px;flex-wrap:wrap}.filter-divider{width:1px;height:20px;background:var(--border-color);margin:0 4px}.filter-btn{padding:7px 18px;border:1.5px solid var(--border-color);border-radius:100px;font-size:13px;font-family:Noto Sans KR,sans-serif;font-weight:500;background:#fdfcfa;color:#4b4740;cursor:pointer;transition:all .15s}.filter-btn:hover{border-color:var(--link-hover);color:var(--link-hover)}.filter-btn.active{background:var(--button-bg);border-color:var(--button-bg);color:#fff}.admin-table-wrap{overflow-x:auto;border:1px solid var(--border-color);border-radius:6px}.admin-table{width:100%;border-collapse:collapse;font-size:14px}.admin-table thead{background:var(--table-head-bg)}.admin-table th{padding:12px 16px;text-align:left;font-size:12px;font-weight:600;letter-spacing:.05em;color:#6b6460;white-space:nowrap}.admin-table td{padding:14px 16px;border-top:1px solid var(--border-light);color:#2a2a2a;vertical-align:middle;white-space:nowrap}.admin-table tbody tr{transition:background .1s}.admin-table tbody tr:hover{background:var(--table-hover-bg)}.admin-table tbody tr.row-admin{background:var(--row-admin-bg)}.cell-username{color:#888;font-size:13px}.cell-date{color:#aaa;font-size:12px}.role-badge{display:inline-block;padding:3px 10px;border-radius:100px;font-size:12px;font-weight:600;white-space:nowrap}.role-badge.admin{background:var(--badge-admin-bg);color:var(--badge-admin-color)}.role-badge.member{background:var(--badge-member-bg);color:var(--badge-member-color)}.type-badge{display:inline-block;padding:3px 10px;border-radius:100px;font-size:12px;font-weight:600;white-space:nowrap}.type-badge.student{background:var(--badge-student-bg);color:var(--badge-student-color)}.type-badge.teacher{background:var(--badge-teacher-bg);color:var(--badge-teacher-color)}.admin-table td a{color:var(--link-text);text-decoration:none;font-weight:500}.admin-table td a:hover{color:var(--link-hover);text-decoration:underline}.member-actions{display:flex;gap:6px}.action-btn{padding:5px 12px;border-radius:4px;font-size:12px;font-weight:600;font-family:Noto Sans KR,sans-serif;border:1.5px solid;cursor:pointer;transition:all .15s;background:transparent;white-space:nowrap}.action-btn.edit{border-color:var(--link-hover);color:var(--link-hover)}.action-btn.edit:hover{background:var(--link-hover);color:#fff}.action-btn.delete{border-color:#c0392b;color:#c0392b}.action-btn.delete:hover{background:#c0392b;color:#fff}.action-btn.save{border-color:var(--link-text);color:var(--link-text)}.action-btn.save:hover{background:var(--link-text);color:#fff}.action-btn.cancel{border-color:var(--border-color);color:#999}.action-btn.cancel:hover{background:var(--border-color);color:#4b4740}.edit-row td{background:var(--page-bg);border-top:none;padding:0 16px 16px;white-space:normal}.edit-content{display:flex;align-items:center;gap:24px;padding:16px;background:#fff;border-radius:6px;border-left:3px solid var(--button-bg);flex-wrap:wrap}.edit-field{display:flex;align-items:center;gap:10px}.edit-label{font-size:11px;font-weight:600;letter-spacing:.06em;color:#6b6460;text-transform:uppercase;white-space:nowrap}.edit-options{display:flex;gap:6px}.option-btn{padding:4px 12px;border-radius:4px;font-size:12px;font-weight:600;font-family:Noto Sans KR,sans-serif;border:1.5px solid var(--border-color);background:transparent;color:#4b4740;cursor:pointer;transition:all .15s}.option-btn:hover{border-color:var(--link-hover);color:var(--link-hover)}.option-btn.active{background:var(--button-bg);border-color:var(--button-bg);color:#fff}.edit-actions{display:flex;gap:6px;margin-left:auto}.empty{text-align:center;padding:48px!important;color:#bbb;font-size:14px}.modal-overlay{position:fixed;inset:0;background:#00000059;display:flex;align-items:center;justify-content:center;z-index:100}.modal{background:#fff;border-radius:10px;padding:32px;width:360px;max-width:calc(100vw - 48px);box-shadow:0 8px 32px #0000001f}.modal-text{font-size:14px;line-height:1.75;color:#2a2a2a;margin:0 0 24px}.modal-actions{display:flex;justify-content:flex-end;gap:8px}@media(max-width:768px){.admin-page{padding:32px 16px 80px}.admin-header h1{font-size:22px}.admin-table th,.admin-table td{padding:10px 12px;font-size:12px}.admin-table th{font-size:11px}.action-btn{padding:4px 8px;font-size:11px}.edit-content{gap:16px}}.members-page{max-width:900px;margin:0 auto;padding:60px 24px 100px}.members-loading{display:flex;align-items:center;justify-content:center;height:40vh;font-size:14px;color:#aaa}.members-header{margin-bottom:56px}.members-eyebrow{display:block;font-size:11px;font-weight:600;letter-spacing:.15em;color:var(--link-text);margin-bottom:10px}.members-title{font-size:36px;font-weight:700;color:#1a1a1a;margin:0 0 10px}.members-desc{font-size:14px;color:#aaa;margin:0}.members-section{margin-bottom:48px}.members-section-title{font-size:13px;font-weight:600;letter-spacing:.08em;color:#6b6460;text-transform:uppercase;margin-bottom:16px;padding-bottom:10px;border-bottom:1px solid var(--border-light, #F0EBE3)}.members-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}.member-card{display:flex;align-items:center;gap:16px;padding:18px 20px;background:#fff;border:1px solid var(--border-color, #E8E2D9);border-radius:8px;transition:box-shadow .15s,border-color .15s}.member-card:hover{border-color:var(--button-bg);box-shadow:0 2px 12px #0000000f}.member-avatar{flex-shrink:0;width:44px;height:44px;border-radius:50%;background:var(--button-bg);display:flex;align-items:center;justify-content:center}.member-avatar span{font-size:18px;font-weight:700;color:#fff;line-height:1}.member-info{display:flex;flex-direction:column;gap:4px;min-width:0}.member-name-row{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.member-name{font-size:15px;font-weight:700;color:#1a1a1a}.member-type-badge{display:inline-block;padding:2px 8px;border-radius:100px;font-size:11px;font-weight:600;white-space:nowrap}.member-type-badge.student{background:var(--badge-student-bg, #E8EDE0);color:var(--badge-student-color, #4a6040)}.member-type-badge.teacher{background:var(--badge-teacher-bg, #FEF3CD);color:var(--badge-teacher-color, #856404)}.member-student-id{font-size:12px;color:#aaa;font-weight:500}.member-github{font-size:12px;color:var(--link-text);text-decoration:none;font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.member-github:hover{color:var(--link-hover);text-decoration:underline}@media(max-width:480px){.members-page{padding:40px 16px 80px}.members-title{font-size:28px}.members-grid{grid-template-columns:1fr}}
