.grrc-app { --grrc-primary:#0f6e5c; --grrc-primary-dark:#0a4d40; --grrc-bg:#f6f8f7; --grrc-border:#dbe3e0; --grrc-danger:#c0392b;
	max-width: 720px; margin: 0 auto; font-family: -apple-system, BlinkMacSystemFont, "Hiragino Sans", "Yu Gothic", sans-serif; color:#20302c; }

.grrc-loading { padding: 40px; text-align:center; color:#888; }

.grrc-steps { display:flex; flex-wrap:wrap; gap:4px; margin-bottom:20px; }
.grrc-step { flex:1; min-width:60px; text-align:center; padding:8px 4px; border-radius:8px; background:#eef1f0; font-size:12px; color:#8a948f; }
.grrc-step.is-active { background:var(--grrc-primary); color:#fff; font-weight:bold; }
.grrc-step.is-done { background:#cfe6df; color:var(--grrc-primary-dark); }
.grrc-step-num { display:block; font-size:14px; }

.grrc-box { background:#fff; border:1px solid var(--grrc-border); border-radius:12px; padding:20px; margin-bottom:16px; }
.grrc-box h3 { margin-top:0; }

.grrc-link-btn { background:none; border:none; color:var(--grrc-primary); cursor:pointer; padding:0 0 12px; font-size:14px; display:block; }
.grrc-topbar { text-align:right; margin-bottom:8px; }
.grrc-topbar .grrc-link-btn { display:inline-block; padding:0 0 8px; text-decoration:underline; }

.grrc-class-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(150px,1fr)); gap:12px; }
.grrc-class-card { border:2px solid var(--grrc-border); border-radius:10px; background:#fff; padding:16px 10px; cursor:pointer; text-align:center; transition:.15s; }
.grrc-class-card:hover { border-color:var(--grrc-primary); }
.grrc-class-label { font-weight:bold; margin-bottom:6px; }
.grrc-class-price { font-size:13px; color:#5a6a64; }

.grrc-note { font-size:13px; color:#5a6a64; }

.grrc-calendar-header { display:flex; align-items:center; justify-content:center; gap:16px; margin-bottom:8px; font-weight:bold; }
.grrc-nav-btn { border:1px solid var(--grrc-border); background:#fff; border-radius:6px; width:32px; height:32px; cursor:pointer; font-size:16px; }
.grrc-calendar-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:4px; }
.grrc-cal-dow { text-align:center; font-size:12px; color:#8a948f; padding:4px 0; }
.grrc-cal-cell { position:relative; aspect-ratio:1; border:none; background:#f1f3f2; border-radius:6px; cursor:default; font-size:13px; }
.grrc-cal-cell.is-empty { background:transparent; }
.grrc-cal-cell.is-available { background:#e3f3ec; color:var(--grrc-primary-dark); cursor:pointer; font-weight:bold; }
.grrc-cal-cell.is-available:hover { background:#c9e9dc; }
.grrc-cal-cell.is-unavailable { color:#c3cac7; }
.grrc-cal-cell.is-selected-start, .grrc-cal-cell.is-selected-end { background:var(--grrc-primary); color:#fff; }
.grrc-cal-time { display:block; font-size:8px; font-weight:normal; line-height:1.15; }
.grrc-cal-cell.is-in-range { background:#bfe2d5; }

.grrc-time-row { display:flex; gap:16px; margin-top:16px; }
.grrc-time-field { display:flex; flex-direction:column; gap:4px; font-size:13px; }
.grrc-time-field input, .grrc-time-field select { padding:6px; border:1px solid var(--grrc-border); border-radius:6px; background:#fff; font-size:16px; }

.grrc-selection-summary { margin:16px 0; padding:10px; background:var(--grrc-bg); border-radius:8px; font-size:14px; }

.grrc-primary-btn { display:block; width:100%; padding:14px; background:var(--grrc-primary); color:#fff; border:none; border-radius:8px; font-size:15px; font-weight:bold; cursor:pointer; margin-top:12px; }
.grrc-primary-btn:disabled { background:#b7c3bd; cursor:not-allowed; }

.grrc-option-group { margin-bottom:20px; }
.grrc-option-group-title { font-weight:bold; margin-bottom:8px; }
.grrc-radio, .grrc-checkbox { display:block; padding:8px 0; font-size:14px; }
.grrc-info-link { margin-left:10px; font-size:12px; color:var(--grrc-primary); text-decoration:underline; white-space:nowrap; }

.grrc-estimate-box { background:var(--grrc-bg); border-radius:8px; padding:14px; margin:16px 0; }
.grrc-estimate-row { display:flex; justify-content:space-between; padding:4px 0; font-size:14px; }
.grrc-estimate-total { display:flex; justify-content:space-between; padding-top:8px; margin-top:8px; border-top:1px solid var(--grrc-border); font-weight:bold; font-size:16px; color:var(--grrc-primary-dark); }

.grrc-form { display:flex; flex-direction:column; gap:14px; }
.grrc-field { display:flex; flex-direction:column; gap:4px; font-size:14px; }
.grrc-field input { padding:10px; border:1px solid var(--grrc-border); border-radius:6px; font-size:16px; }
.grrc-inline-row { display:flex; gap:8px; align-items:stretch; }
.grrc-inline-row input { flex:1; }
.grrc-secondary-btn { padding:0 14px; border:1px solid var(--grrc-primary); color:var(--grrc-primary); background:#fff; border-radius:6px; font-size:13px; white-space:nowrap; cursor:pointer; }

.grrc-error { color:var(--grrc-danger); font-size:13px; margin:8px 0; }

.grrc-done { text-align:center; }

@media (max-width:480px) {
	.grrc-step-label { display:none; }
}
