:root{--ink: #111827;--ink-2: #374151;--ink-3: #6b7280;--ink-4: #9ca3af;--surface: #ffffff;--surface-2:#f9fafb;--surface-3:#f3f4f6;--border: #e5e7eb;--accent: #2563eb;--accent-light: #eff6ff;--accent-hover: #1d4ed8;--available:#dcfce7;--available-text: #15803d;--taken: #fee2e2;--taken-text:#b91c1c;--selected: #dbeafe;--selected-border: #2563eb;--selected-text: #1d4ed8;--radius: 12px;--radius-sm: 8px}:where(.rb-scope,.rb-scope *):not(footer,footer *){box-sizing:border-box;margin:0;padding:0}html{overflow-x:hidden}body{font-family:Noto Sans JP,sans-serif;background:var(--surface-2);color:var(--ink);min-height:100vh;padding-bottom:120px}.site-header{background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100}.site-header .inner{max-width:1100px;margin:0 auto;padding:0 24px;height:60px;display:flex;align-items:center;justify-content:space-between}.breadcrumb{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-3)}.breadcrumb a{color:var(--accent);text-decoration:none}.breadcrumb a:hover{text-decoration:underline}.breadcrumb-sep{color:var(--ink-4)}.cart-btn{position:relative;background:none;border:1px solid var(--border);border-radius:var(--radius-sm);padding:8px 14px;cursor:pointer;display:flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-2);text-decoration:none;transition:background .15s}.cart-btn:hover{background:var(--surface-3)}.cart-badge{background:#ef4444;color:#fff;font-size:10px;font-weight:700;width:18px;height:18px;border-radius:50%;display:flex;align-items:center;justify-content:center}.page-body{max-width:1100px;margin:0 auto;padding:32px 24px;display:grid;grid-template-columns:1fr 320px;gap:24px}.page-body>*{min-width:0;max-width:100%}@media(max-width:900px){.page-body{grid-template-columns:1fr;padding:16px}}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden;max-width:100%;box-sizing:border-box}.card-title{font-size:14px;font-weight:600;color:var(--ink);display:flex;align-items:center;gap:8px}.card-title i{color:var(--accent);font-size:13px}.room-hero{padding:24px 24px 20px}.room-name{font-family:Noto Sans JP,sans-serif;font-size:24px;font-weight:600;letter-spacing:-.5px;margin-bottom:4px}.studio-name{font-size:13px;color:var(--ink-3);margin-bottom:16px}.room-stats{display:flex;flex-wrap:wrap;gap:14px}.stat-item{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--ink-2)}.stat-item i{color:var(--accent);width:14px}.stat-price{font-size:18px;font-weight:700;color:var(--accent)}.stat-price span{font-size:11px;font-weight:400;color:var(--ink-3)}.room-desc{margin-top:14px;font-size:13px;color:var(--ink-3);line-height:1.7;padding-top:14px;border-top:1px solid var(--border)}.amenity-tags{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.amenity-tag{background:var(--surface-3);color:var(--ink-2);border-radius:20px;padding:3px 10px;font-size:12px}.equip-list{display:flex;flex-direction:column}.equip-item{display:flex;align-items:center;gap:12px;padding:12px 0;border-bottom:1px solid var(--border)}.equip-item:last-child{border-bottom:none}.equip-icon{width:34px;height:34px;background:var(--accent-light);border-radius:8px;display:flex;align-items:center;justify-content:center;flex-shrink:0}.equip-icon i{color:var(--accent);font-size:13px}.equip-info{flex:1}.equip-name{font-size:13px;font-weight:500}.equip-desc{font-size:12px;color:var(--ink-3);margin-top:1px}.equip-btn{background:none;border:1px solid var(--border);border-radius:var(--radius-sm);padding:5px 11px;font-size:12px;cursor:pointer;color:var(--ink-2);white-space:nowrap;transition:all .15s;display:flex;align-items:center;gap:4px;font-family:inherit}.equip-btn:hover{background:var(--accent);color:#fff;border-color:var(--accent)}.equip-btn.added{background:#dcfce7;color:#15803d;border-color:#86efac;cursor:pointer}.equip-btn.added:hover{background:#fee2e2;color:#dc2626;border-color:#fca5a5}.calendar-section{margin-top:20px}.date-tabs{display:flex;gap:8px;overflow-x:auto;scrollbar-width:none;padding-bottom:2px}.date-tabs::-webkit-scrollbar{display:none}.date-tab{flex-shrink:0;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);padding:7px 14px;cursor:pointer;text-align:center;transition:all .15s;min-width:66px}.date-tab:hover{border-color:var(--accent)}.date-tab.active{background:var(--accent);border-color:var(--accent);color:#fff}.date-tab .tab-day{font-size:11px;opacity:.7}.date-tab .tab-date{font-size:14px;font-weight:600;margin-top:1px}.date-tab.closed,.date-tab:disabled{cursor:not-allowed;opacity:.45;background:var(--surface-2, #f3f4f6)}.date-tab.closed:hover,.date-tab:disabled:hover{border-color:var(--border)}.date-tab.closed.active,.date-tab:disabled.active{background:var(--surface-2, #f3f4f6);border-color:var(--border);color:inherit}.timeline-wrapper{overflow-x:auto;margin-top:14px;width:100%;max-width:100%}.timeline-inner{min-width:580px}.time-labels{display:grid;margin-bottom:4px;padding:0 1px}.time-label-cell{font-size:11px;color:var(--ink-3);text-align:center}.time-label-cell.major{color:var(--ink-2);font-weight:500}.slot-row{display:grid;gap:2px}.time-slot{height:54px;border-radius:5px;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:500;cursor:pointer;transition:transform .1s,box-shadow .1s;position:relative;user-select:none;-webkit-user-select:none}.time-slot.available{background:var(--available);color:var(--available-text)}.time-slot.available:hover{filter:brightness(.95);transform:scaleY(1.05)}.time-slot.taken{background:var(--taken);color:var(--taken-text);cursor:not-allowed;opacity:.65}.time-slot.selected{background:var(--selected);color:var(--selected-text);border-top:2px solid var(--selected-border);border-bottom:2px solid var(--selected-border);transform:scaleY(1.08);z-index:2}.time-slot.selected.sel-start{border-left:2px solid var(--selected-border);border-radius:6px 3px 3px 6px}.time-slot.selected.sel-end{border-right:2px solid var(--selected-border);border-radius:3px 6px 6px 3px}.time-slot.selected.sel-only{border:2px solid var(--selected-border);border-radius:5px}.legend{display:flex;gap:18px;margin-top:12px;flex-wrap:wrap}.legend-item{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--ink-3)}.legend-dot{width:22px;height:12px;border-radius:3px}.sel-summary{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:14px 18px;margin-top:14px}.sel-summary.is-empty .summary-has{display:none}.sel-summary.is-empty .summary-none{display:flex}.summary-none{align-items:center;gap:8px;color:var(--ink-4);font-size:13px}.summary-has{flex-direction:column;gap:8px}.summary-top{display:flex;justify-content:space-between;align-items:center}.summary-title{font-size:12px;font-weight:600;color:var(--ink-3);text-transform:uppercase;letter-spacing:.4px}.summary-clear{background:none;border:none;font-size:12px;color:var(--ink-3);cursor:pointer;padding:2px 6px;border-radius:4px;font-family:inherit}.summary-clear:hover{background:var(--surface-3);color:#ef4444}.summary-groups{display:flex;flex-direction:column;gap:6px}.summary-group-item{display:flex;align-items:center;justify-content:space-between;background:var(--accent-light);border-radius:var(--radius-sm);padding:8px 12px}.sg-time{font-size:14px;font-weight:600;color:var(--accent)}.sg-dur{font-size:12px;color:var(--ink-3);margin-top:1px}.sg-price{font-size:13px;font-weight:600;color:var(--ink)}.sidebar{display:flex;flex-direction:column;gap:16px;min-width:0;max-width:100%}.steps-wrap{display:flex;align-items:center;padding:16px 20px}.step{display:flex;flex-direction:column;align-items:center;gap:3px;flex:1;position:relative}.step:not(:last-child):after{content:"";position:absolute;top:11px;right:-50%;width:100%;height:1px;background:var(--border);z-index:0}.step.s-done:not(:last-child):after,.step.s-active:not(:last-child):after{background:var(--accent)}.step-circle{width:22px;height:22px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;background:var(--surface-3);color:var(--ink-4);border:1.5px solid var(--border);z-index:1;transition:all .2s}.step.s-active .step-circle,.step.s-done .step-circle{background:var(--accent);color:#fff;border-color:var(--accent)}.step-lbl{font-size:10px;color:var(--ink-4)}.step.s-active .step-lbl,.step.s-done .step-lbl{color:var(--accent);font-weight:600}.form-sec{padding:14px 18px;border-bottom:1px solid var(--border)}.form-sec:last-child{border-bottom:none}.form-sec-title{font-size:11px;font-weight:600;color:var(--ink-3);text-transform:uppercase;letter-spacing:.4px;margin-bottom:10px}.form-group{margin-bottom:10px}.form-group:last-child{margin-bottom:0}.form-lbl{display:block;font-size:12px;font-weight:500;color:var(--ink-2);margin-bottom:3px}.form-input{width:100%;max-width:100%;padding:8px 11px;border:1px solid var(--border);border-radius:var(--radius-sm);font-size:13px;font-family:inherit;color:var(--ink);background:var(--surface);transition:border-color .15s;outline:none;box-sizing:border-box}.form-input:focus{border-color:var(--accent);box-shadow:0 0 0 3px #2563eb1a}textarea.form-input{resize:vertical;min-height:68px}.sel-badge{background:var(--accent-light);border:1px solid #93c5fd;border-radius:var(--radius-sm);padding:7px 11px;font-size:13px;color:var(--selected-text);font-weight:500;margin-bottom:6px;display:flex;align-items:center;justify-content:space-between}#no-time-msg{font-size:13px;color:var(--ink-4);text-align:center;padding:10px 0}.price-sec{padding:14px 18px;border-bottom:1px solid var(--border)}.price-row{display:flex;justify-content:space-between;font-size:13px;color:var(--ink-2);margin-bottom:5px}.price-row.total{font-size:15px;font-weight:700;color:var(--ink);margin-top:8px;padding-top:8px;border-top:1px solid var(--border);margin-bottom:0}.submit-sec{padding:14px 18px}.submit-btn{width:100%;background:var(--accent);color:#fff;border:none;border-radius:var(--radius-sm);padding:12px;font-size:14px;font-weight:600;font-family:inherit;cursor:pointer;transition:background .15s,transform .1s;display:flex;align-items:center;justify-content:center;gap:8px}.submit-btn:hover{background:var(--accent-hover)}.submit-btn:active{transform:scale(.98)}.submit-btn:disabled{background:var(--ink-4);cursor:not-allowed}.sticky-bar{position:fixed;bottom:0;left:0;right:0;background:var(--ink);color:#fff;z-index:200;transform:translateY(100%);transition:transform .25s cubic-bezier(.4,0,.2,1)}.sticky-bar.visible{transform:translateY(0)}.sticky-bar .inner{max-width:1100px;margin:0 auto;padding:13px 24px;display:flex;align-items:center;justify-content:space-between;gap:16px}.bar-info{display:flex;flex-direction:column;gap:1px}.bar-time{font-size:14px;font-weight:600}.bar-detail{font-size:12px;color:#ffffff8c}.bar-price{font-size:20px;font-weight:700}.bar-price span{font-size:11px;font-weight:400;opacity:.6}.day-schedule.hidden{display:none}.modal-overlay{position:fixed;inset:0;background:#00000080;z-index:500;display:flex;align-items:center;justify-content:center;padding:24px;opacity:0;pointer-events:none;transition:opacity .2s}.modal-overlay.open{opacity:1;pointer-events:all}.modal{background:var(--surface);border-radius:var(--radius);padding:30px;max-width:420px;width:100%;transform:scale(.95);transition:transform .2s}.modal-overlay.open .modal{transform:scale(1)}.modal-icon{width:60px;height:60px;background:#dcfce7;border-radius:50%;display:flex;align-items:center;justify-content:center;margin:0 auto 18px;font-size:26px;color:#15803d}.modal-title{text-align:center;font-size:19px;font-weight:700;margin-bottom:6px}.modal-sub{text-align:center;font-size:13px;color:var(--ink-3);margin-bottom:20px}.modal-detail{background:var(--surface-3);border-radius:var(--radius-sm);padding:14px;margin-bottom:20px;display:grid;grid-template-columns:1fr 1fr;gap:10px}.modal-detail-item .mlbl{font-size:11px;color:var(--ink-3);margin-bottom:2px}.modal-detail-item .mval{font-size:13px;font-weight:600}.modal-btns{display:flex;gap:10px}.modal-btn{flex:1;padding:10px;border-radius:var(--radius-sm);font-size:13px;font-weight:600;cursor:pointer;font-family:inherit;text-align:center;text-decoration:none;display:flex;align-items:center;justify-content:center;transition:opacity .15s;border:none}.modal-btn:hover{opacity:.85}.modal-btn.sec{background:var(--surface-3);color:var(--ink);border:1px solid var(--border)}.modal-btn.pri{background:var(--accent);color:#fff}@media(max-width:640px){.site-header .inner{padding:8px 14px;height:auto;min-height:52px;flex-wrap:wrap;gap:6px}.breadcrumb{font-size:12px;flex-wrap:wrap;row-gap:2px;max-width:calc(100% - 80px)}.breadcrumb>span:last-child{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-block;vertical-align:middle}.cart-btn{padding:6px 10px;font-size:12px}.page-body{padding:12px 10px;gap:14px}.room-hero{padding:16px 14px}.room-name{font-size:20px}.room-stats{gap:10px}.stat-price{font-size:16px}.calendar-section{margin-top:12px}.sticky-bar .inner{padding:10px 14px;flex-wrap:wrap;gap:8px}.bar-info{flex:1 1 auto;min-width:0}.bar-time{font-size:13px}.bar-detail{font-size:11px}.bar-price{font-size:17px}.modal-overlay{padding:14px}.modal{padding:22px 16px}.modal-detail{grid-template-columns:1fr}.modal-detail-item#modal-equipment-item{grid-column:span 1}.modal-title{font-size:17px}.modal-sub{font-size:12px}}@media(max-width:400px){.site-header .inner{padding:6px 10px}.page-body{padding:8px;gap:10px}.room-hero{padding:12px 10px}.room-name{font-size:18px}.date-tab{min-width:54px;padding:6px 10px}.date-tab .tab-date{font-size:13px}.hint-text{display:none}.sticky-bar .inner{display:grid;grid-template-columns:1fr auto;gap:4px 8px;padding:8px 10px}.bar-info{grid-column:1}.bar-price{grid-column:2;font-size:15px;align-self:center}.modal{padding:18px 12px}.modal-btns{flex-direction:column}}.equip-collapse-wrap{max-height:280px;overflow:hidden;position:relative;transition:max-height .4s ease}.equip-collapse-wrap.expanded{max-height:4000px}.equip-fade{position:absolute;bottom:0;left:0;right:0;height:64px;background:linear-gradient(to bottom,transparent 0%,white 100%);pointer-events:none;z-index:10}.equip-fade.hidden{display:none}.equip-toggle-btn{display:flex;align-items:center;justify-content:center;gap:6px;width:100%;margin-top:12px;padding:10px 14px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--accent);font-family:inherit;font-size:13px;font-weight:500;cursor:pointer;transition:all .15s}.equip-toggle-btn:hover{border-color:var(--accent);background:var(--accent-light)}.equip-toggle-btn:active{transform:scale(.98)}.equip-controls-wrapper{position:relative;width:100%}
