@import"https://fonts.googleapis.com/css2?family=Outfit:wght@400;500;600;700;800&family=DM+Sans:wght@400;500;700&display=swap";:root{--bg: #f4f7fb;--bg-soft: #eef3fa;--text: #162033;--muted: #64738d;--card-bg: #ffffff;--card-bg-strong: #f7faff;--primary: #3f78b5;--primary-dark: #316398;--primary-soft: #ddeafb;--accent: #d5964a;--border: #d9e3f0;--input-bg: #f8fbff;--input-focus-bg: #ffffff;--danger: #cc5b5b;--danger-bg: #fdeaea;--warning: #cf7600;--success: #14996b;--absent: #c64f4f;--shadow: 0 12px 30px rgba(23, 39, 69, .08);--card-shadow: 0 8px 22px rgba(17, 31, 57, .09);--table-bg: #ffffff;--table-header-bg: #edf4fc;--table-row-bg: #f7faff;--navbar-bg: rgba(255, 255, 255, .9);--navbar-text: #162033;--navbar-logo: #0d6e9b;--navbar-hover-bg: #e9f2fc;--navbar-hover-text: #0b5d85}.dark{--bg: #0f1726;--bg-soft: #151f31;--text: #e4edf8;--muted: #95a5bd;--card-bg: #192438;--card-bg-strong: #1f2c43;--primary: #78addf;--primary-dark: #669ace;--primary-soft: #2a4059;--accent: #dda968;--border: #2b3951;--input-bg: #1a2840;--input-focus-bg: #20304c;--danger: #e07f7f;--danger-bg: #4d2f35;--warning: #f3a544;--success: #59d7a5;--absent: #e17676;--shadow: 0 12px 30px rgba(3, 8, 19, .45);--card-shadow: 0 8px 22px rgba(2, 10, 28, .5);--table-bg: #18243a;--table-header-bg: #223250;--table-row-bg: #1b2a44;--navbar-bg: rgba(14, 22, 37, .85);--navbar-text: #e4edf8;--navbar-logo: #8dd0ec;--navbar-hover-bg: #20304a;--navbar-hover-text: #b5e2f5}*,*:before,*:after{box-sizing:border-box}html,body,#root{min-height:100%;margin:0;padding:0}html{scroll-behavior:smooth}body{min-width:320px;background:radial-gradient(circle at 10% 10%,rgba(63,120,181,.13),transparent 28%),radial-gradient(circle at 90% 5%,rgba(213,150,74,.12),transparent 24%),linear-gradient(160deg,var(--bg) 0%,var(--bg-soft) 100%);color:var(--text);font-family:DM Sans,Segoe UI,sans-serif;line-height:1.5}#root{width:100%}h1,h2,h3,h4,h5,h6{margin:0;font-family:Outfit,Segoe UI,sans-serif;letter-spacing:-.02em;color:var(--text)}p{margin:0}a{color:var(--primary);text-decoration:none}a:hover{color:var(--primary-dark)}input,select,button,textarea{font:inherit}button{border-radius:12px;border:1px solid transparent;background:var(--card-bg-strong);color:var(--text);cursor:pointer;transition:.18s ease}button:hover:not(:disabled){transform:translateY(-1px)}button:disabled{opacity:.55;cursor:not-allowed}:focus-visible{outline:3px solid rgba(63,120,181,.45);outline-offset:2px}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}.alert-modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#060e1a8c;z-index:2100;display:grid;place-items:center;padding:16px}.alert-modal-card{width:min(420px,100%);border-radius:18px;border:1px solid var(--border);background:var(--card-bg);box-shadow:var(--shadow);padding:22px 18px 16px;text-align:center;animation:alert-modal-pop .2s ease-out}@keyframes alert-modal-pop{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.alert-modal-title{font-size:1.18rem;margin-bottom:9px}.alert-modal-message{color:var(--text);margin-bottom:16px}.alert-modal-actions{display:flex;justify-content:center;gap:8px}.alert-modal-close{min-height:38px;border-radius:10px;border:0;padding:8px 16px;background:var(--primary);color:#fff;font-weight:700}.alert-modal-close-secondary{background:#7f8aa0}.login-page{display:grid;grid-template-columns:1.1fr 1fr;min-height:100vh;width:100%}.login-brand-section{position:relative;display:flex;align-items:center;justify-content:center;padding:32px;background:linear-gradient(145deg,#4f85bf,#3f76af 45%,#326297);overflow:hidden}.login-brand-section:before,.login-brand-section:after{content:"";position:absolute;border-radius:999px;opacity:.28}.login-brand-section:before{width:320px;height:320px;background:#8fd8ff;top:-130px;left:-90px}.login-brand-section:after{width:260px;height:260px;background:#f4bf7e;right:-95px;bottom:-90px}.brand-content{position:relative;z-index:1;width:min(520px,100%);color:#fff}.brand-title{font-size:clamp(2.2rem,4vw,3.3rem);font-weight:800;margin-bottom:12px;color:#fff}.brand-subtitle{color:#ffffffe0;font-size:1.03rem;max-width:360px}.login-container{display:flex;align-items:center;justify-content:center;padding:30px}.login-form{width:min(460px,100%);background:var(--card-bg);border-radius:22px;box-shadow:var(--card-shadow);border:1px solid var(--border);padding:34px 30px 28px}.login-title{text-align:center;margin-bottom:20px;font-size:1.75rem}.login-form-inputs{display:flex;flex-direction:column;gap:12px;margin-bottom:18px}.login-input{width:100%;border:1px solid var(--border);background:var(--input-bg);color:var(--text);border-radius:12px;padding:12px 13px;outline:none;transition:border-color .15s,box-shadow .15s,background .15s}.login-input:focus{border-color:var(--primary);background:var(--input-focus-bg);box-shadow:0 0 0 4px #4e79a72e}.login-button{width:100%;min-height:46px;border:0;background:var(--primary);color:#fff;font-weight:700;border-radius:12px;display:inline-flex;align-items:center;justify-content:center}.login-divider{display:flex;align-items:center;margin:8px 0 14px;gap:10px}.login-divider:before,.login-divider:after{content:"";flex:1;height:1px;background:var(--border)}.login-divider span{color:var(--muted);font-size:.85rem}.google-login-button{width:100%;padding:11px 14px;border:1px solid var(--border);border-radius:12px;background:var(--card-bg-strong);color:var(--text);display:flex;align-items:center;justify-content:center;gap:10px;font-weight:600}.google-login-button:hover:not(:disabled){background:var(--navbar-hover-bg)}.google-icon{width:19px;height:19px}.register-login-link,.legal-links{text-align:center}.register-login-link{margin-top:18px;color:var(--muted);font-size:.9rem}.register-login-link a{font-weight:700}.legal-links{margin-top:8px;color:var(--muted);font-size:.82rem}.legal-links a{color:var(--muted)}.legal-sep{margin:0 8px}.login-service-intro{margin-top:16px;padding:14px 14px 12px;border-radius:12px;background:var(--card-bg-strong);border:1px solid var(--border)}.login-service-intro h3{font-size:.98rem;margin:0 0 6px}.login-service-intro p{margin:0;font-size:.88rem;color:var(--muted)}.login-service-intro ul{margin:8px 0 0 16px;padding:0;color:var(--muted);font-size:.84rem}.login-service-intro li{margin-bottom:3px}.loading-container{width:100%;min-height:240px;display:grid;place-items:center;text-align:center;color:var(--muted)}.loading-spinner{width:20px;height:20px;border-radius:50%;border:2px solid rgba(78,121,167,.2);border-top-color:var(--primary);animation:spin .7s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width: 900px){.login-page{grid-template-columns:1fr}.login-brand-section{min-height:220px;padding:24px 20px}.brand-content{text-align:center}.brand-subtitle{margin:0 auto}.login-container{padding:20px 16px 28px}}.register-form{width:min(520px,100%);max-height:calc(100vh - 46px);overflow-y:auto}.register-section{margin-bottom:14px;padding:12px;border-radius:14px;border:1px solid var(--border);background:var(--table-row-bg)}.register-approval-notice{margin-bottom:14px;padding:12px 13px;border-radius:12px;border:1px solid color-mix(in srgb,var(--danger) 35%,var(--border));background:color-mix(in srgb,var(--danger-bg) 60%,white 40%);color:var(--text);font-size:.86rem}.register-approval-title{margin:0 0 8px;font-weight:800;color:var(--danger)}.register-approval-list{margin:0;padding-left:18px;display:grid;gap:5px}.register-approval-list li{line-height:1.38}.register-section-title{font-size:.88rem;text-transform:uppercase;letter-spacing:.06em;color:var(--muted);margin:0 0 10px}.club-code-input-wrapper{display:grid;grid-template-columns:1fr auto;gap:8px}.email-verify-row{display:grid;grid-template-columns:auto 1fr auto;gap:8px;margin-top:8px}.email-code-input{margin-bottom:0}.email-verified-text{margin:8px 2px 0;font-size:.84rem;color:var(--primary);font-weight:700}.random-code-button{border:1px solid var(--primary);background:transparent;color:var(--primary);border-radius:12px;font-weight:700;padding:0 14px}.random-code-button:hover:not(:disabled){color:#fff;background:var(--primary)}.consent-section{padding:10px 12px;border:1px dashed var(--border);border-radius:12px;background:var(--card-bg-strong);display:grid;gap:9px}.consent-item{display:flex;align-items:center;gap:8px;font-size:.9rem;color:var(--text)}.consent-item input[type=checkbox]{width:15px;height:15px}@media (max-width: 900px){.register-form{max-height:none}}@media (max-width: 600px){.club-code-input-wrapper,.email-verify-row{grid-template-columns:1fr}.random-code-button{padding:10px 12px}}.google-consent-form{max-width:500px}.google-consent-lead{margin:0 0 14px;color:#4b5563;line-height:1.6;font-size:.95rem;text-align:left}.google-consent-note{margin-bottom:18px;padding:14px 14px 10px;border-radius:10px;background:#f8fafc;border:1px solid #e5e7eb;color:#374151}.google-consent-note strong{display:block;margin-bottom:8px;font-size:.9rem}.google-consent-note ul{margin:0;padding-left:18px}.google-consent-note li{margin-bottom:4px;font-size:.88rem;line-height:1.45}.google-consent-links{margin-top:14px}@media (max-width: 768px){.google-consent-form{max-width:none}.google-consent-lead{font-size:.92rem}}.policy-page{min-height:100vh;background:#f5f7fb;padding:2rem 1rem;display:flex;justify-content:center}.policy-card{width:100%;max-width:860px;background:#fff;border-radius:14px;padding:2rem;box-shadow:0 8px 24px #0f172a14;color:#1f2937}.policy-card h1{margin:0 0 .5rem;font-size:1.8rem}.policy-date{color:#6b7280;font-size:.9rem;margin-bottom:1.5rem}.policy-card h2{font-size:1.1rem;margin:1.2rem 0 .4rem}.policy-card p{margin:0;line-height:1.6}.policy-card ol{margin:.4rem 0 0 1.2rem;padding:0}.policy-card li{margin-bottom:.35rem;line-height:1.6}.policy-table{width:100%;border-collapse:collapse;margin-top:.6rem;font-size:.92rem}.policy-table th,.policy-table td{border:1px solid #dbe1ea;padding:.55rem .6rem;text-align:left;vertical-align:top}.policy-table th{background:#f3f6fb;font-weight:700}.policy-actions{margin-top:2rem;display:flex;gap:1rem;flex-wrap:wrap}.policy-actions a{color:#2563eb;text-decoration:none;font-weight:600}.policy-actions a:hover{text-decoration:underline}.policy-back-button{border:1px solid #d1d5db;background:#fff;color:#374151;padding:.45rem .8rem;border-radius:8px;font-weight:500;font-size:.92rem;cursor:pointer}.policy-back-button:hover{background:#f9fafb;border-color:#9ca3af}.policy-top-back{margin-bottom:.75rem}.userpage-section{padding:24px 16px 30px;min-height:calc(100vh - 80px);width:100%;max-width:1360px;margin:0 auto}.club-select-section{background:var(--card-bg);border:1px solid var(--border);box-shadow:var(--card-shadow);border-radius:18px;padding:16px;display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center}.club-select-label{color:var(--text);font-size:.9rem;font-weight:700;white-space:nowrap}.club-select-dropdown{padding:11px 12px;border-radius:12px;border:1px solid var(--border);background:var(--input-bg);color:var(--text);min-width:160px}.startQR-button{border:0;padding:11px 18px;border-radius:12px;background:var(--primary);color:#fff;font-weight:700;white-space:nowrap}.user-summary-grid{margin-top:12px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.summary-card{border:1px solid var(--border);background:var(--card-bg);box-shadow:var(--card-shadow);border-radius:14px;padding:12px;display:grid;gap:6px}.summary-label{color:var(--muted);font-size:.8rem;font-weight:700}.summary-value{color:var(--text);font-size:1rem;font-weight:800;line-height:1.3}.user-tabs{margin-top:12px;display:grid;grid-template-columns:1fr 1fr;gap:8px}.user-tab-btn{border:1px solid var(--border);background:var(--card-bg);color:var(--text);border-radius:10px;min-height:38px;padding:8px 12px;font-weight:700}.user-tab-btn.active{background:var(--primary);border-color:var(--primary);color:#fff}.user-content-grid{margin-top:12px;display:grid;grid-template-columns:1fr;gap:12px}.schedule-section,.attendance-section{margin:0;background:var(--card-bg);border:1px solid var(--border);border-radius:18px;box-shadow:var(--card-shadow);padding:16px}.schedule-section h2,.attendance-section h2{margin:0 0 12px;font-size:1.05rem}.panel-hidden{display:none}.schedule-list{display:grid;gap:10px}.schedule-card{border:1px solid var(--border);border-radius:12px;padding:10px;background:var(--table-row-bg)}.schedule-card-head{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}.schedule-date{color:var(--muted);font-size:.84rem;white-space:nowrap}.schedule-desc{margin:8px 0 0;color:var(--text);line-height:1.4;white-space:pre-wrap}.empty-message{margin:0;color:var(--muted)}.attendance-table-wrapper{overflow-x:auto}.attendance-table{width:100%;min-width:0;border-collapse:collapse;background:var(--table-bg);border-radius:12px;overflow:hidden;table-layout:fixed}.attendance-table th,.attendance-table td{padding:12px 6px;border-bottom:1px solid var(--border);text-align:center;word-break:keep-all}.attendance-table th{background:var(--table-header-bg);color:var(--muted);font-size:.82rem;text-transform:uppercase;letter-spacing:.05em}.attendance-table td{background:var(--table-row-bg);color:var(--text);font-weight:600}.status.present{color:var(--success)}.status.absent{color:var(--absent)}.empty-row{color:var(--muted)}@media (min-width: 1100px){.user-tabs{display:none}.user-content-grid{grid-template-columns:1fr 1.15fr;align-items:start}.panel-hidden{display:block}}@media (max-width: 900px){.user-summary-grid{grid-template-columns:1fr}.schedule-card-head{flex-direction:column;align-items:flex-start}.schedule-date{white-space:normal}}@media (max-width: 760px){.userpage-section{padding:16px 10px 22px}.club-select-section{grid-template-columns:1fr;gap:10px;padding:14px 12px}.club-select-dropdown,.startQR-button{width:100%}.schedule-section,.attendance-section{padding:14px 10px}.attendance-table{table-layout:fixed}.attendance-table th,.attendance-table td{font-size:.86rem;padding:10px 4px}}.leader-page{width:min(1360px,calc(100% - 24px));margin:0 auto;box-sizing:border-box;padding:20px 0 28px;display:flex;flex-direction:column;gap:14px}.leader-main-grid{display:grid;grid-template-columns:minmax(320px,420px) 1fr;gap:14px;align-items:start}.leader-column-left .schedule-panel{margin-top:0}.leader-column-right{display:flex;flex-direction:column;gap:14px;min-width:0}.leader-header-card{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--card-bg);border:1px solid var(--border);border-radius:18px;box-shadow:var(--card-shadow);padding:18px;position:relative}.leader-header-left{flex:1}.leader-date-label{font-size:.8rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);margin-bottom:9px}.leader-date-controls{display:flex;align-items:center;flex-wrap:wrap;gap:8px}.date-selection-wrapper{display:flex;align-items:center;gap:8px;position:relative}.calendar-toggle-btn{border:0;background:transparent;color:var(--text);width:38px;height:38px;border-radius:10px;padding:0;display:grid;place-items:center;font-size:1rem}.leader-date-value{position:relative;display:flex;align-items:center;gap:6px;padding:8px 10px;min-height:38px;border:1px solid var(--border);border-radius:10px;background:var(--input-bg);color:var(--text);font-weight:600}.dropdown-btn{border:0;background:transparent;color:var(--muted);border-radius:8px;padding:2px 4px}.all-attendance-btn,.today-btn,.leader-qr-btn,.download-excel-btn,.delete-all-attendance-btn,.save-attendance-btn,.edit-attendance-btn,.delete-attendance-btn,.attendance-status-btn{border:0;min-height:38px;border-radius:10px;padding:9px 14px;font-size:.87rem;font-weight:700}.all-attendance-btn,.today-btn{background:var(--card-bg-strong);border:1px solid var(--border);color:var(--text)}.today-btn:disabled{opacity:.45}.leader-qr-btn,.download-excel-btn,.save-attendance-btn,.edit-attendance-btn{background:var(--primary);color:#fff}.delete-all-attendance-btn,.delete-attendance-btn{background:var(--danger);color:#fff}.date-dropdown{position:absolute;top:calc(100% + 7px);left:0;z-index:14;min-width:160px;max-height:250px;overflow-y:auto;border:1px solid var(--border);border-radius:12px;background:var(--card-bg);box-shadow:var(--card-shadow)}.date-dropdown-empty,.date-dropdown-item{padding:10px 12px;font-size:.9rem}.date-dropdown-empty{color:var(--muted)}.date-dropdown-item{cursor:pointer}.date-dropdown-item:hover,.date-dropdown-item.selected{background:var(--navbar-hover-bg)}.inline-calendar-container{position:absolute;top:-4px;right:calc(100% + 12px);z-index:20;animation:calendar-slide-left .2s ease-out}.inline-calendar-container.closing{animation:calendar-slide-right .2s ease-in forwards}@keyframes calendar-slide-left{0%{opacity:0;transform:translate(8px)}to{opacity:1;transform:translate(0)}}@keyframes calendar-slide-right{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(12px)}}.attendance-section{background:var(--card-bg);border:1px solid var(--border);border-radius:18px;box-shadow:var(--card-shadow);padding:16px}.attendance-table-wrap{overflow:auto}.attendance-topbar{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;gap:10px}.attendance-topbar-actions{display:flex;align-items:center;gap:8px}.attendance-title{margin:0;font-size:1.1rem}.attendance-message{text-align:center;padding:25px 10px;color:var(--muted)}.attendance-message.error{color:var(--danger)}.attendance-table{width:100%;border-collapse:collapse;overflow:hidden;border-radius:12px;background:var(--table-bg)}.attendance-table th,.attendance-table td{padding:11px 8px;border-bottom:1px solid var(--border);text-align:center}.attendance-table th{background:var(--table-header-bg);color:var(--muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.05em}.attendance-table td{background:var(--table-row-bg);color:var(--text)}.status-badge{display:inline-flex;align-items:center;gap:6px;font-weight:700;font-size:.9rem}.status-badge.present{color:var(--success)}.status-badge.absent{color:var(--absent)}.attendance-status-btn{min-width:84px}.attendance-status-btn.present{background:#5f9b86;color:#fff}.attendance-status-btn.absent{background:#c95a5a;color:#fff}.attendance-status-btn.muted{background:var(--card-bg-strong);color:var(--muted);border:1px solid var(--border)}.qr-modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#040d188c;z-index:1500;display:grid;place-items:center;padding:16px}.qr-modal-card{width:min(420px,100%);background:var(--card-bg);border-radius:18px;border:1px solid var(--border);box-shadow:var(--shadow);padding:20px 20px 16px;display:flex;flex-direction:column;align-items:center;position:relative}.qr-close-btn{position:absolute;top:6px;right:8px;border:0;background:transparent;color:var(--muted);font-size:1.6rem;line-height:1}.qr-label{text-align:center;margin:8px 0 14px;font-weight:600}.code-attendance-btn{margin-top:18px;background:#b98b58;color:#fff;font-size:1rem;font-weight:700;border:0;border-radius:10px;padding:10px 16px}.fixed-attendance-code{margin:18px 0;font-family:Outfit,Segoe UI,sans-serif;font-size:clamp(2rem,10vw,2.8rem);font-weight:800;letter-spacing:.09em;color:var(--accent)}@media (max-width: 880px){.leader-page{width:calc(100% - 16px)}.leader-main-grid{grid-template-columns:1fr}.leader-header-card{flex-direction:column;align-items:stretch}.leader-qr-btn{width:100%}.inline-calendar-container{right:0;top:calc(100% + 8px)}.attendance-topbar{flex-direction:column;align-items:stretch}.attendance-topbar-actions{width:100%;flex-wrap:wrap}.attendance-topbar-actions button{flex:1}}.calendar-container{background:var(--card-bg);border:1px solid var(--border);border-radius:14px;box-shadow:var(--card-shadow);padding:12px;width:300px}.calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.calendar-month-year{font-size:.94rem;font-weight:700;color:var(--text)}.calendar-nav-btn{border:1px solid var(--border);background:var(--card-bg-strong);color:var(--text);width:31px;height:31px;border-radius:9px;padding:0}.calendar-weekdays,.calendar-days{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.calendar-weekdays{margin-bottom:6px}.calendar-weekday{text-align:center;font-size:.74rem;color:var(--muted);font-weight:700}.calendar-day{aspect-ratio:1;border-radius:9px;display:grid;place-items:center;font-size:.84rem;position:relative;cursor:pointer}.calendar-day:hover{background:var(--navbar-hover-bg)}.calendar-day.other-month{color:#95a2b7;opacity:.45}.calendar-day.today{border:1px solid var(--primary)}.calendar-day.selected{background:var(--primary);color:#fff;font-weight:700}.availability-dot{position:absolute;bottom:3px;right:3px;width:5px;height:5px;border-radius:999px;background:var(--success)}.calendar-footer{margin-top:12px;text-align:center}.calendar-today-btn{border:1px solid var(--border);background:var(--card-bg-strong);color:var(--text);border-radius:10px;padding:7px 12px;font-size:.84rem;font-weight:700}.schedule-panel{margin-top:14px;background:var(--card-bg);border:1px solid var(--border);border-radius:16px;box-shadow:var(--card-shadow);padding:16px}.schedule-panel-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.schedule-head-text{min-width:0}.schedule-title{margin:0;font-size:1.08rem;color:var(--text)}.schedule-subtitle{margin:6px 0 0;color:var(--muted);font-size:.88rem;white-space:normal;overflow-wrap:anywhere;word-break:break-word}.schedule-head-actions{display:flex;align-items:center;gap:8px}.schedule-stats{display:flex;align-items:center;gap:8px;flex-wrap:nowrap}.schedule-stat{display:inline-flex;align-items:center;justify-content:center;min-height:30px;padding:0 10px;border-radius:999px;border:1px solid var(--border);background:var(--card-bg-strong);color:var(--text);font-size:.82rem;font-weight:700;white-space:nowrap}.schedule-form{display:grid;gap:10px}.schedule-form-head{margin-bottom:2px;font-size:.95rem;color:var(--text)}.schedule-label{display:block;margin-bottom:4px;font-size:.82rem;font-weight:700;color:var(--muted)}.schedule-row{display:grid;grid-template-columns:1fr 1fr;gap:8px}.schedule-input{width:100%;border:1px solid var(--border);border-radius:10px;background:var(--input-bg);color:var(--text);padding:10px 11px}.schedule-input:focus{outline:2px solid color-mix(in srgb,var(--primary) 35%,transparent);outline-offset:1px}.schedule-textarea{min-height:88px;resize:vertical}.schedule-actions{display:flex;align-items:center;gap:8px;margin-top:2px}.schedule-btn{border:0;border-radius:10px;min-height:36px;padding:8px 12px;font-weight:700}.schedule-btn.primary{background:var(--primary);color:#fff}.schedule-create-btn{background:var(--card-bg-strong);color:var(--text);border:1px solid var(--border);min-height:38px;min-width:88px;padding:8px 14px;white-space:nowrap}.schedule-create-btn:hover{background:var(--navbar-hover-bg)}.schedule-btn.secondary{background:var(--card-bg);color:var(--text);border:1px solid var(--border)}.schedule-btn.danger{background:var(--danger);color:#fff}.schedule-list{display:grid;gap:10px;min-width:0}.schedule-item{border:1px solid var(--border);border-radius:12px;background:var(--table-row-bg);padding:12px;min-width:0}.schedule-item.editing{border-color:color-mix(in srgb,var(--primary) 45%,var(--border));box-shadow:0 0 0 1px color-mix(in srgb,var(--primary) 24%,transparent)}.schedule-item-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;min-width:0}.schedule-item-title{display:block;min-width:0;overflow-wrap:anywhere;word-break:break-word;line-height:1.35}.schedule-item-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}.schedule-datetime{margin:7px 0 0;color:var(--muted);font-size:.9rem}.schedule-desc{margin:7px 0 0;color:var(--text);white-space:pre-wrap;overflow-wrap:anywhere;word-break:break-word;line-height:1.4}.schedule-empty{margin:0;color:var(--muted);text-align:center;padding:20px 10px;border:1px dashed var(--border);border-radius:12px;background:var(--card-bg-strong)}.schedule-modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#080e188a;z-index:1600;display:grid;place-items:center;padding:16px}.schedule-modal-card{width:min(560px,100%);background:var(--card-bg);border:1px solid var(--border);border-radius:14px;box-shadow:var(--card-shadow);padding:14px}@media (max-width: 900px){.schedule-head-actions{width:100%;justify-content:space-between}}@media (max-width: 760px){.schedule-panel{padding:13px}.schedule-panel-head{flex-direction:column;align-items:stretch;margin-bottom:12px}.schedule-row{grid-template-columns:1fr}.schedule-item-head{flex-direction:column;align-items:stretch}.schedule-item-actions{justify-content:flex-end}}.settings-root{width:min(1360px,calc(100% - 24px));margin:0 auto;box-sizing:border-box;padding:18px 0 30px}.settings-container{width:100%;margin:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:stretch}.settings-card{background:var(--card-bg);border:1px solid var(--border);border-radius:18px;box-shadow:var(--card-shadow);padding:18px;height:100%}.settings-card-full-row{grid-column:1 / -1}.settings-card-title{font-size:1rem;font-weight:700;color:var(--text);margin-bottom:12px;padding-bottom:9px;border-bottom:1px solid var(--border)}.settings-card-content{display:grid;gap:10px}.settings-row{display:flex;align-items:center;gap:10px}.settings-row label{min-width:74px;color:var(--muted);font-size:.88rem;font-weight:700}.settings-input{flex:1;min-height:38px;border:1px solid var(--border);background:var(--input-bg);color:var(--text);border-radius:11px;padding:8px 10px;outline:none;transition:border-color .15s,box-shadow .15s}.settings-input:focus{border-color:var(--primary);box-shadow:0 0 0 4px #0d6e9b24}.settings-btn{min-height:38px;border-radius:11px;border:1px solid var(--border);background:var(--card-bg-strong);color:var(--text);padding:8px 14px;font-size:.87rem;font-weight:700}.settings-btn.primary{border:0;background:var(--primary);color:#fff}.settings-btn.danger{border:0;background:var(--danger);color:#fff}.settings-btn.small{min-height:32px;border-radius:9px;padding:6px 10px}.settings-warning{color:var(--warning);font-size:.84rem;font-weight:600;margin-top:-2px}.settings-policy-links{display:flex;align-items:center;gap:8px;margin-top:2px;font-size:.86rem;color:var(--muted)}.settings-policy-link{color:var(--primary);font-weight:700}.settings-policy-sep{color:var(--muted)}.club-register-row{align-items:stretch}.settings-club-list-title{margin-bottom:8px;color:var(--muted);font-size:.8rem;text-transform:uppercase;letter-spacing:.07em}.settings-empty{color:var(--muted);font-size:.87rem}.settings-club-ul{margin:0;padding:0;list-style:none;display:grid;gap:8px}.settings-club-li{display:flex;align-items:center;gap:8px;background:var(--table-row-bg);border:1px solid var(--border);border-radius:12px;padding:9px 10px}.settings-club-li .club-name{font-weight:700;color:var(--text)}.settings-club-li .club-code{color:var(--muted);font-size:.83rem}.members-grid{display:grid;grid-template-columns:1fr;gap:10px}.members-pagination{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:10px}.members-page-indicator{color:var(--muted);font-size:.84rem;font-weight:700}.member-card{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:11px;border:1px solid var(--border);border-radius:12px;background:var(--table-row-bg)}.member-info{display:flex;flex-direction:column;gap:2px}.member-name{font-weight:700;color:var(--text)}.member-id{color:var(--muted);font-size:.82rem}@media (max-width: 1180px){.settings-container{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 940px){.settings-container{grid-template-columns:1fr}.settings-card-full-row{grid-column:auto}}@media (max-width: 640px){.settings-root{width:calc(100% - 16px);padding:12px 0 22px}.settings-card{padding:14px 12px}.settings-row{flex-wrap:wrap}.settings-row label{min-width:100%;margin-bottom:-2px}.settings-btn{width:100%}.settings-club-li{flex-wrap:wrap}.settings-club-li .settings-btn{width:auto}.members-pagination{flex-wrap:wrap}}.location-map-modal-bg{position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:2000;display:flex;align-items:center;justify-content:center;animation:location-map-bg-fadein .25s}@keyframes location-map-bg-fadein{0%{background:#0000}to{background:#00000080}}.location-map-modal-card{background:var(--card-bg, #fff);border-radius:16px;box-shadow:0 4px 24px #0000002e;width:90%;max-width:600px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;animation:location-map-modal-pop .32s cubic-bezier(.33,1.02,.6,1.01)}@keyframes location-map-modal-pop{0%{opacity:0;transform:translateY(40px) scale(.97)}80%{opacity:1;transform:translateY(-4px) scale(1.03)}to{opacity:1;transform:translateY(0) scale(1)}}.location-map-modal-header{display:flex;justify-content:space-between;align-items:center;padding:16px 20px;border-bottom:1px solid var(--border, #e5e5e5)}.location-map-modal-header h3{margin:0;font-size:1.2rem;font-weight:700;color:var(--text, #333)}.location-map-modal-close-btn{background:none;border:none;font-size:1.8rem;cursor:pointer;color:var(--text, #666);line-height:1;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:50%;transition:background .2s}.location-map-modal-close-btn:hover{background:var(--hover-bg, #f0f0f0)}.location-map-search{padding:12px 16px;border-bottom:1px solid var(--border, #e5e5e5);position:relative}.location-map-search-input-wrapper{display:flex;gap:8px}.location-map-search-input{flex:1;padding:10px 14px;border:2px solid var(--border, #e1e5e9);border-radius:8px;font-size:.95rem;outline:none;transition:border-color .2s}.location-map-search-input:focus{border-color:#4285f4}.location-map-search-btn{padding:10px 16px;background:#4285f4;color:#fff;border:none;border-radius:8px;font-size:.9rem;font-weight:600;cursor:pointer;transition:background .2s;white-space:nowrap}.location-map-search-btn:hover:not(:disabled){background:#3367d6}.location-map-search-btn:disabled{background:#9aa0a6;cursor:not-allowed}.location-map-search-results{position:absolute;top:100%;left:16px;right:16px;background:#fff;border:1px solid var(--border, #e5e5e5);border-radius:8px;box-shadow:0 4px 12px #00000026;z-index:100;max-height:250px;overflow-y:auto}.location-map-search-result-item{padding:12px 14px;cursor:pointer;border-bottom:1px solid var(--border, #f0f0f0);transition:background .15s}.location-map-search-result-item:last-child{border-bottom:none}.location-map-search-result-item:hover{background:#f5f7fa}.result-place-name{font-size:.95rem;font-weight:600;color:var(--text, #333);margin-bottom:4px}.result-address{font-size:.8rem;color:var(--text-secondary, #888)}.location-map-search-loading,.location-map-search-no-result{padding:16px;text-align:center;color:var(--text-secondary, #888);font-size:.9rem}.location-map-container{width:100%;height:400px}.location-map-loading,.location-map-error{width:100%;height:400px;display:flex;align-items:center;justify-content:center;color:var(--text, #666);font-size:1rem}.location-map-error{color:#dc3545;padding:20px;text-align:center}.location-map-info{display:flex;justify-content:center;gap:24px;padding:12px 20px;background:var(--bg-secondary, #f5f5f5);font-size:.9rem;color:var(--text, #666)}.location-map-modal-buttons{display:flex;justify-content:center;gap:12px;padding:16px 20px;border-top:1px solid var(--border, #e5e5e5)}.location-map-btn{padding:10px 20px;border:none;border-radius:8px;font-size:.95rem;font-weight:600;cursor:pointer;transition:background .2s,transform .1s}.location-map-btn:hover{transform:translateY(-1px)}.location-map-btn:active{transform:translateY(0)}.location-map-btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.location-map-btn.primary{background:#4caf50;color:#fff}.location-map-btn.primary:hover:not(:disabled){background:#45a049}.location-map-btn.secondary{background:#2196f3;color:#fff}.location-map-btn.secondary:hover:not(:disabled){background:#1e88e5}.location-map-btn:not(.primary):not(.secondary){background:#6c757d;color:#fff}.location-map-btn:not(.primary):not(.secondary):hover:not(:disabled){background:#5a6268}@media (max-width: 480px){.location-map-modal-card{width:95%;max-height:95vh}.location-map-container{height:300px}.location-map-info{flex-direction:column;gap:8px;align-items:center}.location-map-modal-buttons{flex-wrap:wrap}.location-map-btn{flex:1;min-width:80px}}.navbar{position:sticky;top:0;width:min(1360px,calc(100% - 24px));margin:12px auto 0;min-height:74px;background:var(--navbar-bg);color:var(--navbar-text);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid var(--border);box-shadow:var(--card-shadow);border-radius:16px;display:flex;align-items:center;justify-content:space-between;padding:10px 26px;z-index:120;transition:background .2s,color .2s}.navbar-logo{font-family:Outfit,Segoe UI,sans-serif;font-size:1.32rem;font-weight:800;color:var(--navbar-logo);letter-spacing:.01em;-webkit-user-select:none;user-select:none}.navbar-menu{display:flex;gap:.5rem;align-items:center;margin:0;padding:0;list-style:none}.navbar-menu li{margin:0}.navbar-menu a{color:var(--navbar-text);font-size:1rem;font-weight:700;letter-spacing:.01em;padding:11px 16px;border-radius:11px;transition:background .18s,color .18s;text-decoration:none;display:block}.navbar-install-btn{color:var(--navbar-text);font-size:1rem;font-weight:700;letter-spacing:.01em;padding:11px 16px;border-radius:11px;transition:background .18s,color .18s;text-decoration:none;display:block;border:1px solid var(--border);background:var(--card-bg)}.navbar-menu a:hover,.navbar-install-btn:hover{background:var(--navbar-hover-bg);color:var(--navbar-hover-text)}.ios-install-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0006;z-index:999;display:flex;align-items:center;justify-content:center}.ios-install-modal{background:var(--card-bg);border:1px solid var(--border);box-shadow:0 8px 32px #0000002e;border-radius:20px;padding:32px 28px 24px;width:min(340px,88vw);display:flex;flex-direction:column;gap:24px}.ios-install-modal-title{font-size:1rem;font-weight:700;color:var(--text);margin:0;text-align:center;letter-spacing:.01em}.ios-install-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0}.ios-install-step{display:flex;align-items:center;gap:14px;padding:12px 0;color:var(--text);font-size:.9rem;position:relative}.ios-install-step:not(:last-child):after{content:"";position:absolute;left:15px;top:calc(50% + 16px);width:1px;height:calc(100% - 20px);background:var(--border)}.ios-step-num{width:30px;height:30px;border-radius:50%;background:var(--primary, #3b82f6);color:#fff;font-size:.8rem;font-weight:700;display:flex;align-items:center;justify-content:center;flex-shrink:0;z-index:1}.ios-step-text{line-height:1.45;color:var(--text)}.ios-install-close-btn{align-self:stretch;padding:11px 0;border-radius:12px;border:1px solid var(--border);background:transparent;color:var(--text);font-size:.92rem;font-weight:600;cursor:pointer;transition:background .15s}.ios-install-close-btn:hover{background:var(--navbar-hover-bg)}@media (max-width: 900px){.navbar{width:calc(100% - 16px);margin-top:8px;border-radius:14px;padding:0 10px 0 12px;min-height:60px}.navbar-logo{font-size:1rem}.navbar-menu{gap:.3rem}.navbar-menu a,.navbar-install-btn{font-size:.84rem;padding:8px 10px}}@media (max-width: 600px){.navbar{min-height:52px;justify-content:space-between;padding:0 8px 0 10px}.navbar-logo{font-size:.9rem}.navbar-menu{gap:.2rem}.navbar-menu a,.navbar-install-btn{font-size:.8rem;padding:7px 8px}}.qr-camera-page{min-height:calc(100vh - 80px);padding:24px 16px 28px;display:flex;flex-direction:column;gap:16px}.qr-camera-header h2{font-size:1.4rem;color:var(--primary)}.qr-camera-header p{margin-top:6px;color:var(--muted)}.qr-capture-card{width:min(94vw,560px);margin:0 auto;border-radius:16px;border:1px solid var(--border);background:var(--card-bg);box-shadow:var(--shadow);padding:18px 16px;display:flex;flex-direction:column;gap:12px}.qr-capture-input{display:none}.qr-capture-btn{min-height:52px;border:none;background:var(--primary);color:#fff;font-weight:700}.qr-capture-btn:hover:not(:disabled){background:var(--primary-dark)}.qr-capture-hint{color:var(--muted);font-size:.94rem;line-height:1.45}.qr-captured-name{color:var(--text);font-size:.92rem;word-break:break-all}.qr-camera-actions{width:min(94vw,560px);margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:10px}.qr-camera-actions button{min-height:46px;font-weight:700;border:1px solid var(--border);background:var(--card-bg)}@media (max-width: 420px){.qr-camera-actions{grid-template-columns:1fr}}.mobile-only-container{position:fixed;top:0;left:0;width:100vw;height:100vh;display:flex;justify-content:center;align-items:center;background:#fff;z-index:1000}.mobile-only-content{text-align:center;background:#fff;padding:60px 40px;max-width:500px;width:100%}.mobile-logo{width:100px;height:auto;margin-bottom:1.5rem;filter:drop-shadow(0 2px 4px rgba(0,0,0,.1))}.mobile-title{font-size:32px;font-weight:600;color:#1a1a1a;margin-bottom:24px;letter-spacing:-.5px}.mobile-description{font-size:18px;color:#4a4a4a;margin-bottom:16px;line-height:1.6;font-weight:400}.mobile-instruction{font-size:16px;color:#6a6a6a;font-weight:400;margin-bottom:32px}.logout-button{background-color:#f5f5f5;color:#666;border:1px solid #ddd;padding:12px 24px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.logout-button:hover{background-color:#e8e8e8;color:#333;border-color:#ccc}body.dark .mobile-only-container,body.dark .mobile-only-content{background:#1a1a1a}body.dark .mobile-title{color:#fff}body.dark .mobile-description{color:#b4b4b4}body.dark .mobile-instruction{color:#8a8a8a}body.dark .logout-button{background-color:#333;color:#ccc;border-color:#555}body.dark .logout-button:hover{background-color:#444;color:#fff;border-color:#666}.pwa-experience-stack{position:fixed;right:12px;bottom:12px;z-index:200;display:flex;flex-direction:column;gap:8px;max-width:min(92vw,360px)}.pwa-banner{border-radius:12px;border:1px solid var(--border);background:var(--card-bg);box-shadow:var(--card-shadow);color:var(--text);padding:10px 12px;font-size:.9rem;font-weight:600}.pwa-banner-offline{border-color:#d58d2f}.pwa-banner-update{display:flex;align-items:center;justify-content:space-between;gap:10px}.pwa-banner-update button{border:none;min-height:32px;padding:0 10px;border-radius:8px;background:var(--primary);color:#fff;font-weight:700}
