:root{--grape-50:#f4effc;--grape-100:#f1ecfc;--grape-200:#ece3fa;--grape-300:#d6c5f5;--grape-400:#a889e8;--grape-500:#8a63d8;--grape-600:#6b45c9;--grape-700:#5531ad;--grape-800:#422685;--grape-900:#2e1d5e;--bg:#f4f5f7;--bg-card:#ffffff;--bg-muted:#f7f8fa;--bg-soft:#f1f3f6;--text-primary:#191f28;--text-secondary:#4e5968;--text-muted:#8b95a1;--text-faint:#b0b8c1;--border:#e5e8eb;--border-light:#f1f3f5;--accent:#3182f6;--accent-light:#5b9dff;--accent-pressed:#1b64da;--accent-bg:#ebf3fe;--success:#12b886;--success-bg:#e6f7f0;--danger:#e5484d;--danger-bg:#fdecec;--warning:#f79009;--warning-bg:#fef3e2;--brand-ink:#191f28;--brand-ink-soft:#333d4b;--brand-blue:#3182f6;--brand-cobalt:#3182f6;--brand-cream:#fbf8ef;--brand-shadow:0 1px 2px rgba(17,24,39,0.03)}*{margin:0;padding:0;box-sizing:border-box}body,html{height:100%;width:100%;max-width:100%;font-family:Pretendard,Apple SD Gothic Neo,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,Noto Sans KR,sans-serif;background:#e7eaf0;color:var(--text-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}a{color:inherit;text-decoration:none}button{cursor:pointer;border:none;background:none}button,input,select,textarea{font:inherit;color:inherit}.app-shell{display:flex;flex-direction:column;min-height:100dvh;width:100%;max-width:480px;margin:0 auto;background:var(--bg);box-shadow:0 0 0 1px rgba(15,23,42,.04),0 18px 54px rgba(17,24,39,.08);overflow-x:hidden}.app-header{justify-content:space-between;gap:12px;min-height:56px;padding:8px 14px 8px 18px;border-bottom:1px solid var(--border-light);background:rgba(255,255,255,.96);box-shadow:none;position:-webkit-sticky;position:sticky;top:0;z-index:40;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.app-header,.app-header-brand{display:flex;align-items:center}.app-header-brand{gap:9px;min-width:0}.app-header h1{font-size:15.5px;font-weight:800;color:var(--text-primary);letter-spacing:-.3px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.app-header-profile{display:flex;align-items:center;gap:7px;min-width:0;flex-shrink:1;max-width:46%;padding:4px 10px 4px 4px;border:0;border-radius:999px;background:var(--bg)}.app-header-profile-name{font-size:13.5px;font-weight:700;color:var(--brand-ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:140px}.crew-brand-mark{position:relative;display:inline-flex;align-items:center;justify-content:center;overflow:hidden;flex:0 0 auto;background:linear-gradient(140deg,#2a4c86,#0e1b34);border:0;box-shadow:0 8px 18px rgba(20,40,80,.18)}.crew-brand-mark:after{content:"";position:absolute;inset:0;border-radius:inherit;box-shadow:inset 0 0 18px rgba(147,185,255,.16);pointer-events:none}.crew-brand-mark-image{width:100%;height:100%;display:block;object-fit:cover;transform:scale(1.1)}.crew-brand-mark-hero{width:76px;height:76px;border-radius:22px;margin:0 auto 18px;box-shadow:0 14px 30px -8px rgba(20,40,80,.55)}.crew-brand-mark-header{width:30px;height:30px;border-radius:9px}.crew-brand-mark-nav{width:24px;height:24px;border-radius:7px;box-shadow:0 6px 14px rgba(49,130,246,.12)}.crew-brand-mark-prompt{width:46px;height:46px;border-radius:12px}.profile-avatar{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;overflow:hidden;background:var(--accent-bg);border:1px solid var(--border);color:var(--grape-700);flex-shrink:0}.profile-avatar-image{width:100%;height:100%;object-fit:cover;display:block}.profile-avatar-fallback{line-height:1}.app-main{flex:1 1;min-width:0;padding:14px 20px calc(96px + env(safe-area-inset-bottom, 0px));overflow-y:auto;overflow-x:hidden;overscroll-behavior-x:none}.bottom-nav{position:fixed;bottom:0;left:50%;transform:translateX(-50%);width:100%;max-width:480px;min-height:66px;display:flex;justify-content:space-around;align-items:center;gap:2px;background:rgba(255,255,255,.98);border-top:1px solid #edeff2;box-shadow:none;padding:7px 6px calc(env(safe-area-inset-bottom, 0px) + 7px);z-index:50;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.bottom-nav a,.bottom-nav-item{display:flex;flex:1 1;min-width:0;min-height:48px;flex-direction:column;align-items:center;justify-content:center;gap:3px;font-size:10.5px;font-weight:600;letter-spacing:-.2px;color:var(--text-muted);padding:3px 2px;border-radius:12px;transition:color .15s,background .15s}.bottom-nav a.active,.bottom-nav-item.active{color:var(--accent);background:transparent}.bottom-nav a .nav-icon,.bottom-nav-icon{width:25px;height:25px;display:grid;place-items:center;color:currentColor}.bottom-nav-svg{width:23px;height:23px;stroke:currentColor;stroke-width:1.9;fill:none;stroke-linecap:round;stroke-linejoin:round}.card{background:var(--bg-card);border-radius:18px;border:1px solid var(--border-light);padding:16px;margin-bottom:12px;box-shadow:var(--brand-shadow)}.card-title{font-size:16px;font-weight:800;color:var(--text-primary);letter-spacing:-.3px;margin-bottom:8px}.schedule-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.schedule-date-tile{flex:0 0 46px;width:46px;height:52px;background:#f1f5fe;display:flex;flex-direction:column;align-items:center;justify-content:center}.schedule-date-tile span{font-size:10.5px;font-weight:800;color:#5b8de8}.schedule-date-tile strong{margin-top:1px;font-size:20px;font-weight:900;line-height:1;color:#2b6fd6}.screen-intro{margin-bottom:18px}.screen-intro-title{font-size:23px;font-weight:800;color:var(--text-primary);line-height:1.35;letter-spacing:-.4px;white-space:pre-line}.screen-intro-copy{margin-top:5px;font-size:13.5px;line-height:1.55;color:var(--text-muted)}.screen-intro-badges{display:flex;gap:7px;flex-wrap:wrap;margin-top:11px}.metric-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px;margin-bottom:16px}.metric-grid.three-up{grid-template-columns:repeat(3,minmax(0,1fr))}.metric-card{min-width:0;padding:15px 12px;border-radius:16px;border:1px solid var(--border-light);background:var(--bg-card);box-shadow:var(--brand-shadow);text-align:left}.metric-value{font-size:23px;font-weight:800;line-height:1;letter-spacing:-.6px;color:var(--text-primary)}.metric-value.accent{color:var(--accent)}.metric-value.success{color:var(--success)}.metric-value.warning{color:var(--warning)}.metric-value.danger{color:var(--danger)}.metric-value.grape{color:var(--grape-600)}.metric-label{margin-top:6px;font-size:12px;font-weight:700;color:var(--text-muted)}.notice-card{border-radius:20px;padding:18px;border:1px solid #dbeafd;background:linear-gradient(140deg,#eaf2fe,#f4f8ff);box-shadow:var(--brand-shadow)}.notice-kicker{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:900;color:var(--accent);margin-bottom:6px}.notice-title{font-size:16.5px;font-weight:800;color:var(--text-primary);letter-spacing:-.3px}.notice-copy{margin-top:6px;font-size:13px;line-height:1.5;color:var(--text-secondary)}.quick-action-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}.quick-action-list{display:flex;flex-direction:column;gap:9px}.quick-action-card{display:flex;align-items:center;gap:12px;min-height:84px;padding:14px;border-radius:18px;border:1px solid var(--border-light);background:var(--bg-card);box-shadow:var(--brand-shadow)}.quick-action-grid .quick-action-card{display:block;min-height:118px;padding:15px;border-radius:16px}.quick-action-grid .quick-action-title{margin-top:11px}.quick-action-icon{display:grid;place-items:center;flex:0 0 38px;width:38px;height:38px;border-radius:11px;background:var(--accent-bg);color:var(--accent);font-size:20px}.quick-action-svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}.quick-action-title{font-size:14.5px;font-weight:800;color:var(--text-primary);letter-spacing:-.2px}.quick-action-desc{margin-top:2px;font-size:11.5px;line-height:1.35;color:var(--text-muted)}.field-message{margin-top:10px;padding:10px 12px;border-radius:13px;font-size:13px;font-weight:700;line-height:1.45}.field-message.success{color:#0e9e6e;background:var(--success-bg)}.field-message.danger{color:var(--danger);background:var(--danger-bg)}.file-picker-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.file-picker-input{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.file-picker-button{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:0 14px;border-radius:13px;background:var(--accent-bg);color:var(--accent);font-size:13.5px;font-weight:800;cursor:pointer}.file-picker-name{min-width:0;flex:1 1;font-size:13px;color:var(--text-muted)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:44px;padding:10px 18px;border-radius:14px;font-size:14.5px;font-weight:700;letter-spacing:-.2px;transition:background .15s,color .15s,border-color .15s,transform .15s}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--accent);color:white;box-shadow:none}.btn-primary:hover{background:var(--accent-pressed)}.btn-secondary{background:var(--accent-bg);color:var(--accent);border:1px solid rgba(49,130,246,.1)}.btn-secondary:hover{background:#dfeeff}.btn-danger{background:var(--danger-bg);color:var(--danger)}.btn-sm{min-height:36px;padding:7px 12px;font-size:12.5px;border-radius:10px}.btn-block{width:100%}.btn-lg,.login-submit{min-height:54px;border-radius:14px;font-size:16.5px;font-weight:700}.link-button{min-height:auto;padding:0;border-radius:0;background:transparent;color:var(--text-secondary);font-size:13.5px;font-weight:600;letter-spacing:0}.link-button:hover{color:var(--accent)}.login-help-row{display:flex;align-items:center;justify-content:center;gap:12px;margin-top:12px}.login-help-dot{width:3px;height:3px;border-radius:999px;background:#d5dae0}.form-group{margin-bottom:16px}.profile-photo-editor{display:flex;align-items:flex-start;gap:14px}.profile-photo-preview{flex-shrink:0}.profile-photo-editor-body{flex:1 1;min-width:0}.award-member-grid{display:flex;flex-direction:column;gap:8px;max-height:320px;overflow-y:auto}.award-member-option{display:flex;align-items:center;gap:10px;width:100%;padding:10px 12px;border:1px solid var(--border);background:var(--bg-card);text-align:left}.award-member-option.selected{border-color:var(--accent);background:var(--accent-bg)}.award-member-option-body{min-width:0;flex:1 1}.award-member-option-name{font-size:14px;font-weight:700;color:var(--text-primary)}.award-member-option-meta{margin-top:2px;font-size:12px;color:var(--text-muted)}.award-attendee-list{display:flex;flex-wrap:wrap;gap:8px}.award-attendee-pill{display:inline-flex;align-items:center;gap:8px;padding:6px 10px;border-radius:999px;background:var(--grape-50);border:1px solid var(--border-light);font-size:12px;color:var(--grape-800)}.photo-filter-tabs{display:flex;flex-wrap:wrap;gap:6px;background:#eef0f3}.photo-filter-tab{flex:1 1 auto;min-height:36px;padding:8px 12px;border-radius:11px;border:0;background:transparent;color:#697585;font-size:12.5px}.photo-filter-tab.active{background:#ffffff;border-color:transparent;color:var(--text-primary);box-shadow:0 1px 3px rgba(15,23,42,.1)}.hall-of-fame-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:10px;gap:10px}.hall-of-fame-grid.compact{gap:8px}.hall-of-fame-list{display:flex;flex-direction:column;gap:2px;padding:2px 0}.hall-of-fame-row{display:flex;align-items:center;gap:12px;padding:11px 4px;border-bottom:1px solid var(--border-light)}.hall-of-fame-row:last-child{border-bottom:0}.hall-of-fame-medal{display:inline-flex;align-items:center;justify-content:center;flex:0 0 34px;height:34px;border-radius:999px;background:var(--accent-bg);color:var(--accent);font-size:12px;font-weight:900}.hall-of-fame-medal.rank-1{background:var(--warning-bg);color:#c77700}.hall-of-fame-medal.rank-2,.hall-of-fame-medal.rank-3{background:var(--grape-100);color:var(--grape-600)}.hall-of-fame-row-body{flex:1 1;min-width:0}.hall-of-fame-row-meta{margin-top:2px;font-size:12.5px;color:var(--text-muted)}.hall-of-fame-card{display:flex;flex-direction:column;align-items:center;gap:6px;padding:14px 10px;border-radius:16px;background:rgba(255,255,255,.86);border:1px solid var(--border-light);text-align:center}.hall-of-fame-card.compact{padding:12px 8px}.hall-of-fame-rank{font-size:12px;font-weight:700;color:var(--accent)}.hall-of-fame-name{font-size:13px;font-weight:700;color:var(--text-primary)}.hall-of-fame-score{font-size:14px;font-weight:700;color:var(--grape-700)}.crew-status-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:12px;gap:12px}.crew-status-message{padding:10px 12px;border-radius:12px;background:#f8fafc;color:var(--text-secondary);font-size:13px;line-height:1.5;margin-bottom:12px;min-height:64px}.crew-metric-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px;gap:8px;margin-bottom:10px}.crew-metric-card{padding:10px;border-radius:12px;background:var(--grape-50);border:1px solid var(--border-light)}.crew-metric-value{font-size:18px;font-weight:700;color:var(--grape-800)}.crew-metric-label{font-size:11px;color:var(--text-muted);margin-top:2px}.notes-list{display:flex;flex-direction:column;gap:10px}.note-card{padding:12px;border-radius:14px;border:1px solid var(--border-light);background:#fcfcff}.mobile-vertical-stack{flex-wrap:wrap}.form-label{display:block;font-size:13px;font-weight:700;color:var(--text-secondary);margin-bottom:7px}.form-input{width:100%;min-height:48px;padding:11px 14px;border:1px solid var(--border);border-radius:13px;background:var(--bg-card);font-size:14.5px;outline:none;transition:border-color .15s,box-shadow .15s}.login-input{min-height:54px;padding:0 16px;border-radius:14px;font-size:15.5px}.form-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px rgba(49,130,246,.12)}.form-select{width:100%;min-height:48px;padding:11px 14px;border:1px solid var(--border);border-radius:13px;background:var(--bg-card);font-size:14.5px;outline:none;-webkit-appearance:none;-moz-appearance:none;appearance:none}.form-input:disabled,.form-select:disabled,textarea.form-input:disabled{background:var(--bg-muted);color:var(--text-muted);border-color:var(--border-light);cursor:not-allowed}.member-admin-panel{margin-top:12px;padding-top:12px;border-top:1px solid var(--border-light)}.member-admin-grid{display:grid;grid-template-columns:1fr;grid-gap:12px;gap:12px}.member-rank-editor{display:block}.rank-board-grid{display:grid;grid-template-columns:1fr;grid-gap:12px;gap:12px}.rank-column{border:1px solid var(--border-light);background:#eef6ff;border-radius:14px;padding:12px;min-height:120px}.rank-column.drag-over{border-color:var(--accent);box-shadow:0 0 0 2px rgba(47,125,255,.16)}.rank-column-header{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.rank-column-title{font-size:13px;font-weight:700;color:var(--grape-900)}.rank-column-count{font-size:11px;color:var(--text-muted)}.rank-column-body{display:flex;flex-direction:column;gap:8px}.rank-column-empty{border:1px dashed var(--border);border-radius:12px;padding:14px 10px;text-align:center;font-size:12px;color:var(--text-muted);background:rgba(255,255,255,.75)}.rank-member-card{width:100%;text-align:left;border:1px solid var(--border);border-radius:12px;background:var(--bg-card);padding:10px 12px;cursor:-webkit-grab;cursor:grab;box-shadow:0 4px 14px rgba(6,20,58,.08)}.rank-member-card.overlay{width:220px;cursor:-webkit-grabbing;cursor:grabbing}.rank-member-main{display:flex;align-items:center;gap:10px}.rank-member-name{font-size:13px;font-weight:700;color:var(--grape-900)}.rank-member-real-name{font-size:11px;color:var(--text-muted);margin-top:2px}.rank-member-meta{margin-top:8px;font-size:11px;color:var(--text-muted)}.member-selector-card{min-width:132px;padding:10px 12px;border-radius:12px;border:1px solid var(--border);background:var(--bg-card);color:var(--text-secondary)}.member-selector-card.active{border-color:var(--accent);background:var(--accent-bg);color:var(--grape-800)}.badge{display:inline-flex;align-items:center;min-height:24px;padding:0 9px;border-radius:8px;background:#f1f3f6;color:var(--text-secondary);font-size:11.5px;font-weight:700;letter-spacing:0}.badge-grape{background:var(--grape-100);color:var(--grape-600)}.badge-success{background:var(--success-bg);color:#0e9e6e}.badge-warning{background:var(--warning-bg);color:#c77700}.badge-big-grape{background:var(--grape-100);color:var(--grape-600)}.section-title{font-size:17px;font-weight:800;color:var(--text-primary);letter-spacing:-.3px;margin-bottom:10px}.section-subtitle{font-size:13.5px;color:var(--text-muted);line-height:1.55;margin-bottom:16px}.empty-state{text-align:center;padding:40px 20px;color:var(--text-muted)}.empty-state .empty-icon{font-size:48px;margin-bottom:12px}.empty-state p{font-size:14px}.setup-notice{background:var(--accent-bg);border:1px dashed var(--accent);border-radius:12px;padding:20px;text-align:center;margin-bottom:16px}.setup-notice h3{color:var(--grape-800);margin-bottom:8px}.setup-notice p{font-size:13px;color:var(--text-secondary);line-height:1.6}.setup-notice code{background:var(--accent-bg);padding:2px 6px;border-radius:4px;font-size:12px}.board-page{display:flex;flex-direction:column;gap:14px}.board-hero-card{margin-bottom:16px}.board-hero-eyebrow{display:none}.board-hero-card h2{font-size:21px;font-weight:800;line-height:1.35;letter-spacing:-.4px;margin:0;color:var(--text-primary)}.board-hero-card p{margin-top:3px;font-size:13px;line-height:1.5;color:var(--text-muted)}.board-hero-chips{display:none}.board-owner-card{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:18px;background:var(--bg-card);border:1px solid var(--border-light);box-shadow:var(--brand-shadow);margin-bottom:12px}.board-owner-avatar{display:grid;place-items:center;flex:0 0 42px;width:42px;height:42px;border-radius:50%;font-size:23px;background:#eaf1fc}.board-owner-main{min-width:0}.board-owner-title{color:var(--text-primary);font-size:15px;font-weight:700;letter-spacing:0}.board-owner-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.board-owner-copy{margin-top:8px;font-size:13px;color:var(--text-secondary)}.board-inline-alert{margin-bottom:10px;padding:10px 12px;border-radius:14px;font-size:13px;font-weight:700;line-height:1.45}.board-inline-alert.danger{color:#b91c1c;background:#fef2f2;border:1px solid #fee2e2}.board-inline-alert.info{color:var(--grape-700);background:var(--accent-bg);border:1px solid rgba(47,125,255,.16)}.grape-progress-card{border-radius:20px;padding:18px;background:linear-gradient(145deg,#f3edfc,#fbfafe);border:1px solid #ece3fa;box-shadow:var(--brand-shadow)}.grape-progress-topline{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.grape-progress-kicker{font-size:12.5px;font-weight:800;color:var(--grape-600);margin-bottom:3px}.grape-progress-topline strong{color:var(--grape-900);font-size:28px;line-height:1;letter-spacing:-.8px}.grape-progress-total{flex:0 0 auto;display:inline-flex;align-items:center;height:30px;padding:0 11px;border-radius:999px;background:#ebf3fe;color:var(--accent);font-size:12px;font-weight:800}.grape-progress-rail{height:10px;margin-top:14px;overflow:hidden;border-radius:999px;background:#e7dcf8}.grape-progress-rail span{display:block;height:100%;min-width:8px;border-radius:inherit;background:linear-gradient(90deg,var(--grape-600),var(--grape-500));box-shadow:inset 0 0 0 1px rgba(255,255,255,.35)}.grape-progress-badges{display:flex;flex-wrap:wrap;gap:7px;margin-top:12px}.grape-progress-help{margin-top:10px;color:var(--text-muted);font-size:12px;line-height:1.5}.grape-stage-card{margin-top:2px;overflow:hidden;border-radius:20px;background:#fff;border:1px solid var(--border-light);box-shadow:var(--brand-shadow)}.grape-stage-header{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:18px 18px 2px}.grape-stage-title{font-size:17px;font-weight:800;color:var(--text-primary);letter-spacing:-.3px}.grape-stage-header p{margin-top:5px;font-size:12.5px;line-height:1.45;color:var(--text-secondary)}.grape-stage-header>span{flex:0 0 auto;display:inline-flex;align-items:center;height:30px;padding:0 11px;border-radius:999px;color:var(--grape-600);background:var(--grape-100);border:0;font-size:12px;font-weight:800}.grape-cluster-wrap{display:flex;flex-direction:column;align-items:center;padding:18px 0 28px}.grape-vine{display:none}.grape-vine-svg{width:100%;height:100%;filter:drop-shadow(0 1px 1px rgba(0,0,0,.08))}.grape-board{position:relative;margin:0 auto;max-width:336px;box-sizing:content-box;overflow:visible;background:radial-gradient(ellipse 85% 90% at 50% 45%,rgba(107,69,201,.08) 0,rgba(107,69,201,.03) 62%,transparent 100%);border-radius:40% 40% 48% 48%/30% 30% 50% 50%;padding:10px;filter:none}.grape-slot{border-radius:50%;display:flex;align-items:center;justify-content:center;transition:transform .15s ease,box-shadow .15s ease,border-color .15s ease;background:#e7ebf1;border:0;box-shadow:none}.grape-slot.filled{background:linear-gradient(150deg,#8a63d8,#6b45c9);border:0;box-shadow:0 2px 5px rgba(107,69,201,.32)}.grape-slot.drop-target{background:#f1ecfc;transform:scale(1.1);box-shadow:0 0 0 3px rgba(107,69,201,.18);z-index:5}.grape-slot.selected,.tray-sticker.selected{outline:3px solid var(--accent);box-shadow:0 0 0 4px rgba(49,130,246,.14)}.grape-empty-dot{width:5px;height:5px;border-radius:50%;background:#c1c8d0;box-shadow:none}.grape-emoji{font-size:22px;-webkit-user-select:none;-moz-user-select:none;user-select:none;line-height:1;filter:none}.grape-emoji.draggable{cursor:-webkit-grab;cursor:grab}.grape-emoji.readonly{opacity:.7}.sticker-tray{margin-top:0;background:#fff;border:1.5px dashed #c9b8ed;border-radius:20px;padding:16px;box-shadow:var(--brand-shadow)}.sticker-tray-header{display:flex;align-items:center;gap:6px;font-size:17px;font-weight:800;color:var(--text-primary);margin-bottom:12px}.sticker-tray-icon{font-size:20px}.sticker-tray-section{margin-bottom:10px}.sticker-tray-section:last-child{margin-bottom:0}.sticker-tray-label{font-size:12px;font-weight:700;color:var(--text-muted);margin-bottom:8px;letter-spacing:0}.sticker-tray-grid{display:flex;flex-wrap:wrap;gap:8px}.tray-sticker{display:flex;align-items:center;gap:8px;padding:10px 12px;background:rgba(255,255,255,.9);border:1px solid #e6c77c;border-radius:14px;cursor:-webkit-grab;cursor:grab;transition:transform .15s,box-shadow .15s,border-color .15s;flex:1 1 140px;min-width:0}.tray-sticker:hover{transform:translateY(-1px);border-color:#d6aa4a;box-shadow:0 8px 18px rgba(112,77,20,.1)}.tray-sticker.readonly{cursor:default;opacity:.7}.tray-sticker-emoji{font-size:22px;line-height:1}.tray-sticker-info{flex:1 1;min-width:0}.tray-sticker-name{font-size:13px;font-weight:700;color:var(--text-primary)}.tray-sticker-name,.tray-sticker-note{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tray-sticker-note{font-size:11px;color:var(--text-secondary)}.calendar-page{min-width:0}.calendar-month-nav{display:flex;align-items:center;justify-content:space-between;gap:8px}.calendar-month-nav-button{flex-shrink:0}.calendar-month-nav-label{flex:1 1;min-width:0;text-align:center;font-size:20px}.calendar-grid-wrap{width:100%;min-width:0;overflow:hidden}.calendar-grid{display:grid;width:100%;min-width:0;grid-template-columns:repeat(7,minmax(0,1fr));grid-gap:2px;gap:2px}.calendar-header-cell{min-width:0;text-align:center;font-size:11px;font-weight:600;color:var(--text-muted);padding:8px 0}.calendar-cell{min-width:0;aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;padding:4px 2px;font-size:12px;border-radius:8px;min-height:44px}.calendar-cell.today{background:var(--accent-bg);font-weight:700}.calendar-cell.has-event{cursor:pointer}.calendar-cell .event-dots{display:flex;flex-wrap:wrap;justify-content:center;gap:2px;width:100%;margin-top:2px}.calendar-cell .event-dot{width:6px;height:6px;flex:0 0 auto;border-radius:50%;background:var(--accent)}.calendar-cell.other-month{color:var(--text-muted);opacity:.4}.flex{display:flex}.flex-col{flex-direction:column}.items-center{align-items:center}.justify-between{justify-content:space-between}.gap-1{gap:4px}.gap-2{gap:8px}.gap-3{gap:12px}.gap-4{gap:16px}.mt-2{margin-top:8px}.mt-4{margin-top:16px}.mb-2{margin-bottom:8px}.mb-4{margin-bottom:16px}.text-sm{font-size:13px}.text-xs{font-size:11px}.text-muted{color:var(--text-secondary)}.text-center{text-align:center}.font-bold{font-weight:700}.w-full{width:100%}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.landing-shell{display:flex;min-height:100dvh;justify-content:flex-start;align-items:center;padding:44px 16px 36px;gap:0}.landing-hero{text-align:center;margin-bottom:26px;color:var(--text-primary)}.landing-grape-icon{font-size:72px;margin-bottom:8px;animation:landing-bounce 2s ease-in-out infinite}.landing-kicker{font-size:12px;font-weight:900;color:var(--text-faint);letter-spacing:.16em;margin-bottom:8px}@keyframes landing-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-6px)}}.landing-title{font-size:27px;font-weight:800;color:var(--text-primary);letter-spacing:-.6px;text-shadow:none}.landing-subtitle{font-size:14.5px;line-height:1.5;color:var(--text-muted);margin-top:8px}.landing-card{width:100%;position:relative}.landing-card .card{border-color:var(--border-light);box-shadow:var(--brand-shadow)}.login-form-panel{margin-bottom:16px}.login-demo-panel{margin:22px 0 16px}.login-demo-divider{display:flex;align-items:center;gap:12px;margin-bottom:16px}.login-demo-divider span{flex:1 1;height:1px;background:#edeff2}.login-demo-divider strong{color:var(--text-faint);font-size:12.5px;font-weight:600}.login-demo-button{flex:1 1;min-height:50px;border-radius:13px;background:#f1f3f6;color:var(--text-secondary);font-size:14px;font-weight:700}.login-demo-button:hover{background:#e8ebf0;color:var(--brand-ink-soft)}.landing-features{display:flex;flex-direction:column;gap:10px}.landing-feature{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--text-primary);padding:8px 12px;background:var(--grape-50);border-radius:10px}.landing-feature-icon{font-size:20px;flex-shrink:0}.landing-footer{margin-top:32px;text-align:center}.login-card{width:100%;max-width:420px}.login-error{color:var(--danger);margin-bottom:12px;padding:8px 12px;background:#fef2f2;border-radius:8px;border:1px solid #fecaca}@media (display-mode:standalone){.app-header{padding-top:max(12px,env(safe-area-inset-top))}.bottom-nav{padding-bottom:max(8px,env(safe-area-inset-bottom))}}@media (max-width:380px){.grape-cluster-wrap{padding-top:2px}.grape-vine{width:96px;height:40px;margin-bottom:-4px}.grape-board{max-width:292px;padding:6px}.sticker-tray{padding:14px}.sticker-tray-grid{flex-direction:column}.tray-sticker{width:100%}}.quest-reward-recipients-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;cursor:pointer;list-style:none;border-radius:8px}.quest-reward-recipients-summary::-webkit-details-marker{display:none}.quest-reward-recipients-summary::marker{content:""}.quest-reward-recipients-summary:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.quest-reward-recipients-heading{display:flex;align-items:center;gap:8px;flex-wrap:wrap;min-width:0;font-size:14px;font-weight:700}.quest-reward-recipients-count{color:var(--text-muted);font-size:12px;font-weight:500;white-space:nowrap}.quest-reward-recipients-toggle{display:inline-flex;align-items:center;gap:4px;flex-shrink:0;color:var(--text-secondary);font-size:12px;font-weight:600}.quest-reward-recipients-collapse,.quest-reward-recipients[open] .quest-reward-recipients-expand{display:none}.quest-reward-recipients[open] .quest-reward-recipients-collapse{display:inline}.quest-reward-recipients[open] .quest-reward-recipients-chevron{transform:rotate(180deg)}.quest-reward-recipients-list{padding-top:8px}.photo-management-panel.card{padding:0}.photo-management-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:44px;padding:14px 16px;border-radius:inherit;cursor:pointer;list-style:none}.photo-management-summary::-webkit-details-marker{display:none}.photo-management-summary::marker{content:""}.photo-management-summary:focus-visible{outline:2px solid var(--accent);outline-offset:-4px}.photo-management-heading{display:flex;align-items:center;flex-wrap:wrap;gap:4px 8px;min-width:0}.photo-management-summary .card-title{margin-bottom:0}.photo-management-count{color:var(--text-muted);font-size:12px;white-space:nowrap}.photo-management-toggle{display:inline-flex;align-items:center;flex-shrink:0;gap:4px;color:var(--accent);font-size:12px;font-weight:700}.photo-management-collapse-label,.photo-management-panel[open] .photo-management-expand-label{display:none}.photo-management-panel[open] .photo-management-collapse-label{display:inline}.photo-management-panel[open] .photo-management-chevron{transform:rotate(180deg)}.photo-management-content{padding:0 16px 16px}.gallery-view-toggle{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:4px;gap:4px;padding:4px;margin:-2px 0 12px;border-radius:14px;background:#eef0f3}.gallery-view-toggle-button{min-height:34px;padding:7px 10px;border-radius:10px;color:#697585;font-size:12px;font-weight:800}.gallery-view-toggle-button.active{background:#ffffff;color:var(--text-primary);box-shadow:0 1px 3px rgba(15,23,42,.1)}.photo-gallery-mosaic{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));grid-gap:5px;gap:5px;margin-inline:-2px}.gallery-mosaic-tile{position:relative;display:block;min-width:0;overflow:hidden;border-radius:10px;background:var(--grape-100)}.gallery-mosaic-image{display:block;width:100%;aspect-ratio:1/1;height:auto;object-fit:cover}.gallery-mosaic-overlay{position:absolute;inset:auto 0 0;display:flex;flex-direction:column;gap:2px;padding:20px 6px 6px;color:#fff;background:linear-gradient(180deg,transparent,rgba(10,14,24,.72));pointer-events:none}.gallery-mosaic-badge{align-self:flex-start;max-width:100%;padding:2px 5px;border-radius:999px;background:rgba(255,255,255,.92);color:var(--grape-700);font-size:9.5px;font-weight:900;line-height:1.1}.gallery-mosaic-meta,.gallery-mosaic-title{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-shadow:0 1px 3px rgba(0,0,0,.45)}.gallery-mosaic-title{font-size:11px;font-weight:900;letter-spacing:-.2px}.gallery-mosaic-meta{font-size:9.5px;opacity:.9}.photo-gallery-grid{display:grid;grid-template-columns:1fr;grid-gap:12px;gap:12px}.gallery-card-image{width:100%;height:220px;object-fit:cover;background:var(--grape-100);border:1px solid var(--border-light)}.gallery-card-image-button{display:block;width:100%;padding:0;overflow:hidden}.gallery-preview-image{width:100%;max-height:360px;height:auto;object-fit:contain;display:block;background:var(--grape-100)}.photo-upload-preview{overflow:hidden;border:1px solid var(--border-light)}.gallery-lightbox{position:fixed;inset:0;z-index:120;display:flex;align-items:center;justify-content:center;padding:16px;background:rgba(17,24,39,.82);-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.gallery-lightbox-card{width:min(100%,960px);max-height:calc(100dvh - 32px);display:flex;flex-direction:column;background:rgba(255,255,255,.98);border-radius:18px;overflow:hidden;box-shadow:0 24px 60px rgba(17,24,39,.28)}.gallery-lightbox-toolbar{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;padding:16px;border-bottom:1px solid var(--border-light);background:var(--bg-card)}.gallery-lightbox-title{font-size:15px;color:var(--grape-900)}.gallery-lightbox-subtitle{margin-top:4px;font-size:12px;color:var(--text-muted)}.gallery-lightbox-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap;justify-content:flex-end}.gallery-lightbox-image-shell{flex:1 1;min-height:0;overflow:auto;display:flex;align-items:center;justify-content:center;padding:16px;background:#140f23}.gallery-lightbox-image-shell.original{align-items:flex-start;justify-content:flex-start}.gallery-lightbox-image{display:block;max-width:100%;max-height:calc(100dvh - 240px);width:auto;height:auto;object-fit:contain;border-radius:16px;background:#fff;box-shadow:0 20px 40px rgba(0,0,0,.24);cursor:zoom-in}.gallery-lightbox-image.original{max-width:none;max-height:none;cursor:zoom-out}.gallery-lightbox-footer{padding:14px 16px 16px;border-top:1px solid var(--border-light);background:var(--bg-card)}@media (max-width:420px){.app-shell{max-width:100%}.app-main{padding:10px 20px calc(96px + env(safe-area-inset-bottom, 0px))}.card,.sticker-tray{padding:14px;border-radius:16px}.section-title{font-size:17px}.section-subtitle{font-size:13px;line-height:1.55}.screen-intro-title{font-size:22px}.metric-grid.three-up{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.metric-card{padding:13px 10px}.metric-value{font-size:21px}.metric-label{font-size:11.5px}.quick-action-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.bottom-nav{padding:7px 6px calc(env(safe-area-inset-bottom) + 7px);gap:2px}.bottom-nav-item{min-width:0;font-size:10.5px}.bottom-nav-icon{width:25px;height:25px}.calendar-grid-wrap{margin-inline:-4px}.calendar-grid{gap:2px}.calendar-cell,.calendar-header-cell{min-height:44px;font-size:11px;padding:5px 2px}.calendar-month-nav{gap:6px}.calendar-month-nav-button{padding-left:10px;padding-right:10px}.member-chip{min-width:calc(50% - 6px)}.grape-cluster-wrap{padding:10px 0 2px}.grape-cluster{transform:scale(.92);transform-origin:top center}.sticker-tray-grid{grid-template-columns:1fr}.profile-photo-editor{flex-direction:column}.award-member-grid{max-height:260px}.gallery-lightbox{padding:10px}.gallery-lightbox-toolbar{flex-direction:column;align-items:stretch}.gallery-lightbox-actions{justify-content:flex-start}.photo-filter-tabs{gap:6px}.photo-filter-tab{flex-grow:1;flex-shrink:1;flex-basis:calc(33.333% - 6px);min-width:0;text-align:center}.crew-status-grid,.hall-of-fame-grid{grid-template-columns:1fr}.mobile-vertical-stack{flex-direction:column}}.member-chip-wrap{display:flex;flex-wrap:wrap;gap:8px}.member-chip{display:inline-flex;align-items:center;justify-content:space-between;gap:8px;min-width:120px;padding:10px 12px;border-radius:12px;border:1px solid var(--border);background:var(--bg-card);color:var(--text-secondary)}.member-chip.active{border-color:var(--accent);background:var(--accent-bg);color:var(--grape-800)}.member-chip.static{cursor:default}.member-chip-meta{font-size:11px;font-weight:700;color:var(--text-muted)}.member-chip.active .member-chip-meta{color:var(--grape-700)}.member-chip-wrap.compact .member-chip{min-width:auto;padding:8px 10px}.install-prompt-shell{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(env(safe-area-inset-bottom, 0px) + 84px);width:min(448px,calc(100vw - 24px));z-index:70}.install-prompt-card{background:rgba(255,255,255,.98);border:1px solid var(--border);border-radius:16px;box-shadow:0 18px 40px rgba(6,20,58,.18);padding:14px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.install-prompt-head{display:flex;align-items:center;gap:12px;margin-bottom:8px}.install-prompt-title{font-size:14px;font-weight:700;color:var(--grape-900);margin-bottom:0}.install-prompt-body{font-size:12px;color:var(--text-secondary);line-height:1.5}.install-prompt-steps{margin:10px 0 0 18px;color:var(--text-secondary);font-size:12px;line-height:1.6}.install-prompt-actions{display:flex;gap:8px;margin-top:12px}.install-prompt-actions .btn{flex:1 1}@media (min-width:640px){.photo-gallery-grid,.rank-board-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.photo-gallery-mosaic{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px}.member-admin-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (min-width:1024px){.rank-board-grid{grid-template-columns:repeat(5,minmax(0,1fr))}}@media (max-width:640px){.install-prompt-shell{bottom:calc(env(safe-area-inset-bottom, 0px) + 88px)}}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.btn:disabled{opacity:.6;cursor:not-allowed}.app-main{padding:12px 20px calc(82px + env(safe-area-inset-bottom, 0px))}.card{border-radius:16px;padding:13px 14px;margin-bottom:10px}.card-title{font-size:15px;line-height:1.3;margin-bottom:6px;letter-spacing:-.15px}.screen-intro{margin-bottom:12px}.screen-intro-title{font-size:20px;line-height:1.32;letter-spacing:-.35px}.screen-intro-copy{margin-top:4px;font-size:12.5px;line-height:1.45}.screen-intro-badges{margin-top:8px;gap:5px}.section-title{font-size:15px;line-height:1.3;margin-bottom:8px}.metric-grid{gap:8px;margin-bottom:12px}.metric-card{padding:11px 10px;border-radius:14px}.metric-value{font-size:20px;letter-spacing:-.35px}.metric-label{margin-top:4px;font-size:10.5px;line-height:1.25}.notice-card{border-radius:16px;padding:13px 14px}.notice-kicker{font-size:11px;margin-bottom:4px}.notice-title{font-size:14.5px;line-height:1.35}.notice-copy{margin-top:4px;font-size:12px;line-height:1.38}.badge{min-height:20px;padding:0 7px;border-radius:7px;font-size:10.5px}.btn{min-height:40px;padding:8px 14px;border-radius:12px;font-size:13.5px}.btn-sm{min-height:31px;padding:6px 9px;font-size:11.5px;border-radius:9px}.form-input,.form-select{min-height:42px;padding:9px 12px;border-radius:12px;font-size:13.5px}.form-label{margin-bottom:5px;font-size:12px}.text-sm{font-size:12.5px}.text-xs{font-size:10.5px}.mb-4{margin-bottom:12px}.gap-2{gap:6px}.gap-3{gap:10px}.quick-action-grid{gap:8px}.quick-action-card,.quick-action-grid .quick-action-card{min-height:82px;padding:12px;border-radius:14px}.quick-action-grid .quick-action-title{margin-top:8px}.quick-action-icon{width:34px;height:34px;flex-basis:34px;border-radius:10px}.quick-action-svg{width:19px;height:19px}.quick-action-title{font-size:13px}.quick-action-desc{margin-top:1px;font-size:10.5px;line-height:1.25}.landing-shell{padding:26px 24px 34px;background:#ffffff}.landing-card{max-width:420px;margin:0 auto;display:flex;flex-direction:column;min-height:calc(100dvh - 60px)}.landing-hero{flex:1 1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:26px 0 30px;margin-bottom:0}.landing-kicker{margin-bottom:5px}.landing-subtitle{color:#6b7684}.login-form-group{margin-bottom:9px}.login-help-row{margin-top:8px}.login-demo-panel{margin:22px 0 0}.landing-footer{margin-top:16px}.login-loading-overlay,.login-loading-screen{display:grid;place-items:center;padding:28px 24px;background:#ffffff}.login-loading-screen{min-height:100dvh}.login-loading-overlay{position:fixed;inset:0;z-index:120}.login-loading-card{width:min(100%,360px);display:flex;flex-direction:column;align-items:center;text-align:center}.login-loading-photo-wrap{width:min(74vw,260px);aspect-ratio:1/1;margin-top:4px;overflow:hidden;border-radius:999px;background:transparent;border:1px solid #eef1f4;box-shadow:0 18px 44px rgba(25,31,40,.12)}.login-loading-photo{width:100%;height:100%;display:block;object-fit:cover;object-position:50% 50%;animation:login-loading-photo-turn 5s linear infinite}@keyframes login-loading-photo-turn{to{transform:rotate(1turn)}}@media (prefers-reduced-motion:reduce){.login-loading-photo{animation:none}}.login-loading-copy{margin-top:18px;display:flex;flex-direction:column;gap:5px}.login-loading-copy strong{color:#191f28;font-size:22px;font-weight:900;letter-spacing:-.5px}.login-loading-copy span{color:#8b95a1;font-size:13.5px;font-weight:700;letter-spacing:-.1px}.login-loading-dots{display:inline-flex;align-items:center;gap:6px;margin-top:18px}.login-loading-dots span{width:7px;height:7px;border-radius:999px;background:var(--accent);animation:login-loading-dot 1s ease-in-out infinite}.login-loading-dots span:nth-child(2){animation-delay:.14s}.login-loading-dots span:nth-child(3){animation-delay:.28s}@keyframes login-loading-dot{0%,80%,to{opacity:.28;transform:translateY(0)}40%{opacity:1;transform:translateY(-4px)}}@media (max-width:420px){.login-loading-photo-wrap{width:min(76vw,248px)}.login-loading-copy strong{font-size:21px}}.hall-of-fame-row{padding:8px 2px;gap:10px}.hall-of-fame-medal{flex-basis:30px;height:30px;font-size:11px}.hall-of-fame-row-meta{font-size:11px}.hall-of-fame-score{font-size:12.5px}.board-page{gap:8px}.board-hero-card{margin-bottom:2px}.board-hero-card h2{font-size:20px}.board-hero-card p{font-size:12px;margin-top:2px}.board-owner-card{padding:10px 12px;border-radius:14px;margin-bottom:4px}.board-owner-avatar{width:34px;height:34px;flex-basis:34px;font-size:20px}.board-owner-title{font-size:13.5px}.board-owner-copy,.board-owner-meta{margin-top:4px}.grape-progress-card{padding:12px 14px;border-radius:16px}.grape-progress-topline strong{font-size:22px}.grape-progress-help,.grape-progress-kicker{font-size:11px}.grape-progress-rail{height:7px;margin-top:9px}.grape-progress-badges{margin-top:8px;gap:5px}.sticker-tray{padding:12px;border-radius:16px}.sticker-tray-header{font-size:14px;margin-bottom:8px}.sticker-tray-label{margin-bottom:6px;font-size:10.5px}.tray-sticker{padding:7px 9px;border-color:#e6dcf7;border-radius:12px}.tray-sticker-emoji{font-size:19px}.grape-stage-card{border-radius:16px}.grape-stage-header{padding:12px 14px 0}.grape-stage-title{font-size:15px}.grape-stage-header p{font-size:11px;margin-top:3px}.grape-stage-header>span{height:24px;padding:0 8px;font-size:10.5px}.grape-cluster-wrap{padding:8px 0 12px}.profile-photo-editor{gap:12px}.profile-photo-empty,.profile-photo-preview{width:72px;height:72px}.file-picker-button{min-height:36px;padding:0 12px;font-size:12px}.attendance-compact-filter{padding:10px 12px!important}.attendance-member-row{padding:9px 11px!important}.attendance-member-row .badge{min-height:19px}.attendance-schedule-card{padding:12px!important}.attendance-inline-admin{margin-top:10px!important;padding:10px!important;background:var(--bg-muted);border-color:var(--border-light)}.attendance-record-row{gap:6px;padding:6px 0;border-top:1px solid var(--border-light)}.attendance-record-row:first-child{border-top:0}.attendance-record-actions{gap:5px!important}.attendance-record-actions .form-select{width:auto;min-width:94px!important;min-height:31px;padding:5px 8px;font-size:11.5px;border-radius:9px}@media (max-width:420px){.app-main{padding:10px 20px calc(82px + env(safe-area-inset-bottom, 0px))}.card,.sticker-tray{padding:12px;border-radius:15px}.screen-intro-title{font-size:20px}.metric-card{padding:10px 9px}.metric-value{font-size:19px}.bottom-nav{min-height:62px;padding:6px 6px calc(env(safe-area-inset-bottom) + 6px)}.bottom-nav-icon{width:23px;height:23px}}.app-header{min-height:52px;padding:7px 14px 7px 18px}.app-header h1{font-size:14px;letter-spacing:-.2px}.crew-brand-mark-header{width:26px;height:26px;border-radius:8px}.app-header-profile{max-width:42%;padding:3px 9px 3px 3px}.app-header-profile-name{font-size:12.5px}.bottom-nav{min-height:60px;padding:6px 6px calc(env(safe-area-inset-bottom, 0px) + 6px)}.bottom-nav-item{font-size:10px}:root{--brand-shadow:0 1px 2px rgba(17,24,39,.03)}.app-main{padding-top:14px}.board-hero-card h2,.screen-intro-title{font-size:21px;font-weight:800;line-height:1.32;letter-spacing:-.4px}.board-hero-card p,.screen-intro-copy,.section-subtitle{font-size:13px;color:#8B95A1;line-height:1.45}.card,.crew-metric-card,.gallery-lightbox-card,.hall-of-fame-card,.member-selector-card,.note-card,.notice-card,.photo-upload-preview,.rank-column,.rank-member-card,.tray-sticker{box-shadow:var(--brand-shadow)!important}.card{border-color:#F1F3F5}.form-group{margin-bottom:12px}.card .text-sm.font-bold,.form-label,.login-form-title+.form-group .form-label{font-size:13px;font-weight:600;color:#4E5968}.form-input,.form-select,textarea.form-input{min-height:48px;border-radius:12px;padding:0 14px;font-size:14.5px;border-color:#E5E8EB}textarea.form-input{padding-top:11px;padding-bottom:11px;line-height:1.45}.schedule-card-head{gap:10px}.schedule-date-tile{flex-basis:42px;width:42px;height:48px;border-radius:12px}.schedule-date-tile strong{font-size:18px}.schedule-date-tile span{font-size:10px}.photo-filter-tabs{gap:4px;padding:4px;border-radius:14px;background:#EEF0F3;margin-bottom:10px}.photo-filter-tab{min-height:32px;padding:7px 9px;border-radius:10px;font-size:11.5px;font-weight:700}.photo-gallery-grid{gap:10px}.gallery-card-image{height:168px;border-radius:12px;border-color:#EDF1F7}.gallery-card-image-button{border-radius:12px}.gallery-preview-image{max-height:220px;border-radius:12px}.photo-upload-preview{border-radius:12px}.gallery-lightbox-footer,.gallery-lightbox-toolbar{padding:12px 14px}.gallery-lightbox-title{font-size:14px;font-weight:700}.gallery-lightbox-subtitle{font-size:11px}.crew-status-grid,.member-admin-grid,.rank-board-grid{gap:10px}.crew-status-message{min-height:auto;padding:9px 11px;font-size:12px;line-height:1.42;margin-bottom:9px}.crew-metric-grid{gap:6px;margin-bottom:8px}.crew-metric-card{padding:8px 9px;border-radius:11px}.crew-metric-value{font-size:16px}.crew-metric-label{font-size:10.5px}.rank-column{padding:10px;border-radius:12px;min-height:88px}.rank-column-header{margin-bottom:8px}.rank-member-card{padding:8px 10px;border-radius:11px}.rank-member-main{gap:8px}.rank-member-name{font-size:12.5px}.rank-member-meta,.rank-member-real-name{font-size:10.5px}.award-member-grid{gap:6px;max-height:248px}.award-member-option{padding:8px 10px;border-radius:12px;gap:8px}.award-member-option-name{font-size:13px}.award-member-option-meta{font-size:11px}.award-attendee-list{gap:6px}.award-attendee-pill{gap:6px;padding:5px 8px;font-size:11px}.member-selector-card{min-width:116px;padding:8px 10px;border-radius:11px}.member-chip-wrap{gap:6px}.member-chip{min-height:30px;padding:0 10px;font-size:11.5px}.member-chip-wrap.compact .member-chip{min-height:26px;padding:0 8px;font-size:10.5px}.grape-progress-card,.grape-stage-card,.sticker-tray{margin-bottom:8px}.admin-metric-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.admin-metric-grid .metric-card{padding:10px 8px}.admin-metric-grid .metric-value{font-size:19px}.card .card{padding:12px;border-radius:14px;margin-bottom:10px;background:#FBFCFD}@media (max-width:420px){.photo-gallery-grid{gap:9px}.gallery-card-image{height:156px}.award-member-grid{max-height:230px}}.mentoring-page{min-width:0}.mentoring-intro{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.mentoring-view-tabs{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:4px;gap:4px;padding:4px;margin-bottom:12px;border-radius:14px;background:#eef0f3}.mentoring-view-tabs button{min-height:38px;border-radius:10px;color:#697585;font-size:13px;font-weight:800}.mentoring-view-tabs button.active{background:#fff;color:var(--text-primary);box-shadow:0 1px 3px rgba(15,23,42,.1)}.mentoring-primary-actions{display:flex;justify-content:flex-end;margin-bottom:10px}.mentoring-primary-actions .btn{width:100%}.mentoring-form-card{background:#fbfcfd;border-color:#e7ebef}.mentoring-section-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.mentoring-empty-state p,.mentoring-field-help,.mentoring-section-head p{color:var(--text-muted);font-size:12px;line-height:1.45}.mentoring-form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:10px;gap:10px}.mentoring-form-grid .form-group{min-width:0}.mentoring-optional{color:var(--text-muted);font-size:11px;font-weight:500}.mentoring-active-toggle{display:flex;align-items:center;gap:9px;min-height:44px;margin:-2px 0 10px;color:var(--text-secondary);font-size:13px;font-weight:700}.mentoring-active-toggle input{width:18px;height:18px;accent-color:var(--accent)}.mentoring-class-card{position:relative;overflow:hidden}.mentoring-class-card:before{content:"";position:absolute;inset:0 auto 0 0;width:3px;background:var(--warning)}.mentoring-class-card.mentoring-status-completed:before{background:var(--success)}.mentoring-class-card.mentoring-status-cancelled:before{background:var(--text-faint)}.mentoring-action-row,.mentoring-attendance-row,.mentoring-card-topline,.mentoring-instructor-stats{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.mentoring-card-topline{justify-content:space-between;margin-bottom:8px}.mentoring-reward-label{color:var(--grape-700);font-size:11px;font-weight:800}.mentoring-class-card>h3,.mentoring-instructor-card h3{color:var(--text-primary);font-size:16px;font-weight:850;line-height:1.35;letter-spacing:-.25px}.mentoring-instructor-profile-head,.mentoring-instructor-row{display:flex;align-items:center;gap:10px;margin-top:10px}.mentoring-instructor-profile-head>div,.mentoring-instructor-row>div{min-width:0}.mentoring-instructor-row strong{display:block;font-size:13px}.mentoring-instructor-row span{display:block;margin-top:2px;overflow:hidden;color:var(--text-muted);font-size:11px;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.mentoring-description{margin-top:12px;color:var(--text-secondary);font-size:13px;line-height:1.55;white-space:pre-wrap}.mentoring-meta-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:8px;gap:8px;margin-top:12px}.mentoring-meta-grid>div{min-width:0;padding:10px;border-radius:12px;background:var(--bg-muted)}.mentoring-meta-grid span,.mentoring-profile-block span,.mentoring-schedule-panel span{display:block;color:var(--text-muted);font-size:10.5px;font-weight:800}.mentoring-meta-grid strong{display:block;margin-top:4px;color:var(--text-primary);font-size:12px;line-height:1.4}.mentoring-schedule-panel{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px;padding:11px;border:1px solid #dbe8fa;border-radius:13px;background:#f4f8fe}.mentoring-schedule-panel>div{min-width:0}.mentoring-schedule-panel strong{display:block;margin-top:3px;font-size:12.5px}.mentoring-schedule-panel p{margin-top:3px;color:var(--text-muted);font-size:11px;line-height:1.35}.mentoring-attendance-row{margin-top:10px;color:var(--text-secondary);font-size:11px}.mentoring-attendance-label{flex:1 0 100%;color:var(--text-muted);font-size:10.5px}.mentoring-attendance-row span{padding:5px 8px;border-radius:999px;background:var(--bg-soft)}.mentoring-gallery-link-row{display:flex;justify-content:flex-end;margin-top:10px}.mentoring-action-row{justify-content:flex-end;margin-top:12px;padding-top:10px;border-top:1px solid var(--border-light)}.mentoring-complete-button{flex:1 1 190px}.mentoring-instructor-list{display:flex;flex-direction:column;gap:0}.mentoring-instructor-profile-head{align-items:flex-start;margin-top:0}.mentoring-instructor-profile-head p{margin-top:3px;color:var(--text-secondary);font-size:12.5px;line-height:1.45}.mentoring-profile-block{margin-top:12px;padding-top:10px;border-top:1px solid var(--border-light)}.mentoring-profile-block p{margin-top:4px;color:var(--text-secondary);font-size:12.5px;line-height:1.5;white-space:pre-wrap}.mentoring-instructor-stats{margin-top:12px;color:var(--text-secondary);font-size:11.5px}.mentoring-instructor-stats span{padding:6px 9px;border-radius:9px;background:var(--accent-bg)}.mentoring-empty-state{padding:24px 16px;text-align:center}.mentoring-empty-state strong{display:block;margin-bottom:5px;font-size:14px}@media (max-width:420px){.mentoring-action-row{align-items:stretch}.mentoring-action-row .btn{flex:1 1 auto}.mentoring-form-grid,.mentoring-meta-grid{grid-template-columns:1fr}.mentoring-schedule-panel{align-items:stretch;flex-direction:column}.mentoring-schedule-panel .btn{width:100%}.bottom-nav-item{font-size:9.5px}.bottom-nav-svg{width:21px;height:21px}}.cheer-hero{background:var(--bg-card);border:1px solid var(--border-light);border-radius:20px;box-shadow:var(--brand-shadow);margin-bottom:12px;padding:22px 18px 18px;text-align:center}.cheer-hero-eyebrow{color:var(--accent);font-size:11px;font-weight:800;letter-spacing:.2px;margin-bottom:12px}.cheer-hero-avatar{display:flex;justify-content:center;margin-bottom:12px}.cheer-hero-cover{border-radius:16px;display:block;margin:0 auto 14px;max-height:320px;max-width:100%;object-fit:cover}.cheer-hero-emoji{align-items:center;background:var(--accent-bg);border-radius:50%;display:flex;font-size:38px;height:76px;justify-content:center;width:76px}.cheer-hero-title{color:var(--text-primary);font-size:20px;font-weight:800;letter-spacing:-.4px;line-height:1.32;margin:0 0 6px}.cheer-hero-headline{color:var(--text-secondary);font-size:13.5px;font-weight:600;line-height:1.45;margin:0}.cheer-hero-body{color:var(--text-muted);font-size:12.5px;line-height:1.55;margin:10px 0 0;white-space:pre-wrap}.cheer-hero-chips{display:flex;flex-wrap:wrap;gap:6px;justify-content:center;margin-top:14px}.cheer-sticker-row{display:grid;grid-gap:6px;gap:6px;grid-template-columns:repeat(4,1fr)}.cheer-sticker{align-items:center;background:var(--bg-muted);border:1px solid var(--border-light);border-radius:12px;cursor:pointer;display:flex;font-size:19px;height:42px;justify-content:center;transition:background .15s ease,border-color .15s ease,transform .1s ease;width:100%}.cheer-sticker:active{transform:scale(.94)}.cheer-sticker.active{background:var(--accent-bg);border-color:var(--accent)}.cheer-message-list{display:flex;flex-direction:column;gap:8px}.cheer-message-card{background:var(--bg-card);border:1px solid var(--border-light);border-radius:16px;box-shadow:var(--brand-shadow);display:flex;gap:10px;padding:13px 14px}.cheer-message-card.mine{border-color:var(--accent)}.cheer-message-sticker{align-items:center;background:var(--bg-soft);border-radius:12px;display:flex;flex:0 0 auto;font-size:20px;height:40px;justify-content:center;width:40px}.cheer-message-body{flex:1 1;min-width:0}.cheer-message-head{align-items:center;display:flex;gap:7px}.cheer-message-name{color:var(--text-primary);font-size:13px;font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cheer-message-text{color:var(--text-secondary);font-size:13.5px;line-height:1.55;margin:7px 0 0;white-space:pre-wrap;word-break:break-word}.cheer-message-actions{display:flex;gap:12px;margin-top:8px}.cheer-message-actions .link-button{font-size:12px}.cheer-list-card{align-items:center;display:flex;gap:12px;text-decoration:none}.cheer-list-emoji{align-items:center;background:var(--accent-bg);border-radius:14px;display:flex;flex:0 0 auto;font-size:22px;height:46px;justify-content:center;width:46px}.cheer-list-body{flex:1 1;min-width:0}.cheer-list-title{color:var(--text-primary);font-size:14px;font-weight:700;margin-bottom:2px}.cheer-entry-card{align-items:center;display:flex;gap:12px;text-decoration:none}.cheer-entry-body{flex:1 1;min-width:0}.cheer-entry-title{color:var(--text-primary);font-size:14px;font-weight:800;margin-bottom:2px}.cheer-entry-arrow{color:var(--text-faint);flex:0 0 auto;font-size:18px}.keepchilling-ad{display:flex;position:relative;align-items:center;justify-content:space-between;min-height:154px;padding:12px 15px 12px 18px;overflow:hidden;border:1px solid #eae8e5;border-radius:16px;background:#fff;color:#191f28;text-decoration:none}.keepchilling-ad:focus-visible{outline:2px solid var(--accent);outline-offset:3px}.keepchilling-ad-copy{display:flex;flex-direction:column;align-items:flex-start;gap:8px;min-width:0;position:relative;z-index:1}.keepchilling-ad-meta{display:flex;align-items:center;gap:7px;color:#6b7684;font-size:11px;font-weight:700;letter-spacing:.01em}.keepchilling-ad-label{padding:2px 5px;border:1px solid #d9dee3;border-radius:4px;color:#6b7684;font-size:10px;line-height:1.2}.keepchilling-ad-title{max-width:185px;font-size:17px;line-height:1.32;letter-spacing:-.35px;word-break:keep-all}.keepchilling-ad-link{color:#1766c7;font-size:12px;font-weight:700}.keepchilling-ad-image{display:block;flex:0 0 auto;width:auto;height:128px;object-fit:contain}@media (max-width:480px){.keepchilling-ad{min-height:144px;padding:10px 11px 10px 15px}.keepchilling-ad-title{max-width:155px;font-size:15px}.keepchilling-ad-image{height:122px}}