*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{margin:0;height:100%}body{font-family:Helvetica Neue,Helvetica,Hiragino Kaku Gothic ProN,Hiragino Sans,Meiryo,Arial,sans-serif;background:#111;color:#111}#root{height:100%}h1,h2,h3,p{text-wrap:pretty}.serif{font-family:Cormorant Garamond,serif}.jserif{font-family:Shippori Mincho,serif}.screen{width:100%;min-height:100dvh;max-width:520px;margin:0 auto;position:relative;background:#fff;display:flex;flex-direction:column}.app-header{background:#111;color:#fff;padding:calc(env(safe-area-inset-top,0px) + 16px) 18px 14px;display:flex;align-items:center;gap:12px}.app-header .acct{display:flex;align-items:center;gap:10px;flex:1;min-width:0}.acct-avatar{width:34px;height:34px;border-radius:50%;background:#fff;color:#111;display:flex;align-items:center;justify-content:center;font-family:Cormorant Garamond,serif;font-size:17px;font-weight:600;flex-shrink:0}.acct-name{font-size:14px;font-weight:600;letter-spacing:.06em}.tab-row{display:flex;border-top:1px solid #2a2a2c;background:#111}.tab-row button{flex:1;background:none;border:0;color:#9a9aa2;font-size:11px;letter-spacing:.18em;padding:12px 4px;cursor:pointer;font-family:inherit}.tab-row button.on{color:#fff;border-bottom:2px solid #fff}.sheet-body{flex:1;overflow-y:auto;padding:6px 26px 40px}.sheet-foot{flex-shrink:0;padding:14px 26px calc(env(safe-area-inset-bottom,0px) + 22px);border-top:1px solid #efefef;background:#fff;position:sticky;bottom:0}.steps{display:flex;justify-content:center;gap:0;padding:14px 0}.step-dot{display:flex;align-items:center}.step-dot .lbl{font-size:9px;letter-spacing:.22em;color:#bbb;padding:0 2px}.step-dot.on .lbl{color:#111}.step-dot .ln{width:26px;height:1px;background:#ddd;margin:0 6px}.s-eyebrow{font-size:10px;letter-spacing:.3em;color:#999;text-align:center;margin:14px 0 6px}.s-title{font-family:Shippori Mincho,serif;font-size:21px;font-weight:600;text-align:center;letter-spacing:.12em;margin:0 0 8px}.s-lead{font-size:11.5px;color:#777;line-height:1.9;text-align:center;margin:0 0 22px}.field{margin-bottom:18px}.field label{display:block;font-size:10px;letter-spacing:.24em;color:#888;margin-bottom:8px}.field input{width:100%;border:0;border-bottom:1px solid #d8d8d8;padding:8px 2px 10px;font-size:16px;letter-spacing:.06em;outline:none;background:none;border-radius:0;font-family:inherit}.field input:focus{border-bottom-color:#111}.field .err{font-size:10.5px;color:#b4231b;margin-top:6px;letter-spacing:.06em}.agree{display:flex;gap:10px;align-items:flex-start;margin:22px 0 6px;cursor:pointer}.agree input{margin:2px 0 0;accent-color:#111;width:15px;height:15px;flex-shrink:0}.agree .tx{font-size:11.5px;color:#555;line-height:1.8}.agree .tx u{text-underline-offset:3px;cursor:pointer}.btn-primary{display:block;width:100%;background:#111;color:#fff;border:0;cursor:pointer;padding:16px;font-size:12px;letter-spacing:.3em;text-indent:.3em;font-family:inherit}.btn-primary:disabled{background:#d5d5d5;cursor:default}.btn-primary:not(:disabled):active{background:#333}.btn-text{display:block;margin:16px auto 0;background:none;border:0;font-size:10.5px;letter-spacing:.22em;color:#888;text-decoration:underline;text-underline-offset:4px;cursor:pointer;font-family:inherit}.svc-row{display:flex;align-items:center;gap:14px;padding:17px 2px;border-bottom:1px solid #e8e8e8;cursor:pointer;background:none;width:100%;border-left:0;border-right:0;border-top:0;text-align:left;font-family:inherit}.svc-row .nm{font-family:Shippori Mincho,serif;font-size:17px;font-weight:500;letter-spacing:.08em;flex:1}.svc-row .meta{text-align:right}.svc-row .pr{font-size:12px;letter-spacing:.12em;color:#444}.svc-row .du{font-size:10px;letter-spacing:.16em;color:#aaa;margin-top:3px}.svc-row .mark{width:18px;height:18px;border:1px solid #ccc;border-radius:50%;flex-shrink:0;position:relative}.svc-row.sel .mark{border-color:#111}.svc-row.sel .mark:after{content:"";position:absolute;inset:4px;border-radius:50%;background:#111}.svc-row:active{background:#fafafa}.cal-head{display:flex;align-items:center;justify-content:space-between;margin:4px 0 12px}.cal-head .mo{font-family:Cormorant Garamond,serif;font-size:18px;letter-spacing:.24em}.cal-head button{background:none;border:1px solid #ddd;width:30px;height:30px;cursor:pointer;color:#555;font-size:13px;font-family:inherit}.cal-head button:disabled{opacity:.3;cursor:default}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.cal-grid .wd{text-align:center;font-size:9px;letter-spacing:.14em;color:#aaa;padding:4px 0 8px}.cal-grid .wd.sun{color:#c77}.day-cell{aspect-ratio:1;border:0;background:none;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;font-family:inherit;border-radius:50%}.day-cell .d{font-size:14px;font-family:Cormorant Garamond,serif;font-weight:500}.day-cell .st{font-size:8px;color:#999}.day-cell:disabled{opacity:.25;cursor:default}.day-cell.sel{background:#111;color:#fff}.day-cell.sel .st{color:#bbb}.closed-note{font-size:10px;color:#aaa;letter-spacing:.14em;text-align:right;margin-top:8px}.time-block{margin-top:26px}.time-block h4{font-size:10px;letter-spacing:.26em;color:#888;font-weight:400;margin:0 0 12px;display:flex;justify-content:space-between;align-items:baseline}.slot-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.slot{border:1px solid #ddd;background:#fff;padding:11px 0;font-size:12.5px;letter-spacing:.1em;cursor:pointer;font-family:inherit;color:#111}.slot:disabled{color:#c8c8c8;border-color:#eee;text-decoration:line-through;cursor:default;background:#fcfcfc}.slot.sel{background:#111;color:#fff;border-color:#111}.no-slots{font-size:12px;color:#999;text-align:center;padding:24px 0;letter-spacing:.1em}.cf-list{border-top:1px solid #e6e6e6;margin-top:6px}.cf-row{display:flex;justify-content:space-between;align-items:baseline;padding:16px 2px;border-bottom:1px solid #e6e6e6}.cf-row .k{font-size:10px;letter-spacing:.26em;color:#999}.cf-row .v{font-family:Shippori Mincho,serif;font-size:16px;font-weight:500;letter-spacing:.06em;text-align:right}.cf-note{font-size:10.5px;color:#999;line-height:1.9;margin-top:18px;letter-spacing:.04em}.resv-card{border:1px solid #e6e6e6;border-radius:12px;padding:16px 18px;margin-bottom:14px}.resv-card .rc-svc{font-family:Shippori Mincho,serif;font-size:16px;font-weight:600;letter-spacing:.06em}.resv-card .rc-dt{font-size:13px;color:#444;margin-top:6px;letter-spacing:.04em}.resv-card .rc-actions{display:flex;gap:10px;margin-top:14px}.resv-card .rc-actions button{flex:1;border:1px solid #111;background:#fff;color:#111;padding:10px;font-size:11px;letter-spacing:.16em;cursor:pointer;font-family:inherit}.resv-card .rc-actions button.danger{border-color:#b4231b;color:#b4231b}.resv-card .rc-actions button:disabled{opacity:.35;cursor:default;border-color:#ccc;color:#999}.resv-empty{text-align:center;color:#999;font-size:12px;padding:40px 0;letter-spacing:.08em}.deadline-note{font-size:10px;color:#aaa;margin-top:8px;letter-spacing:.04em}.policy-dim{position:fixed;inset:0;background:#00000080;z-index:70;display:flex;align-items:center;justify-content:center;padding:30px 22px}.policy-box{background:#fff;max-height:80vh;display:flex;flex-direction:column;width:100%;max-width:460px;border-radius:8px;overflow:hidden}.policy-box .ph2{font-family:Shippori Mincho,serif;font-size:15px;letter-spacing:.2em;text-align:center;padding:22px 20px 0;margin:0}.policy-box .pb{overflow-y:auto;padding:16px 24px;font-size:11px;color:#666;line-height:2;white-space:pre-line}.policy-box .pc{border-top:1px solid #eee}.policy-box .pc button{width:100%;background:none;border:0;padding:15px;font-size:11px;letter-spacing:.26em;cursor:pointer;font-family:inherit}.spin{width:26px;height:26px;border:2px solid #e2e2e2;border-top-color:#111;border-radius:50%;margin:30px auto;animation:rot .7s linear infinite}@keyframes rot{to{transform:rotate(360deg)}}.center-pad{text-align:center;padding:40px 0}.banner{padding:12px 16px;font-size:12px;letter-spacing:.04em;border-radius:8px;margin:12px 0;line-height:1.7}.banner.error{background:#fbe9e7;color:#b4231b}.banner.success{background:#e8f5e9;color:#2e7d32}.banner.info{background:#f0f0f0;color:#555}.mock-flag{background:#fff3cd;color:#856404;font-size:10px;text-align:center;padding:5px;letter-spacing:.1em}.app-header.admin{background:#1c1c1f}.admin-range{display:flex;gap:12px;margin:6px 0 18px}.field.rng{flex:1;margin-bottom:0}.field.rng span{display:block;font-size:10px;letter-spacing:.2em;color:#888;margin-bottom:6px}.field.rng input{width:100%;border:1px solid #d8d8d8;border-radius:6px;padding:9px 10px;font-size:15px;font-family:inherit;background:#fff;color:#111}.admin-list{margin-top:16px}.admin-card{border:1px solid #e6e6e6;border-radius:12px;padding:14px 16px;margin-bottom:12px}.admin-card .ac-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.admin-card .ac-name{font-family:Shippori Mincho,serif;font-size:16px;font-weight:600;letter-spacing:.04em}.admin-card .ac-src{font-size:9.5px;letter-spacing:.12em;padding:3px 8px;border-radius:10px;flex-shrink:0}.admin-card .ac-src.line{background:#e7f4ea;color:#2e7d32}.admin-card .ac-src.phone{background:#fdeee0;color:#b5651d}.admin-card .ac-line{font-size:13px;color:#333;margin-top:4px;letter-spacing:.03em}.admin-card .ac-line.strong{font-weight:600;color:#111}.admin-card .ac-line.sub{font-size:11.5px;color:#888}.admin-card .ac-line.warnx{font-size:11px;color:#b4231b;margin-top:6px}.admin-card .ac-actions{display:flex;gap:10px;margin-top:14px}.admin-card .ac-actions button{flex:1;border:1px solid #111;background:#fff;color:#111;padding:10px;font-size:11px;letter-spacing:.16em;cursor:pointer;font-family:inherit}.admin-card .ac-actions button.danger{border-color:#b4231b;color:#b4231b}.admin-card .ac-actions button:disabled{opacity:.4;cursor:default}.seg{display:flex;border:1px solid #ddd;border-radius:8px;overflow:hidden;margin:6px 0 20px}.seg button{flex:1;background:#fff;border:0;padding:11px 6px;font-size:11px;letter-spacing:.1em;color:#888;cursor:pointer;font-family:inherit}.seg button.on{background:#111;color:#fff}.admin-select{width:100%;border:1px solid #d8d8d8;border-radius:6px;padding:11px 10px;font-size:15px;font-family:inherit;background:#fff;color:#111}.svc-pick{display:flex;flex-direction:column;gap:8px}.svc-chip{display:flex;align-items:center;justify-content:space-between;gap:10px;border:1px solid #ddd;border-radius:8px;background:#fff;padding:12px 14px;cursor:pointer;font-family:inherit;text-align:left}.svc-chip .nm{font-family:Shippori Mincho,serif;font-size:15px;font-weight:500;letter-spacing:.04em;color:#111}.svc-chip .meta{font-size:11px;color:#888;letter-spacing:.04em}.svc-chip.sel{border-color:#111;background:#111}.svc-chip.sel .nm,.svc-chip.sel .meta{color:#fff}.day-cell.warn .d{color:#b5651d}.day-cell.warn .st{color:#d99a5b}.outside-toggle{font-size:10px;letter-spacing:.06em;color:#888;display:flex;align-items:center;gap:5px;cursor:pointer;text-transform:none}.outside-toggle input{width:14px;height:14px;accent-color:#111}.hint-note{font-size:11.5px;color:#999;line-height:1.8;letter-spacing:.03em;padding:4px 0}.confirm-body{white-space:pre-line;color:#555}.confirm-actions{display:flex}.confirm-actions button{flex:1;background:none;border:0;padding:15px;font-size:11.5px;letter-spacing:.16em;cursor:pointer;font-family:inherit}.confirm-actions .cm-cancel{color:#888;border-right:1px solid #eee}.confirm-actions .cm-ok{color:#111;font-weight:600}.confirm-actions .cm-ok.danger{color:#b4231b}
