.app-header{position:fixed;top:0;left:0;right:0;z-index:100;height:var(--header-height);background:#0a0a0fd9;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-bottom:1px solid var(--border)}.header-inner{max-width:480px;margin:0 auto;height:100%;display:flex;align-items:center;justify-content:space-between;padding:0 16px}.header-brand{display:flex;align-items:center;gap:8px}.brand-icon{font-size:22px}.brand-title{font-size:22px;background:var(--gold-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.header-user{display:flex;align-items:center;gap:8px}.header-avatar{width:32px;height:32px;border-radius:50%;object-fit:cover;border:2px solid var(--border-gold)}.header-avatar-fallback{display:flex;align-items:center;justify-content:center;background:var(--bg-card);color:var(--gold);font-size:14px;font-weight:600}.bottom-nav{position:fixed;bottom:0;left:0;right:0;z-index:100;background:#0a0a0feb;backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);border-top:1px solid var(--border);padding-bottom:var(--safe-bottom)}.nav-inner{max-width:480px;margin:0 auto;display:flex;height:var(--nav-height)}.nav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;text-decoration:none;color:var(--text-dim);transition:all var(--transition-fast);position:relative}.nav-item.active{color:var(--gold)}.nav-item.active:before{content:"";position:absolute;top:0;left:50%;transform:translate(-50%);width:24px;height:2px;background:var(--gold);border-radius:0 0 2px 2px}.nav-icon{font-size:20px;line-height:1}.nav-label{font-size:10px;font-weight:500;letter-spacing:.02em}.login-screen{min-height:100vh;min-height:100dvh;display:flex;align-items:center;justify-content:center;background:var(--bg-primary);position:relative;overflow:hidden}.login-bg-glow{position:absolute;top:20%;left:50%;transform:translate(-50%);width:300px;height:300px;background:radial-gradient(circle,rgba(212,168,67,.08) 0%,transparent 70%);pointer-events:none}.login-content{text-align:center;padding:32px 24px;width:100%;max-width:360px;position:relative;z-index:1}.login-logo{margin-bottom:16px}.login-clock-icon{font-size:64px;display:inline-block;animation:pulse 3s ease-in-out infinite;filter:drop-shadow(0 0 20px rgba(212,168,67,.3))}.login-title{font-size:48px;background:var(--gold-gradient);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;margin-bottom:8px;line-height:1.1}.login-subtitle{color:var(--text-secondary);font-size:14px;margin-bottom:40px}.login-divider{display:flex;align-items:center;gap:12px;margin-bottom:24px}.divider-line{flex:1;height:1px;background:var(--border)}.divider-text{font-size:12px;color:var(--text-dim);white-space:nowrap}.login-kakao-btn{width:100%;padding:14px 24px;background:#fee500;color:#3c1e1e;border-radius:var(--radius-sm);font-size:15px;font-weight:600;display:flex;align-items:center;justify-content:center;gap:10px;transition:all var(--transition-fast)}.login-kakao-btn:hover{background:#f5dc00;transform:translateY(-1px);box-shadow:0 4px 16px #fee50033}.login-kakao-btn:active{transform:translateY(0)}.kakao-icon{flex-shrink:0}.login-footer{margin-top:48px;font-size:11px;color:var(--text-dim)}.register-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;background:#000000d9;display:flex;align-items:center;justify-content:center;padding:24px}.register-modal{background:var(--bg-secondary);border-radius:var(--radius-lg);padding:32px 24px;width:100%;max-width:360px;border:1px solid var(--border-gold);box-shadow:var(--shadow-gold)}.register-header{text-align:center;margin-bottom:24px}.register-icon{font-size:48px;display:block;margin-bottom:12px}.register-header h2{font-size:20px;font-weight:600;margin-bottom:6px}.register-header p{font-size:14px;color:var(--text-secondary)}.position-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:24px}.position-chip{padding:10px 8px;border-radius:var(--radius-sm);background:var(--bg-card);border:1px solid var(--border);font-size:13px;font-weight:500;color:var(--text-secondary);transition:all var(--transition-fast)}.position-chip:hover{border-color:var(--border-gold)}.position-chip.selected{background:var(--gold-glow);border-color:var(--gold);color:var(--gold-light)}.mini-calendar{padding:12px}.cal-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.cal-title{font-size:15px;font-weight:600}.cal-nav{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);color:var(--text-secondary);font-size:18px;transition:background var(--transition-fast)}.cal-nav:hover{background:var(--bg-card-hover)}.cal-days-header{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:4px}.cal-day-label{text-align:center;font-size:11px;font-weight:500;color:var(--text-dim);padding:4px 0}.cal-day-label.sunday{color:#e74c3c}.cal-day-label.saturday{color:#3498db}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.cal-cell{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;border-radius:var(--radius-sm);position:relative;transition:all var(--transition-fast);gap:2px}.cal-cell.empty{pointer-events:none}.cal-cell:hover:not(.empty){background:var(--bg-card-hover)}.cal-cell.selected{background:var(--gold-glow);border:1px solid var(--gold)}.cal-cell.today .cal-date{color:var(--gold);font-weight:700}.cal-date{font-size:13px;line-height:1}.cal-dot{width:4px;height:4px;border-radius:50%;background:var(--gold)}.schedule-card{display:flex;text-align:left;width:100%;overflow:hidden;padding:0}.schedule-card.past{opacity:.5}.schedule-card.cancelled{opacity:.4}.sc-type-bar{width:4px;flex-shrink:0;border-radius:4px 0 0 4px}.sc-content{flex:1;padding:14px 16px;display:flex;flex-direction:column;gap:6px}.sc-top{display:flex;align-items:center;justify-content:space-between}.sc-type-badge{font-size:12px;font-weight:600}.sc-time{font-size:13px;font-weight:500;color:var(--text-secondary);font-family:JetBrains Mono,monospace}.sc-title{font-size:15px;font-weight:600}.sc-meta{display:flex;gap:12px;font-size:12px;color:var(--text-secondary)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:200;background:#000000b3;display:flex;align-items:flex-end;justify-content:center}.modal-content{background:var(--bg-secondary);border-top-left-radius:var(--radius-lg);border-top-right-radius:var(--radius-lg);width:100%;max-width:480px;max-height:85vh;overflow-y:auto;border:1px solid var(--border);border-bottom:none}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:16px 20px;border-bottom:1px solid var(--border);position:sticky;top:0;background:var(--bg-secondary);z-index:1}.modal-title{font-size:16px;font-weight:600}.modal-close{width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);color:var(--text-secondary);font-size:16px;transition:background var(--transition-fast)}.modal-close:hover{background:var(--bg-card)}.modal-body{padding:20px}.rsvp-group{display:flex;gap:8px}.rsvp-btn{flex:1;display:flex;flex-direction:column;align-items:center;gap:4px;padding:12px 8px;border-radius:var(--radius-sm);background:var(--bg-card);border:1px solid var(--border);font-size:12px;color:var(--text-secondary);transition:all var(--transition-fast)}.rsvp-btn:hover{border-color:var(--rsvp-color)}.rsvp-btn.active{background:color-mix(in srgb,var(--rsvp-color) 12%,transparent);border-color:var(--rsvp-color);color:var(--rsvp-color);font-weight:600}.rsvp-btn span:first-child{font-size:20px}.schedule-view{display:flex;flex-direction:column;gap:16px}.schedule-header-row{display:flex;align-items:center;justify-content:space-between}.page-title{font-size:20px;font-weight:700}.schedule-list{display:flex;flex-direction:column;gap:10px}.music-item{overflow:hidden}.mi-main{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.mi-info{flex:1;min-width:0}.mi-title{font-size:15px;font-weight:600;margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mi-artist{font-size:13px;color:var(--text-secondary);margin-bottom:6px}.mi-meta{display:flex;gap:8px;align-items:center}.mi-bpm{font-size:11px;color:var(--text-dim)}.mi-actions{display:flex;gap:6px;flex-shrink:0}.mi-play-btn{width:36px;height:36px;border-radius:var(--radius-full);background:var(--gold-glow);border:1px solid var(--border-gold);display:flex;align-items:center;justify-content:center;font-size:14px;transition:all var(--transition-fast);text-decoration:none}.mi-play-btn:hover{background:var(--gold);transform:scale(1.05)}.mi-tags{display:flex;flex-wrap:wrap;gap:4px;margin-top:8px}.mi-tag{font-size:11px;color:var(--gold-dim);padding:2px 6px;border-radius:var(--radius-full);background:#d4a84314}.mi-notes{font-size:13px;color:var(--text-secondary);margin-top:6px;line-height:1.5}.mi-footer{display:flex;align-items:center;justify-content:space-between;margin-top:8px;padding-top:8px;border-top:1px solid var(--border)}.mi-uploader{font-size:11px;color:var(--text-dim)}.mi-delete{font-size:11px;color:var(--danger);padding:4px 8px;border-radius:var(--radius-sm);transition:background var(--transition-fast)}.mi-delete:hover{background:var(--danger-bg)}.audio-player{position:fixed;bottom:calc(var(--nav-height) + var(--safe-bottom));left:0;right:0;z-index:150;background:var(--bg-secondary);border-top:1px solid var(--border-gold);display:flex;align-items:center;gap:10px;padding:10px 16px;max-width:480px;margin:0 auto}.ap-play{width:36px;height:36px;border-radius:var(--radius-full);background:var(--gold-gradient);display:flex;align-items:center;justify-content:center;font-size:14px;flex-shrink:0;color:#0a0a0f}.ap-track{flex:1;height:4px;background:var(--bg-card);border-radius:2px;cursor:pointer;overflow:hidden}.ap-progress{height:100%;background:var(--gold-gradient);border-radius:2px;transition:width .2s linear}.ap-time{font-size:11px;color:var(--text-secondary);flex-shrink:0;min-width:72px;text-align:center}.ap-close{width:28px;height:28px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;color:var(--text-dim);font-size:12px;flex-shrink:0}.ap-close:hover{background:var(--bg-card)}.music-view{display:flex;flex-direction:column;gap:12px}.music-search{margin-bottom:4px}.music-list{display:flex;flex-direction:column;gap:8px}.notice-item{text-align:left;width:100%}.notice-item.read{opacity:.6}.ni-top{display:flex;align-items:center;gap:6px;margin-bottom:4px}.ni-pin{font-size:12px}.ni-unread-dot{width:6px;height:6px;border-radius:50%;background:var(--gold);flex-shrink:0}.ni-title{font-size:15px;font-weight:600;flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ni-preview{font-size:13px;color:var(--text-secondary);margin-bottom:8px;line-height:1.4}.ni-meta{display:flex;gap:6px;font-size:11px;color:var(--text-dim)}.notice-view{display:flex;flex-direction:column;gap:12px}.notice-list{display:flex;flex-direction:column;gap:8px}.mypage-view,.mypage-card{display:flex;flex-direction:column;gap:16px}.mypage-avatar-section{display:flex;align-items:center;gap:16px}.mypage-avatar{width:64px;height:64px;border-radius:50%;object-fit:cover;border:3px solid var(--border-gold);flex-shrink:0}.mypage-avatar-fallback{display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);color:var(--gold);font-size:24px;font-weight:700}.mypage-info{display:flex;flex-direction:column;gap:6px}.mypage-name{font-size:18px;font-weight:700}.mypage-bio{font-size:14px;color:var(--text-secondary);line-height:1.5}.mypage-details{display:flex;flex-direction:column;gap:8px;padding:12px;background:var(--bg-secondary);border-radius:var(--radius-sm)}.mypage-detail-row{display:flex;align-items:center;gap:8px;font-size:14px;color:var(--text-secondary)}.detail-icon{font-size:16px;width:24px;text-align:center}.mypage-actions{display:flex;flex-direction:column;gap:8px}.member-row{overflow:hidden;padding:0}.mr-main{display:flex;align-items:center;gap:12px;padding:12px 16px;cursor:pointer}.mr-avatar{width:40px;height:40px;border-radius:50%;object-fit:cover;flex-shrink:0;border:2px solid var(--border)}.mr-avatar-fallback{display:flex;align-items:center;justify-content:center;background:var(--bg-secondary);color:var(--gold);font-size:16px;font-weight:600}.mr-info{flex:1;min-width:0}.mr-name-row{display:flex;align-items:center;gap:6px;margin-bottom:2px}.mr-name{font-size:14px;font-weight:600}.mr-position{font-size:12px;color:var(--text-secondary)}.mr-chevron{font-size:10px;color:var(--text-dim)}.mr-actions{display:flex;gap:6px;padding:0 16px 12px;flex-wrap:wrap}.admin-view{display:flex;flex-direction:column;gap:12px}.admin-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-bottom:8px}.stat-card{text-align:center;padding:16px 8px}.stat-value{display:block;font-size:24px;font-weight:700;font-family:Bebas Neue,sans-serif;color:var(--gold)}.stat-label{font-size:11px;color:var(--text-secondary)}.admin-section-title{font-size:14px;font-weight:600;color:var(--text-secondary)}.members-list{display:flex;flex-direction:column;gap:6px}:root{--bg-primary: #0a0a0f;--bg-secondary: #12121a;--bg-card: #1a1a25;--bg-card-hover: #22222f;--bg-input: #14141e;--gold: #d4a843;--gold-light: #e8c76a;--gold-dim: #8a6f2e;--gold-glow: rgba(212, 168, 67, .15);--gold-gradient: linear-gradient(135deg, #d4a843, #e8c76a);--text-primary: #f0ece4;--text-secondary: #9a95a0;--text-dim: #5a5565;--danger: #c0392b;--danger-bg: rgba(192, 57, 43, .12);--success: #27ae60;--success-bg: rgba(39, 174, 96, .12);--warning: #f39c12;--info: #3498db;--border: rgba(255, 255, 255, .06);--border-gold: rgba(212, 168, 67, .25);--radius-sm: 8px;--radius-md: 12px;--radius-lg: 16px;--radius-full: 9999px;--shadow-sm: 0 2px 8px rgba(0, 0, 0, .3);--shadow-md: 0 4px 16px rgba(0, 0, 0, .4);--shadow-gold: 0 0 20px rgba(212, 168, 67, .1);--safe-bottom: env(safe-area-inset-bottom, 0px);--nav-height: 64px;--header-height: 56px;--transition-fast: .15s ease;--transition-normal: .25s ease;--transition-slow: .4s cubic-bezier(.4, 0, .2, 1)}*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}html{font-size:16px;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:Noto Sans KR,-apple-system,BlinkMacSystemFont,sans-serif;font-weight:400;color:var(--text-primary);background:var(--bg-primary);min-height:100vh;min-height:100dvh;overflow-x:hidden;line-height:1.6}#root{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}a{color:var(--gold);text-decoration:none}button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}input,textarea,select{font-family:inherit;font-size:inherit;color:var(--text-primary);background:var(--bg-input);border:1px solid var(--border);border-radius:var(--radius-sm);padding:10px 14px;outline:none;transition:border-color var(--transition-fast);width:100%}input:focus,textarea:focus,select:focus{border-color:var(--gold);box-shadow:0 0 0 2px var(--gold-glow)}textarea{resize:vertical;min-height:80px}select{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%239a95a0' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px}img{max-width:100%;display:block}::-webkit-scrollbar{width:4px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--text-dim);border-radius:4px}.font-brand{font-family:Bebas Neue,sans-serif;letter-spacing:.08em}.font-mono{font-family:JetBrains Mono,monospace}.page-container{flex:1;padding:16px;padding-top:calc(var(--header-height) + 8px);padding-bottom:calc(var(--nav-height) + var(--safe-bottom) + 16px);max-width:480px;margin:0 auto;width:100%}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;padding:10px 20px;border-radius:var(--radius-sm);font-size:14px;font-weight:500;transition:all var(--transition-fast);white-space:nowrap}.btn-primary{background:var(--gold-gradient);color:#0a0a0f;font-weight:600}.btn-primary:hover{transform:translateY(-1px);box-shadow:var(--shadow-gold)}.btn-primary:active{transform:translateY(0)}.btn-secondary{background:var(--bg-card);border:1px solid var(--border);color:var(--text-primary)}.btn-secondary:hover{border-color:var(--border-gold)}.btn-danger{background:var(--danger-bg);color:var(--danger);border:1px solid rgba(192,57,43,.25)}.btn-sm{padding:6px 12px;font-size:12px}.btn-full{width:100%}.card{background:var(--bg-card);border:1px solid var(--border);border-radius:var(--radius-md);padding:16px;transition:all var(--transition-fast)}.card:hover{border-color:var(--border-gold);box-shadow:var(--shadow-gold)}.badge{display:inline-flex;align-items:center;padding:3px 10px;border-radius:var(--radius-full);font-size:11px;font-weight:500;letter-spacing:.02em}.badge-gold{background:var(--gold-glow);color:var(--gold-light);border:1px solid var(--border-gold)}.badge-success{background:var(--success-bg);color:var(--success)}.badge-danger{background:var(--danger-bg);color:var(--danger)}.form-group{margin-bottom:16px}.form-group label{display:block;font-size:13px;font-weight:500;color:var(--text-secondary);margin-bottom:6px}.empty-state{text-align:center;padding:48px 16px;color:var(--text-dim)}.empty-state .icon{font-size:48px;margin-bottom:12px}.empty-state p{font-size:14px}.loading-spinner{display:flex;align-items:center;justify-content:center;padding:48px}.loading-spinner:after{content:"";width:32px;height:32px;border:3px solid var(--border);border-top-color:var(--gold);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.tab-bar{display:flex;gap:4px;background:var(--bg-secondary);border-radius:var(--radius-sm);padding:4px;margin-bottom:16px}.tab-bar button{flex:1;padding:8px;font-size:13px;font-weight:500;border-radius:6px;color:var(--text-secondary);transition:all var(--transition-fast)}.tab-bar button.active{background:var(--bg-card);color:var(--gold)}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes slideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.animate-fade-in{animation:fadeIn .3s ease forwards}.animate-slide-up{animation:slideUp .35s cubic-bezier(.4,0,.2,1) forwards}
