:root{--paper:#fbf6ee;--card:#fffbf3;--leaf:#5e7a55;--orange:#d4956b;--ink:#3d342a;--muted:#6b5d4f;--line:#d9d1c3;--danger:#b64b42}*{box-sizing:border-box}body{margin:0;background:#eae3d9;color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Hiragino Sans","Noto Sans JP",sans-serif;line-height:1.5}.app-shell{max-width:680px;margin:0 auto;min-height:100vh;background:var(--paper)}.demo-ribbon{display:flex;gap:10px;align-items:center;padding:8px 16px;background:#453d35;color:#fff;font-size:12px}.demo-ribbon strong{letter-spacing:.09em}.app-header{display:flex;justify-content:space-between;align-items:center;padding:22px 20px 16px;border-bottom:1px solid var(--line)}.app-header p,.screen-heading p,#screen-complete>p{margin:0;color:var(--leaf);font-size:12px;font-weight:700;letter-spacing:.08em}.app-header h1{margin:2px 0 0;font-size:24px}.app-header span,.app-header a{font-size:13px;color:var(--muted)}.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:2px;margin:0;padding:18px 16px;list-style:none}.steps li{position:relative;text-align:center;color:#a79d8e;font-size:11px;font-weight:700}.steps li:before{content:"";position:absolute;top:12px;left:-50%;width:100%;height:2px;background:#d8d2c9;z-index:0}.steps li:first-child:before{display:none}.steps i{position:relative;z-index:1;display:grid;place-items:center;width:24px;height:24px;margin:0 auto 5px;border-radius:50%;background:#d8d2c9;color:#fff;font-style:normal}.steps .is-active,.steps .is-done{color:var(--leaf)}.steps .is-active i,.steps .is-done i,.steps .is-done:before{background:var(--leaf)}.screen{padding:8px 16px 28px}.screen-heading{margin:4px 0 18px}.screen-heading h2{margin:3px 0;font-size:22px}.screen-heading span{font-size:13px;color:var(--muted)}label{display:block;margin:0 0 14px;font-size:14px;font-weight:700}input,select,textarea{display:block;width:100%;margin-top:5px;padding:12px;border:1px solid var(--line);border-radius:6px;background:#fffdf8;color:var(--ink);font:inherit;font-weight:400}.menu-field select{border-color:var(--leaf)}.week-nav{display:grid;grid-template-columns:46px 1fr 46px;align-items:center;margin-top:20px;background:var(--leaf);color:#fff}.week-nav button{height:48px;border:0;background:transparent;color:#fff;font-size:38px;line-height:1;cursor:pointer}.week-nav strong{text-align:center;font-size:15px}.slot-legend{margin:10px 0;font-size:12px;color:var(--muted);text-align:right}.legend-free{color:var(--leaf);font-weight:800}.legend-busy{padding-left:12px;color:#9a9389;font-weight:800}.calendar-scroll{overflow:hidden;border:1px solid var(--line);background:#fff}.booking-grid{width:100%;border-collapse:collapse;table-layout:fixed;font-size:11px}.booking-grid th{padding:5px 1px;background:#f1eee8;border:1px solid #fff;color:var(--muted)}.booking-grid th small{display:block;font-size:10px}.booking-grid td{height:30px;padding:1px;border:1px solid #eee9e0;text-align:center}.booking-grid td:first-child{padding:0 3px;background:#f5f2ec;text-align:right;font-weight:700;color:var(--muted)}.slot{width:100%;height:100%;border:0;border-radius:3px;background:transparent;color:#9f978b;cursor:not-allowed;font:inherit}.slot.is-free{border:1px solid #a8bc9f;color:var(--leaf);background:#fff;cursor:pointer;font-weight:800}.slot.is-free:hover,.slot.is-selected{background:#e2eadc}.slot.is-range{background:#f6e4d8;border-color:var(--orange);color:#9a5b3a}.time-selection,.selection-card,.confirm-content{margin:18px 0;padding:16px;border:1px solid var(--leaf);border-radius:6px;background:var(--card)}.time-selection p{margin:0 0 10px}.time-selection label{margin:0}.primary-button,.secondary-button,.danger-button{width:100%;min-height:52px;border:0;border-radius:6px;font:inherit;font-weight:800;cursor:pointer}.primary-button{background:var(--leaf);color:#fff}.primary-button:disabled{background:#b7b2a8;cursor:not-allowed}.secondary-button{background:#fff;border:1px solid var(--leaf);color:var(--leaf)}.danger-button{margin-top:18px;background:#fff0ed;color:var(--danger);border:1px solid #e6b9b1}.back-link{padding:0;border:0;background:none;color:var(--leaf);font:inherit;font-weight:700;cursor:pointer}.two-columns{display:grid;grid-template-columns:1fr 1fr;gap:12px}.check-row{display:flex;gap:9px;font-size:13px;font-weight:400}.check-row input{width:18px;height:18px;margin:2px 0 0}.form-error{color:var(--danger);font-size:13px;font-weight:700}.is-hidden{display:none!important}.notice{padding:12px;border-left:3px solid var(--orange);background:#f7eadf;font-size:13px}.selection-card strong,.confirm-row strong{color:var(--leaf)}.selection-card p{margin:5px 0}.confirm-row{padding:11px 0;border-bottom:1px dotted var(--line)}.confirm-row span{display:block;font-size:12px;color:var(--muted)}.complete-mark{display:grid;place-items:center;width:54px;height:54px;margin:18px auto;border-radius:50%;background:var(--leaf);color:#fff;font-size:30px}.complete-mark+h2{text-align:center}footer{padding:20px 16px 34px;border-top:1px solid var(--line);font-size:12px;color:var(--muted)}footer p{margin:0 0 8px}.staff-app{padding-bottom:32px}.login-card{margin:22px 16px;padding:20px;border:1px solid var(--line);background:var(--card)}.login-card h2{margin-top:0}.staff-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:16px}.summary-card{padding:13px 8px;background:#fff;border:1px solid var(--line);text-align:center}.summary-card span{display:block;font-size:11px;color:var(--muted)}.summary-card strong{font-size:22px;color:var(--leaf)}.staff-toolbar{display:flex;align-items:center;justify-content:space-between;padding:0 16px}.staff-toolbar .secondary-button{width:auto;min-height:38px;padding:0 14px}.reservation-list{padding:0 16px}.reservation-card{margin:10px 0;padding:14px;background:#fff;border:1px solid var(--line)}.reservation-card header{display:flex;align-items:center;justify-content:space-between;gap:8px}.reservation-card h3{margin:0;font-size:15px}.status{padding:3px 7px;border-radius:999px;font-size:11px;font-weight:700}.status-PENDING{background:#f6e4d8;color:#9a5b3a}.status-CONFIRMED{background:#e1eadb;color:var(--leaf)}.status-ADJUST{background:#f1eee8;color:var(--muted)}.status-CANCELLED{background:#f1d9d6;color:#8e423b}.reservation-card p{margin:7px 0;font-size:13px}.reservation-actions{display:flex;gap:7px;margin-top:12px}.reservation-actions button{flex:1;padding:8px;border:1px solid var(--leaf);border-radius:4px;background:#fff;color:var(--leaf);font:inherit;font-size:12px;font-weight:700;cursor:pointer}.reservation-actions button:last-child{border-color:#bd766e;color:#a65249}.staff-app>.danger-button{margin:18px 16px;width:calc(100% - 32px)}.loading{position:fixed;right:16px;bottom:16px;padding:10px 15px;border-radius:99px;background:#453d35;color:#fff;font-size:13px;font-weight:700;box-shadow:0 5px 18px #0003}@media(max-width:380px){.week-nav strong{font-size:13px}.booking-grid{font-size:10px}.booking-grid td{height:28px}.two-columns{gap:8px}.screen{padding-inline:12px}}
.time-sheet-backdrop{position:fixed;inset:0;z-index:20;background:#332b24aa}.time-sheet{position:fixed;z-index:21;left:50%;bottom:0;width:min(680px,100%);transform:translateX(-50%);padding:18px 16px calc(18px + env(safe-area-inset-bottom));border-radius:18px 18px 0 0;background:var(--card);box-shadow:0 -10px 35px #0004}.time-sheet-header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.time-sheet-header p{margin:0;color:var(--muted);font-size:12px;font-weight:700}.time-sheet-header h2{margin:2px 0 0;color:var(--leaf);font-size:22px}.sheet-close{display:grid;place-items:center;width:36px;height:36px;border:0;border-radius:50%;background:#eee8de;color:var(--ink);font-size:26px;line-height:1;cursor:pointer}.time-sheet-question{margin:16px 0 9px;font-size:14px;font-weight:800}.duration-options{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.duration-button{min-height:48px;border:1px solid #a8bc9f;border-radius:7px;background:#fff;color:var(--leaf);font:inherit;font-size:14px;font-weight:800;cursor:pointer}.duration-button.is-selected{border-color:var(--leaf);background:var(--leaf);color:#fff}.duration-button:disabled{border-color:#ddd6cc;background:#f2eee8;color:#aaa297;cursor:not-allowed}.time-sheet-divider{display:flex;align-items:center;gap:10px;margin:14px 0 10px;color:var(--muted);font-size:12px}.time-sheet-divider:before,.time-sheet-divider:after{content:"";flex:1;height:1px;background:var(--line)}.end-time-field{margin:0}.range-label{min-height:24px;margin:12px 0;color:var(--leaf);font-size:15px;font-weight:800;text-align:center}.sheet-text-button{display:block;margin:12px auto 0;padding:4px;border:0;background:transparent;color:var(--muted);font:inherit;font-size:13px;text-decoration:underline;cursor:pointer}@media(max-width:380px){.time-sheet{padding-inline:12px}.duration-options{gap:6px}.duration-button{font-size:13px}}

.calendar-swipe-hint{display:none}@media(max-width:640px){.demo-ribbon{align-items:flex-start;padding:10px 16px;line-height:1.45}.steps{padding:20px 16px 14px}.steps li{font-size:12px}.steps i{width:28px;height:28px;margin-bottom:6px}.screen{padding:12px 16px 34px}.screen-heading h2{font-size:24px;line-height:1.4}.screen-heading span{font-size:14px;line-height:1.7}.calendar-swipe-hint{display:block;margin:8px 0 7px;color:var(--leaf);font-size:13px;font-weight:800;text-align:center}.calendar-scroll{overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}.booking-grid{min-width:650px;font-size:13px}.booking-grid th{padding:8px 2px}.booking-grid th small{font-size:11px}.booking-grid td{height:42px}.booking-grid th:first-child,.booking-grid td:first-child{position:sticky;left:0;z-index:2}.booking-grid th:first-child{z-index:3}.booking-grid td:first-child{padding:0 7px}.slot{min-height:40px;font-size:16px}.slot.is-free{border-width:2px}.primary-button,.secondary-button{min-height:56px;font-size:16px}}@media(max-width:380px){.booking-grid{min-width:620px}.calendar-swipe-hint{font-size:12px}}
