@import "https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@300;400;500;700&family=Outfit:wght@300;400;500;600;700&display=swap";:root{--bg-light-blue:#f3f7fa;--card-bg-light:#fff;--primary-blue:#1e293b;--accent-blue:#2563eb;--accent-light-blue:#60a5fa;--text-dark:#334155;--text-light:#fff;--text-muted:#64748b;--success-color:#059669;--success-bg:#d1fae599;--warning-color:#d97706;--warning-bg:#fef3c7b3;--error-color:#dc2626;--error-bg:#fee2e299;--admin-color:#7c3aed;--admin-bg:#ede9feb3;--line-color:#06c755;--line-hover:#05b04b;--room-batting:#4d7c5f;--room-putter:#4a7ba6;--room-machine:#c97b5d;--room-pilates:#b07285;--card-shadow:0 12px 32px #1e3a8a12;--btn-shadow:0 4px 14px #2563eb2e;--border-radius-lg:24px;--border-radius-md:14px;--border-radius-sm:10px;--font-family:"Outfit", "Noto Sans JP", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--transition-bounce:all .3s cubic-bezier(.34, 1.56, .64, 1);--transition-smooth:all .2s ease}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-family);background-color:var(--bg-light-blue);color:var(--text-dark);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-image:linear-gradient(#e8f2fc 0%,#f4f8fc 42%,#edf4fa 100%);background-attachment:fixed;justify-content:center;align-items:flex-start;min-height:100vh;padding:0;display:flex}#root{background:radial-gradient(circle at 12% 0,#60a5fa29,#0000 30%),linear-gradient(#ffffff47,#f1f7fcbd);width:100%;max-width:440px;min-height:100dvh;box-shadow:0 0 48px #1e3a8a0f}.container{width:100%;padding:18px 14px calc(104px + env(safe-area-inset-bottom,0));flex-direction:column;gap:15px;display:flex}.container.has-date-footer{padding-bottom:calc(148px + env(safe-area-inset-bottom,0))}.container.has-mypage{padding-bottom:calc(136px + env(safe-area-inset-bottom,0))}.admin-badge-header{-webkit-backdrop-filter:blur(12px);color:var(--admin-color);border-radius:var(--border-radius-md);text-align:center;letter-spacing:.5px;background:#ffffffb3;border:1px dashed #7c3aed66;justify-content:center;align-items:center;gap:8px;padding:12px;font-size:.85rem;font-weight:700;display:flex;box-shadow:0 4px 15px #7c3aed0d}.admin-mode-title{background:linear-gradient(135deg, var(--admin-color) 0%, #6366f1 100%);color:#fff;border-radius:6px;padding:2px 8px;font-size:.75rem;box-shadow:0 2px 6px #7c3aed33}.header{text-align:left;margin:4px 4px 8px;padding:8px 2px 2px}.header h1{letter-spacing:-.3px;color:var(--accent-blue);background:linear-gradient(120deg,#1e3a8a 0%,#2563eb 52%,#60a5fa 100%);-webkit-text-fill-color:transparent;-webkit-background-clip:text;background-clip:text;font-size:1.68rem;font-weight:700;line-height:1.2}.header .subtitle{color:var(--text-muted);letter-spacing:.5px;margin-top:4px;font-size:.8rem;font-weight:500}.card{background:linear-gradient(155deg,#fff 0%,#fbfdff 100%);border:1px solid #94a3b829;border-radius:24px;flex-direction:column;gap:14px;padding:18px;display:flex;box-shadow:0 14px 38px #1e3a8a14,0 2px 8px #0f172a08}button:focus-visible,a:focus-visible,select:focus-visible,input:focus-visible{outline-offset:2px;outline:3px solid #2563eb4d}.card h2{color:var(--primary-blue);border-bottom:1px solid #94a3b826;justify-content:space-between;align-items:center;padding-bottom:10px;font-size:1.05rem;font-weight:700;display:flex}.calendar-container{flex-direction:column;gap:10px;display:flex}.calendar-header{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.calendar-title{color:var(--primary-blue);font-size:1.05rem;font-weight:700}.calendar-nav-btn{color:var(--text-dark);cursor:pointer;background:#fff;border:1px solid #94a3b833;border-radius:50%;justify-content:center;align-items:center;width:34px;height:34px;font-size:.95rem;display:flex;box-shadow:0 2px 4px #94a3b80d}.calendar-nav-btn:hover{background:var(--bg-light-blue);border-color:var(--accent-light-blue)}.calendar-grid{text-align:center;grid-template-columns:repeat(7,1fr);gap:8px;display:grid}.calendar-day-label{color:var(--text-muted);padding:4px 0;font-size:.75rem;font-weight:700}.calendar-day-label:first-child{color:#dc2626}.calendar-day-label:last-child{color:#2563eb}.calendar-day-cell{aspect-ratio:1;cursor:pointer;color:var(--text-dark);background:0 0;border:1px solid #0000;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;font-size:.85rem;font-weight:600;display:flex;position:relative}.calendar-day-cell.sun{color:#dc2626}.calendar-day-cell.sat{color:#2563eb}.calendar-day-cell:hover:not(.empty):not(.disabled){background:#2563eb14}.calendar-day-cell.empty{cursor:default;pointer-events:none}.calendar-day-cell.today{background-color:#ffffffe6;border-color:#2563eb66;box-shadow:inset 0 0 0 1px #2563eb1a}.calendar-day-cell.selected{font-weight:700;box-shadow:0 4px 12px #2563eb59;background:linear-gradient(135deg, var(--accent-blue) 0%, #1d4ed8 100%)!important;color:#fff!important}.calendar-day-cell .res-dot{background:var(--accent-blue);border-radius:50%;width:5px;height:5px;position:absolute;bottom:4px;left:50%;transform:translate(-50%)}.calendar-day-cell.selected .res-dot{background:#fff}.calendar-day-cell.holiday{background:var(--error-bg);text-decoration:line-through;color:var(--error-color)!important}.calendar-day-cell.holiday:after{content:"休";color:var(--error-color);font-size:.55rem;font-weight:700;text-decoration:none;position:absolute;bottom:2px}.calendar-day-cell.disabled:not(.holiday){opacity:.2;cursor:not-allowed;pointer-events:none}.admin-mode .calendar-day-cell:hover:not(.empty){outline:2px dashed var(--admin-color);background:var(--admin-bg);transform:scale(1.08)}.booking-surface{width:100%;padding:2px 2px 0}.booking-section{flex-direction:column;gap:16px;display:flex}.sheet-head{z-index:30;background:linear-gradient(135deg,#dcebfa 0%,#eaf3fb 55%,#f2f7fc 100%);border-bottom:1px solid #94a3b838;margin:0 -16px;padding:4px 16px 0;position:sticky;top:0;box-shadow:0 2px 10px #1e293b0d}.date-indicator{min-height:50px;color:var(--primary-blue);justify-content:space-between;align-items:center;gap:8px;font-size:1rem;font-weight:700;display:flex}.date-indicator-label{text-align:center;flex-direction:column;flex:1;align-items:center;gap:3px;min-width:0;display:flex}.date-indicator-date{letter-spacing:.5px}.day-step-btn{width:44px;min-height:44px;color:var(--accent-blue);cursor:pointer;transition:var(--transition-smooth);background:0 0;border:0;border-radius:12px;flex:none;justify-content:center;align-items:center;padding:0;font-size:1.2rem;font-weight:700;display:flex}.day-step-btn:hover:not(:disabled){background:#2563eb14}.day-step-btn:disabled{opacity:.3;cursor:default}.holiday-notice{background:var(--error-bg);border-radius:var(--border-radius-md);text-align:center;color:var(--error-color);border:1px solid #dc262626;flex-direction:column;align-items:center;gap:10px;padding:24px;font-weight:600;display:flex;box-shadow:inset 0 2px 4px #dc262605}.notice-retry{color:var(--accent-blue);font:inherit;cursor:pointer;background:#fff;border:1px solid #2563eb38;border-radius:10px;padding:8px 14px;font-weight:700}.loading-state{min-height:132px;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:12px;font-size:.85rem;display:flex}.loading-spinner{border:3px solid #dbeafe;border-top-color:var(--accent-blue);border-radius:50%;width:26px;height:26px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.grid-wrapper{width:100%;margin-top:-10px;overflow-x:hidden}.booking-grid{flex-direction:column;gap:7px;width:100%;display:flex}.date-footer{width:100%;max-width:440px;left:50%;bottom:calc(50px + env(safe-area-inset-bottom,0));-webkit-backdrop-filter:blur(12px);z-index:49;background:#fffffff0;border-top:1px solid #94a3b82e;align-items:center;padding:4px 0 4px 8px;display:flex;position:fixed;transform:translate(-50%);box-shadow:0 -3px 14px #1e293b0f}.date-chip-row{scrollbar-width:none;flex:1;gap:5px;min-width:0;padding:2px 6px 2px 0;display:flex;overflow-x:auto}.date-chip-row::-webkit-scrollbar{display:none}.date-cal-btn{z-index:2;width:46px;height:46px;color:var(--accent-blue);cursor:pointer;transition:var(--transition-smooth);background:#f8fafc;border:1px solid #94a3b852;border-radius:10px;flex:none;justify-content:center;align-items:center;margin:0 8px 0 11px;display:flex;position:relative}.date-cal-btn:active{background:#2563eb2e}.date-cal-btn:before{content:"";pointer-events:none;background:linear-gradient(90deg,#fff0 0%,#ffffffb8 55%,#fff 100%);width:32px;position:absolute;inset:-8px calc(100% + 1px) -8px auto}.date-cal-btn:after{content:"";z-index:2;pointer-events:none;background:#64748b94;width:1px;position:absolute;top:5px;bottom:5px;left:-9px}.date-cal-icon{z-index:1;display:block;position:relative}.date-chip{cursor:pointer;width:46px;height:46px;transition:var(--transition-smooth);background:#ffffff8c;border:1px solid #94a3b833;border-radius:10px;flex-direction:column;flex:0 0 46px;align-items:center;gap:2px;padding:4px 3px;display:flex;position:relative}.date-chip-dow{color:var(--text-muted);font-size:.65rem}.date-chip-md{color:var(--primary-blue);font-size:.84rem;font-weight:700}.date-chip.selected{background:#eff6ff;border-color:#bfdbfe}.date-chip.selected .date-chip-dow{color:#3b82f6}.date-chip.selected .date-chip-md{color:#1d4ed8}.date-chip.holiday:not(.selected){opacity:.75;border-style:dashed}.date-chip.holiday:not(.selected) .date-chip-md{color:var(--text-muted)}.date-chip-dot{background:var(--accent-light-blue);border-radius:50%;width:5px;height:5px;position:absolute;top:6px;right:8px}.date-chip.selected .date-chip-dot{background:var(--accent-blue)}@media (width>=390px){.container.has-date-footer{padding-bottom:calc(152px + env(safe-area-inset-bottom,0))}.date-cal-btn{width:50px;height:50px;margin-left:16px}.date-cal-btn:before{width:38px;left:auto;right:calc(100% + 1px)}.date-cal-btn:after{left:-12px}.date-chip{flex-basis:50px;width:50px;height:50px}.date-chip-dow{font-size:.68rem}.date-chip-md{font-size:.88rem}}.legend-row{flex-wrap:wrap;gap:14px;padding:12px 2px 2px;display:flex}.legend-item{color:var(--text-muted);align-items:center;gap:5px;font-size:.7rem;display:flex}.legend-dot{border-radius:3px;width:10px;height:10px;display:inline-block}.legend-dot.legend-open{background:#fff;border:1px solid #94a3b866}.legend-dot.legend-mine{background:var(--accent-blue)}.legend-dot.legend-vip{background:#fffbeb;border:1px solid #b4530980}.grid-header{text-align:center;color:#52637a;grid-template-columns:50px repeat(4,1fr);gap:6px;padding-bottom:8px;font-size:.8rem;font-weight:700;display:grid}.grid-row{grid-template-columns:50px repeat(4,1fr);align-items:center;gap:6px;display:grid}.time-label{color:var(--text-muted);text-align:center;border-radius:var(--border-radius-sm);background:#f8fafc;border:1px solid #94a3b829;padding:10px 0;font-size:.8rem;font-weight:700;box-shadow:inset 0 1px #fffc}.slot-cell{color:var(--text-dark);cursor:pointer;min-height:50px;transition:var(--transition-smooth);background:#fff;border:1px solid #94a3b833;border-radius:11px;flex-direction:column;justify-content:center;align-items:center;padding:6px 3px;font-size:.75rem;display:flex;position:relative}.slot-cell:hover:not(.disabled){border-color:var(--accent-blue);box-shadow:0 2px 8px #2563eb1a}.slot-cell.available{background:linear-gradient(#fff,#f8fbff)}.slot-cell.warning{background:#f3f7ff;border-color:#2563eb42}.slot-cell.full{cursor:not-allowed;pointer-events:none;opacity:.7;box-shadow:none;color:var(--text-muted)!important;background:#eef1f5!important;border-color:#e2e8f0!important}.slot-cell.mine{border-color:var(--accent-blue);background:linear-gradient(145deg,#3474ea,#1d4ed8);font-weight:700;box-shadow:0 3px 8px #2563eb33}.slot-status-text{margin-bottom:1px;font-size:.78rem;font-weight:700}.slot-cell.available .slot-status-text,.slot-cell.warning .slot-status-text{color:var(--accent-blue)}.slot-cell.full .slot-status-text{color:var(--text-muted)}.slot-cell.mine .slot-status-text{color:#fff}.slot-capacity-info{color:var(--text-muted);font-size:.62rem}.slot-cell.mine .slot-capacity-info{color:#ffffffd9}.slot-cell.vip-only{background:#fffbeb;border-color:#b453094d}.slot-cell.vip-only .slot-status-text{color:#b45309}.slot-cell.vip-open:before{content:"";opacity:.75;background:linear-gradient(#f59e0b,#b45309);border-radius:2px;width:3px;position:absolute;top:8px;bottom:8px;left:3px}.slot-vip-badge{color:#92400e;vertical-align:middle;background:#fef3c7;border:1px solid #b4530959;border-radius:5px;margin-left:4px;padding:1px 5px;font-size:.6rem;font-weight:700;display:inline-block}.slot-private-label{color:#d97706;font-size:.65rem;font-weight:700}.slot-cell.mine-private:after{content:"";opacity:.85;background:linear-gradient(135deg,#0000 50%,#f59e0b 50%,#b45309 100%);border-bottom-right-radius:9px;width:14px;height:14px;position:absolute;bottom:0;right:0}.variant-select{grid-template-columns:1fr 1fr;gap:8px;margin:12px 0 4px;display:grid}.variant-option{border-radius:var(--border-radius-sm);cursor:pointer;color:var(--text-dark);background:#ffffffb3;border:1.5px solid #94a3b84d;flex-direction:column;align-items:center;gap:4px;padding:10px 6px;font-size:.85rem;display:flex}.variant-option.selected{border-color:var(--accent-blue);background:#eff6ff;font-weight:700}.variant-option:disabled{color:var(--text-muted);cursor:not-allowed;background:#f1f5f9}.variant-option .variant-name{font-weight:700}.variant-option .variant-note{color:var(--text-muted);font-size:.7rem}.admin-mode .slot-cell{cursor:default;pointer-events:none}.admin-reservations-list{border-radius:var(--border-radius-md);background:#fff9;border:1px solid #94a3b826;max-height:160px;padding:12px;font-size:.75rem;overflow-y:auto}.admin-res-item{color:var(--text-dark);border-bottom:1px solid #94a3b81a;justify-content:space-between;padding:8px 0;display:flex}.admin-res-item:last-child{border-bottom:none}.profile-section{align-items:center;gap:14px;display:flex}.profile-avatar{border:2px solid var(--accent-light-blue);object-fit:cover;border-radius:50%;width:48px;height:48px;box-shadow:0 2px 6px #0000000d}.profile-meta h3{color:var(--primary-blue);font-size:.95rem;font-weight:700}.profile-meta p{color:var(--text-muted);font-size:.75rem}.modal-overlay{z-index:1000;-webkit-backdrop-filter:blur(4px);background-color:#0f172a73;justify-content:center;align-items:flex-end;animation:.15s modalFade;display:flex;position:fixed;inset:0}.modal-content{padding:22px 20px calc(26px + env(safe-area-inset-bottom,0));background-color:#fff;border-radius:20px 20px 0 0;flex-direction:column;gap:16px;width:100%;max-width:440px;animation:.24s cubic-bezier(.16,1,.3,1) sheetSlideUp;display:flex;box-shadow:0 -8px 40px #0f172a2e}@keyframes modalFade{0%{opacity:0}to{opacity:1}}@keyframes sheetSlideUp{0%{opacity:0;transform:translateY(28px)}to{opacity:1;transform:translateY(0)}}.modal-header{color:var(--primary-blue);border-bottom:1px solid #94a3b826;padding-bottom:10px;font-size:1.15rem;font-weight:700}.modal-body{color:var(--text-dark);font-size:.9rem;line-height:1.6}.modal-body p{margin-bottom:8px}.modal-body strong{color:var(--accent-blue)}.modal-actions{gap:12px;display:flex}.btn{border-radius:var(--border-radius-md);cursor:pointer;border:none;justify-content:center;align-items:center;padding:11px 18px;font-size:.9rem;font-weight:700;display:inline-flex}.btn-accent{background:linear-gradient(135deg, var(--accent-blue) 0%, #1d4ed8 100%);color:#fff;box-shadow:var(--btn-shadow);border:1px solid #2563eb1a}.btn-accent:hover:not(:disabled){box-shadow:0 6px 20px #2563eb4d}.btn-outline{color:var(--text-dark);background:#fff;border:1px solid #94a3b840;box-shadow:0 2px 4px #94a3b805}.btn-outline:hover{background:var(--bg-light-blue);border-color:var(--accent-light-blue)}.btn-danger{color:#be123c;background:#fff1f2;border:1px solid #e11d4840}.btn-switch-room{color:#92400e;background:#fffbeb;border:1px solid #b4530959;width:100%;margin-bottom:10px}.btn-switch-room:hover:not(:disabled){background:#fef3c7}.btn-danger:hover{background:#ffe4e6;border-color:#e11d4866}.btn:disabled{opacity:.4;cursor:not-allowed}.status-table .change-before{color:var(--text-muted);text-decoration:line-through}.status-table .change-after{color:var(--accent-blue);font-weight:700}.status-table{border-collapse:collapse;width:100%}.status-table th,.status-table td{border-bottom:1px solid #94a3b81a;padding:10px 0;font-size:.85rem}.status-table th{color:var(--text-muted);text-align:left;width:40%;font-weight:600}.status-table td{text-align:right;color:var(--text-dark);font-weight:700}.badge{border-radius:20px;padding:3px 10px;font-size:.75rem;font-weight:700;display:inline-block;box-shadow:inset 0 -1px #0000000d}.badge.success{background:var(--success-bg);color:var(--success-color);border:1px solid #05966926}.badge.danger{background:var(--error-bg);color:var(--error-color);border:1px solid #dc262626}.badge.admin{background:var(--admin-bg);color:var(--admin-color);border:1px solid #7c3aed26}.badge.line{color:var(--line-color);background:#06c7551a;border:1px solid #06c75526}.test-panel{border-radius:var(--border-radius-md);background:#fff9;border:1px dashed #94a3b84d;flex-direction:column;gap:8px;padding:12px;font-size:.8rem;display:flex}.test-user-select{color:var(--text-dark);border-radius:var(--border-radius-sm);transition:var(--transition-smooth);background:#fff;border:1px solid #94a3b840;outline:none;padding:8px;font-size:.8rem;box-shadow:0 1px 2px #00000005}.test-user-select:focus{border-color:var(--accent-light-blue)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#94a3b84d;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#94a3b880}.rich-menu-bar{-webkit-backdrop-filter:blur(14px);width:100%;max-width:440px;padding-bottom:env(safe-area-inset-bottom,0);z-index:50;background:#ffffffe6;border-top:1px solid #94a3b833;display:flex;position:fixed;bottom:0;left:50%;transform:translate(-50%);box-shadow:0 -4px 20px #1e293b14}.rich-menu-btn{cursor:pointer;color:var(--text-muted);transition:var(--transition-smooth);background:0 0;border:none;border-top:2.5px solid #0000;flex:1;justify-content:center;align-items:center;gap:6px;padding:14px 4px;display:flex;position:relative}.rich-menu-label{letter-spacing:.5px;font-size:.9rem;font-weight:700}.rich-menu-btn.active{color:var(--accent-blue);border-top-color:var(--accent-blue);background:linear-gradient(#2563eb0f 0%,#0000 100%)}.rich-menu-badge{background:var(--accent-blue);color:#fff;text-align:center;border-radius:9px;min-width:18px;height:18px;padding:0 5px;font-size:.65rem;font-weight:700;line-height:18px}.mypage-tab-content{flex-direction:column;gap:14px;display:flex}.mypage-section{width:100%;padding:8px 2px 2px}.mypage-section+.mypage-section{border-top:1px solid #64748b29;margin-top:4px;padding-top:20px}.member-note{color:var(--text-muted);text-align:center;padding:8px 10px 0;font-size:.78rem;line-height:1.6}.confirmation-tab-content{flex-direction:column;gap:16px;display:flex}.section-title{color:var(--primary-blue);border-left:3px solid var(--accent-blue);margin-bottom:14px;padding-left:8px;font-size:1rem;font-weight:700}.section-title.text-muted{border-left-color:var(--text-muted)}.empty-state{text-align:center;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;padding:30px 10px;font-size:.85rem;display:flex}.reservation-cards-list{flex-direction:column;gap:12px;display:flex}.reservation-card{background:#fff;border:1px solid #94a3b82e;border-radius:16px;flex-direction:column;gap:8px;padding:12px 14px;display:flex;box-shadow:0 8px 24px #1e3a8a0f}.reservation-card:hover{box-shadow:0 6px 16px #2563eb0f}.reservation-card.card-private{position:relative}.reservation-card.card-private:after{content:"";opacity:.85;background:linear-gradient(135deg,#0000 50%,#f59e0b 50%,#b45309 100%);border-bottom-right-radius:15px;width:18px;height:18px;position:absolute;bottom:0;right:0}.res-card-main{justify-content:space-between;align-items:center;gap:8px;display:flex}.res-card-when{flex-wrap:wrap;align-items:baseline;gap:8px;display:flex}.res-card-date,.res-card-time{color:var(--text-dark);font-size:.9rem;font-weight:700}.res-room-badge{width:7.2em;color:var(--text-muted);align-items:center;gap:6px;font-size:.75rem;font-weight:600;display:inline-flex}.res-room-badge:before{content:"";border-radius:50%;flex-shrink:0;width:6px;height:6px}.res-room-badge.room-batting:before,.res-room-badge.room-batting_private:before{background:var(--room-batting)}.res-room-badge.room-putter:before{background:var(--room-putter)}.res-room-badge.room-machine:before{background:var(--room-machine)}.res-room-badge.room-pilates:before{background:var(--room-pilates)}.res-card-actions{gap:8px;display:flex}.res-card-actions .btn-danger{color:#be123cb3;background:#fff;border-color:#94a3b840}.res-card-actions .btn-danger:hover{background:#fff1f2}.res-card-actions .btn{flex:1}.btn-sm{border-radius:var(--border-radius-sm);white-space:nowrap;padding:8px 10px;font-size:.75rem}.btn-calendar{color:var(--text-muted);border-color:#94a3b840;font-family:inherit;text-decoration:none}.btn-calendar:hover{background:var(--bg-light-blue)}.history-month-nav{justify-content:center;align-items:center;gap:4px;display:flex}.history-month-label{text-align:center;min-width:110px;color:var(--text-dark);font-size:.9rem;font-weight:700}.history-month-summary{background:#94a3b81a;border-radius:12px;grid-template-columns:repeat(4,1fr);margin-bottom:10px;padding:8px 0 9px;display:grid}.history-stat{flex-direction:column;align-items:flex-start;gap:2px;padding-left:15px;display:flex}.history-stat-name{color:var(--text-muted);align-items:center;gap:4px;font-size:.7rem;display:flex}.history-stat-name:before{content:"";border-radius:50%;flex-shrink:0;width:6px;height:6px}.history-stat-name.room-batting:before{background:var(--room-batting)}.history-stat-name.room-putter:before{background:var(--room-putter)}.history-stat-name.room-machine:before{background:var(--room-machine)}.history-stat-name.room-pilates:before{background:var(--room-pilates)}.history-stat-count{color:var(--text-dark);font-variant-numeric:tabular-nums;font-size:.95rem;font-weight:700}.history-stat.is-zero .history-stat-count{color:#64748b73;font-weight:600}.history-stat.is-zero .history-stat-name:before{opacity:.35}.past-reservations-list{flex-direction:column;display:flex}.past-reservation-item{font-variant-numeric:tabular-nums;border-bottom:1px solid #94a3b829;grid-template-columns:7.5em 1fr auto;align-items:center;padding:10px 15px;display:grid}.past-reservation-item:last-child{border-bottom:0}.past-res-date{color:var(--text-dark);font-size:.85rem;font-weight:600}.past-res-time{color:var(--text-muted);font-size:.85rem}@media (width<=375px){.container{padding:8px}.card{padding:12px}.booking-grid{gap:4px}.grid-header{grid-template-columns:45px repeat(4,1fr);gap:4px;padding-bottom:6px;font-size:.7rem}.sheet-head{margin:0 -10px;padding:2px 10px 0}.grid-row{grid-template-columns:45px repeat(4,1fr);gap:4px}.time-label{padding:6px 0;font-size:.7rem}.slot-cell{min-height:48px;padding:4px 1px}.slot-status-text{margin-bottom:1px;font-size:.73rem}.slot-capacity-info{white-space:nowrap;font-size:.58rem}.res-card-actions .btn-sm{padding:8px 6px;font-size:.68rem}}.member-info-panel{color:#f8fafc;background:radial-gradient(110% 140% at 0 0,#60a5fa70 0%,#0000 48%),linear-gradient(135deg,#2e5be6 0%,#1e3a8a 60%,#172554 100%);border:1px solid #ffffff1f;border-radius:19px;padding:18px 20px;box-shadow:0 13px 30px #1e3a8a38}.member-info-head{align-items:center;gap:12px;min-width:0;display:flex}.member-info-name{color:#fff;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;font-size:.98rem;font-weight:700;line-height:1.4;overflow:hidden}.member-rank{color:#f8fafc;background:#ffffff2e;border:1px solid #ffffff29;border-radius:999px;flex:none;padding:4px 11px;font-size:.68rem;font-weight:600}.member-rank.is-vip{color:#3b2408;background:#fbbf24}.member-info-details{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:20px;margin-top:16px;display:grid}.member-info-field{flex-direction:column;gap:5px;min-width:0;display:flex}.member-info-label{color:#ffffff8c;letter-spacing:.05em;font-size:.65rem}.member-info-number{color:#fff;letter-spacing:.08em;text-overflow:ellipsis;white-space:nowrap;font-family:SFMono-Regular,Menlo,Consolas,monospace;font-size:1.12rem;overflow:hidden}.member-info-registered{text-align:right;align-items:flex-end}.member-info-date{color:#ffffffd1;text-overflow:ellipsis;white-space:nowrap;font-size:.72rem;overflow:hidden}@media (width<=375px){.member-info-panel{padding:16px}.member-info-number{letter-spacing:.05em;font-size:1rem}}
