:root{--pine:#0e2a1e;--turf:#1e5b3c;--lime:#c6f24e;--mist:#f4f7f2;--ink:#15211b;--line:#d8e2da;--booked:#b9c4bc;--gcal:#8fa69a;--danger:#c0472e;--radius:14px}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;height:100%}body{background:var(--mist);color:var(--ink);min-height:100%;font-family:Noto Sans JP,sans-serif;font-size:15px}a{color:inherit}.num{letter-spacing:.02em;font-family:Oswald,Noto Sans JP,sans-serif;font-weight:600}header.site-header{background:var(--pine);color:#fff;padding:14px 16px 12px}header.site-header .eyebrow{letter-spacing:.18em;color:var(--lime);margin-bottom:2px;font-size:11px}header.site-header h1{font-size:17px;font-weight:700}header.site-header a.back-link{color:#ffffffbf;margin-top:6px;font-size:12px;text-decoration:underline;display:inline-block}.datebar{background:var(--pine);color:#fff;justify-content:space-between;align-items:center;padding:0 10px 14px;display:flex}.datebar button{color:#fff;cursor:pointer;background:#ffffff1a;border:none;border-radius:10px;width:38px;height:38px;font-size:18px}.datebar button:disabled{opacity:.35;cursor:default}.datebar .day{text-align:center}.datebar .day .d{font-size:19px;font-weight:700}.cal-icon-btn{vertical-align:middle;cursor:pointer;background:#ffffff29;border:1px solid #ffffff4d;border-radius:8px;margin-left:6px;padding:4px 7px;font-size:15px;line-height:1}.cal-icon-btn:active{background:#ffffff47}.badge{border-radius:99px;margin-top:3px;padding:2px 10px;font-size:11px;font-weight:500;display:inline-block}.badge.wd{color:#dce8e0;background:#ffffff26}.badge.hd{background:var(--lime);color:var(--pine)}main.app-main{max-width:560px;margin:0 auto;padding:16px 16px 190px}main.app-main.no-panel{padding-bottom:32px}section{margin-bottom:22px}h2.section-title{letter-spacing:.14em;color:var(--turf);margin-bottom:10px;font-size:12px;font-weight:700}.tl-wrap{border:1px solid var(--line);border-radius:var(--radius);background:#fff;padding:12px 12px 12px 6px}.tl-scroll{border-radius:8px;height:340px;position:relative;overflow-y:auto}.timeline{background:repeating-linear-gradient(to bottom, #fff 0 59px, var(--line) 59px 60px);border-left:1px solid var(--line);height:1440px;margin-left:44px;position:relative}.hourlbl{text-align:right;color:#7c8b81;width:38px;font-size:10px;position:absolute;left:-44px;transform:translateY(-6px)}.band{border-radius:6px;padding:3px 8px;font-size:11px;line-height:1.3;position:absolute;left:6px;right:6px;overflow:hidden}.band.booked{background:var(--booked);color:#fff}.band.gcal{background:var(--gcal);color:#fff}.band.buffer{color:#93a399;background:repeating-linear-gradient(135deg,#e7ede8 0 4px,#f6f9f6 4px 8px);border:1px dashed #c3cfc6;align-items:center;padding:0 8px;font-size:9px;display:flex}.band.night{pointer-events:none;background:linear-gradient(#0e2a1e0a,#0e2a1e12);border-radius:0;left:0;right:0}.band.day-divider{border-top:1px dashed var(--turf);pointer-events:none;justify-content:center;height:0;padding:0;display:flex;left:0;right:0;overflow:visible}.band.day-divider span{background:var(--mist);color:var(--turf);letter-spacing:.06em;border:1px solid var(--line);border-radius:99px;padding:1px 10px;font-size:10px;font-weight:700;transform:translateY(-9px)}.band.sel{background:var(--lime);color:var(--pine);border:2px solid var(--turf);z-index:5;touch-action:none;cursor:grab;-webkit-user-select:none;user-select:none;font-weight:700}.band.sel .t{pointer-events:none;font-size:12px}.sel-handle{cursor:ns-resize;justify-content:center;align-items:flex-end;height:22px;display:flex;position:absolute;bottom:0;left:0;right:0}.sel-handle:before{content:"";background:var(--pine);opacity:.5;border-radius:99px;width:38px;height:5px;margin-bottom:4px}.tl-note{color:#7c8b81;flex-wrap:wrap;gap:14px;margin-top:8px;font-size:11px;display:flex}.tl-note i{vertical-align:-1px;border-radius:3px;width:10px;height:10px;margin-right:4px;font-style:normal;display:inline-block}.card{border:1px solid var(--line);border-radius:var(--radius);background:#fff;padding:16px}.field{margin-bottom:16px}.field:last-child{margin-bottom:0}label{color:var(--turf);margin-bottom:8px;font-size:12px;font-weight:700;display:block}select,input[type=text],input[type=email],input[type=tel],input[type=password],input[type=date],textarea{border:1px solid var(--line);background:#fff;border-radius:10px;width:100%;padding:12px;font-family:inherit;font-size:16px}.stepper{align-items:center;gap:10px;display:flex}.stepper button{border:1px solid var(--line);cursor:pointer;width:52px;height:48px;color:var(--turf);background:#fff;border-radius:10px;font-size:20px;font-weight:700}.stepper button:active{background:var(--mist)}.stepper .val{text-align:center;flex:1;font-size:22px}.chips{flex-wrap:wrap;gap:8px;margin-top:10px;display:flex}.chips button{border:1px solid var(--line);cursor:pointer;background:#fff;border-radius:99px;padding:7px 14px;font-family:inherit;font-size:13px}.chips button.on{background:var(--turf);color:#fff;border-color:var(--turf)}.warn{color:var(--danger);margin-top:8px;font-size:12px}.pricepanel{z-index:20;background:var(--pine);color:#fff;border-radius:18px 18px 0 0;max-width:560px;margin:0 auto;position:fixed;bottom:0;left:0;right:0;box-shadow:0 -6px 24px #0e2a1e40}.pp-head{cursor:pointer;justify-content:space-between;align-items:flex-end;padding:14px 18px 10px;display:flex}.pp-head .lbl{letter-spacing:.14em;color:#9fb5a8;margin-bottom:2px;font-size:11px}.pp-head .total{color:var(--lime);font-size:34px;line-height:1}.pp-head .total small{color:#dce8e0;margin-left:4px;font-family:Noto Sans JP;font-size:14px}.pp-head .sub{color:#9fb5a8;text-align:right;font-size:11px}.discount-pill{background:var(--lime);color:var(--pine);border-radius:99px;margin-bottom:4px;padding:3px 12px;font-size:12px;font-weight:700;display:inline-block}.next-hint{color:#cfe59b;margin-top:2px;font-size:11px}.pp-detail{border-top:1px solid #ffffff1f;padding:12px 18px;display:none}.pp-detail.open{display:block}.pp-row{color:#dce8e0;justify-content:space-between;padding:4px 0;font-size:13px;display:flex}.pp-row.total-row{color:#fff;border-top:1px solid #ffffff26;margin-top:6px;padding-top:10px;font-weight:700}.pp-row .num{font-size:14px}.pp-actions{padding:0 18px 16px}.cta{background:var(--lime);width:100%;color:var(--pine);cursor:pointer;text-align:center;border:none;border-radius:12px;padding:15px;font-family:inherit;font-size:16px;font-weight:700;text-decoration:none;display:block}.cta:disabled{color:#7f978a;cursor:default;background:#3d5648}.pp-toggle{color:#9fb5a8;text-align:center;cursor:pointer;padding-bottom:6px;font-size:11px}.note{color:#7c8b81;margin-top:10px;font-size:11px;line-height:1.6}.overlay{z-index:40;background:#0e2a1e8c;display:none;position:fixed;inset:0}.overlay.open{display:block}.sheet{z-index:50;background:#fff;border-radius:20px 20px 0 0;max-width:560px;margin:0 auto;padding:20px 18px 24px;transition:transform .25s;position:fixed;bottom:0;left:0;right:0;transform:translateY(100%)}.sheet.open{transform:translateY(0)}.sheet h3{margin-bottom:4px;font-size:15px}.sheet .sh-date{color:#5a6b60;margin-bottom:14px;font-size:13px}.adjrow{border:1px solid var(--line);border-radius:12px;justify-content:space-between;align-items:center;margin-bottom:10px;padding:10px 12px;display:flex}.adjrow .lbl2{color:var(--turf);width:44px;font-size:12px;font-weight:700}.adjrow .time{text-align:center;flex:1;font-size:24px}.adjrow button{border:1px solid var(--line);cursor:pointer;width:46px;height:42px;color:var(--turf);background:#fff;border-radius:10px;font-size:15px;font-weight:700}.adjrow button:disabled{color:#c3cfc6;cursor:default}.sh-price{background:var(--pine);color:#fff;border-radius:12px;margin:14px 0;padding:12px 14px}.sh-price .row1{justify-content:space-between;align-items:center;display:flex}.sh-price .amt{color:var(--lime);font-size:26px}.sh-price .dur2{color:#9fb5a8;font-size:12px}.sh-price .hint2{color:#cfe59b;margin-top:4px;font-size:11px}.sh-actions{gap:10px;display:flex}.sh-actions .back{border:1px solid var(--line);cursor:pointer;color:#5a6b60;background:#fff;border-radius:12px;flex:1;padding:14px;font-family:inherit;font-size:14px}.sh-actions .cta{flex:2}.cal-sheet{z-index:60}.cal-nav{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.cal-nav button{background:var(--mist);color:var(--turf);cursor:pointer;border:none;border-radius:10px;width:38px;height:38px;font-size:18px}.cal-nav button:disabled{opacity:.35;cursor:default}.cal-title{color:var(--pine);font-size:15px;font-weight:700}.cal-grid{grid-template-columns:repeat(7,1fr);gap:4px;display:grid}.cal-weekdays{margin-bottom:4px}.cal-weekday{text-align:center;color:#7c8b81;font-size:11px;font-weight:700}.cal-cell{aspect-ratio:1;background:var(--mist);color:var(--pine);cursor:pointer;border:none;border-radius:8px;font-family:inherit;font-size:13px}.cal-cell.empty{cursor:default;background:0 0}.cal-cell:disabled{color:#c3cfc6;cursor:default}.cal-cell.today{border:1px solid var(--turf)}.cal-cell.selected{background:var(--lime);color:var(--pine);font-weight:700}.page-narrow{max-width:560px;margin:0 auto;padding:16px}.btn-secondary{border:1px solid var(--line);width:100%;color:var(--turf);cursor:pointer;text-align:center;background:#fff;border-radius:12px;padding:13px;font-family:inherit;font-size:15px;font-weight:700;text-decoration:none;display:block}.btn-danger{background:var(--danger);color:#fff;cursor:pointer;border:none;border-radius:12px;width:100%;padding:13px;font-family:inherit;font-size:15px;font-weight:700}.btn-danger:disabled{cursor:default;background:#d9a99c}.link-button{color:var(--ink);cursor:pointer;background:0 0;border:none;padding:0;font-family:inherit;font-size:13px;text-decoration:underline}.link-button:disabled{color:#9aa39c;cursor:default}.error-text{color:var(--danger);margin-top:8px;font-size:13px}.success-text{color:var(--turf);margin-top:8px;font-size:13px}.checkbox-row{color:#5a6b60;align-items:flex-start;gap:8px;font-size:13px;display:flex}.checkbox-row input{margin-top:3px}.admin-shell{flex-direction:column;min-height:100vh;display:flex}.admin-nav{background:var(--pine);color:#fff;flex-wrap:wrap;align-items:center;gap:16px;padding:12px 16px;display:flex}.admin-nav a{color:#dce8e0;font-size:13px;text-decoration:none}.admin-nav a.active{color:var(--lime);font-weight:700}.admin-nav .spacer{flex:1}.admin-nav button{color:#fff;cursor:pointer;background:#ffffff1a;border:none;border-radius:8px;padding:6px 12px;font-size:12px}.admin-main{flex:1;width:100%;max-width:900px;margin:0 auto;padding:20px 16px 60px}table.admin-table{border-collapse:collapse;border:1px solid var(--line);border-radius:var(--radius);background:#fff;width:100%;font-size:13px;overflow:hidden}table.admin-table th,table.admin-table td{text-align:left;border-bottom:1px solid var(--line);padding:10px 12px}table.admin-table th{background:var(--mist);color:var(--turf);letter-spacing:.06em;font-size:11px}table.admin-table tr:last-child td{border-bottom:none}.status-pill{border-radius:99px;padding:2px 10px;font-size:11px;font-weight:700;display:inline-block}.status-pill.confirmed{color:var(--turf);background:#e3f3e7}.status-pill.pending{color:#9a6b1c;background:#fdf1d6}.status-pill.cancelled{color:var(--danger);background:#f6e4e0}.status-pill.abandoned{color:#a85a12;background:#fde4c4}
