:root{--b:#2563eb;--l:#e5e7eb;--bg:#f8fafc;--red:#dc2626}*{box-sizing:border-box}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,"Segoe UI","Noto Sans JP",sans-serif;color:#0f172a;background:var(--bg)}.layout{display:flex}.side{width:260px;min-height:100vh;background:#fff;border-right:1px solid var(--l);padding:22px 14px;position:sticky;top:0}.nav{display:block;padding:13px 16px;border-radius:8px;color:#172554;text-decoration:none;margin:6px 0}.nav.active,.nav:hover{background:#eaf2ff;color:#0b58d8}.logout{position:absolute;bottom:20px;left:25px}.main{padding:28px;max-width:1180px;width:100%}h1{font-size:28px;margin:0 0 20px}.date{float:right;margin-top:-45px}.card{background:#fff;border:1px solid var(--l);border-radius:10px;padding:18px;margin-bottom:14px}.stack{max-width:980px}.top,.grid{display:grid;grid-template-columns:1fr 1fr;gap:14px 18px}.top{grid-template-columns:repeat(3,1fr)}.wide{grid-column:1/-1}label{display:block;font-weight:700;font-size:14px}input,select,textarea{width:100%;border:1px solid #cbd5e1;border-radius:6px;padding:10px 12px;font-size:15px;background:#fff}textarea{resize:vertical}.btn{border:1px solid #cbd5e1;background:#fff;border-radius:7px;padding:10px 18px;font-weight:700;text-decoration:none;display:inline-block;cursor:pointer}.primary{background:#16a34a!important;color:#fff!important;border-color:#16a34a!important}.small{padding:8px 12px}.tiny{padding:4px 8px;font-size:12px}.danger{color:var(--red)}.err{background:#fee2e2;color:#991b1b;padding:10px;border-radius:8px}.rep{background:#edfdf3;border:1px solid #b6e7c6;padding:14px;margin-top:14px;border-radius:8px}.rep dl,.detail{display:grid;grid-template-columns:170px 1fr;gap:8px}.hist{border-top:1px solid #dbeafe;padding:8px 0}.amt{display:flex;justify-content:space-between;border-bottom:1px solid var(--l);padding:11px 0}.amt.total{border:0;background:#fff1f2;color:var(--red);padding:15px;margin-top:10px;border-radius:6px;font-size:18px}.actions{display:flex;justify-content:space-between;align-items:center}.status{display:flex;gap:24px;align-items:center}table{width:100%;border-collapse:collapse;background:#fff}th,td{border-bottom:1px solid var(--l);padding:10px;text-align:left;vertical-align:top}th{background:#f8fafc}.search{display:flex;justify-content:flex-end;margin-bottom:14px;gap:8px}.search input{max-width:300px}.login{max-width:430px;margin:70px auto;background:#fff;border:1px solid var(--l);border-radius:10px;padding:28px}.inline{display:flex;gap:10px}@media(max-width:900px){.layout{display:block}.side{position:static;width:auto;min-height:auto}.main{padding:16px}.top,.grid{grid-template-columns:1fr}.date{float:none;margin:0 0 12px}.actions{display:block}.status{display:block;margin:12px 0}}
.hint{margin-top:10px;color:#475569;font-size:14px}.card h2{margin-top:0}.warn{background:#fffbeb;border:1px solid #fcd34d;color:#92400e;padding:10px;border-radius:8px;margin-bottom:12px}
.checks{display:grid;grid-template-columns:repeat(2,1fr);gap:10px 18px}.checks label{font-weight:600;background:#f8fafc;border:1px solid var(--l);padding:10px;border-radius:8px}.checks input{width:auto;margin-right:8px}.hamb{display:none;position:fixed;top:10px;left:10px;z-index:50;background:#2563eb;color:#fff;border:0;border-radius:8px;padding:9px 12px;font-size:20px}.shade{display:none}
@media(max-width:900px){body{padding-top:52px}.hamb{display:block}.side{position:fixed;left:-280px;top:0;width:260px;height:100vh;z-index:60;transition:left .2s ease;box-shadow:0 12px 30px rgba(15,23,42,.20);overflow:auto}.menu-open .side{left:0}.shade{display:none}.menu-open .shade{display:block;position:fixed;inset:0;background:rgba(15,23,42,.35);z-index:55}.logout{position:static;display:block;margin-top:20px}.checks{grid-template-columns:1fr}table{font-size:13px}th,td{padding:8px}.inline{display:block}.inline input,.inline button{margin:5px 0}}
/* v6 tweaks */
.main{max-width:1080px}
.stack{max-width:940px}
.sep{border:0;border-top:1px solid var(--l);margin:18px 0}
h3{margin:10px 0 12px;font-size:18px}.option-list{display:grid;grid-template-columns:1fr 1fr;gap:10px 18px}.option-row{display:grid;grid-template-columns:1fr 90px;gap:10px;align-items:center;background:#f8fafc;border:1px solid var(--l);padding:10px;border-radius:8px}.option-row label{font-weight:600}.option-row input[type=checkbox]{width:auto;margin-right:8px}.qty{max-width:90px;text-align:right}.free-row{display:grid;grid-template-columns:1fr 150px 90px 72px;gap:10px;margin:8px 0;align-items:center}.free-delete{background:#fff;color:#dc2626;border-color:#fecaca}.free-delete:hover{background:#fee2e2}@media(max-width:900px){.option-list{grid-template-columns:1fr}.free-row{grid-template-columns:1fr}.qty{max-width:100%}.free-delete{width:100%}}
/* v8 sidebar sections */
.side-section{margin-bottom:22px}.side-section b{display:block;margin:0 0 8px 4px}.dev-section{border-top:1px solid var(--l);padding-top:16px;margin-top:18px}.dev-section b{color:#b91c1c}.dev-nav{font-size:14px;padding:10px 14px}.dev-nav.active,.dev-nav:hover{background:#fff1f2;color:#b91c1c}@media(max-width:900px){.side-section{margin-bottom:18px}.dev-section{padding-top:14px}}
/* v9 copy screen */
.copy-text{margin-top:12px;font-family:"Noto Sans JP",system-ui,sans-serif;line-height:1.7;white-space:pre-wrap;background:#f8fafc}
#copy_msg{display:inline-block;margin-left:10px;color:#16a34a;font-weight:700}
/* v10 fixes */
.option-summary{cursor:pointer;font-weight:800;font-size:20px;list-style:none;padding:4px 0 14px}
.option-summary::-webkit-details-marker{display:none}
.option-summary::before{content:'▼';display:inline-block;margin-right:8px;color:#2563eb}
details[open]>.option-summary::before{content:'▲'}
.options-card:not(:has(details[open])){padding-bottom:8px}
.note{margin-top:8px;color:#475569}
.out-area{color:#dc2626;font-weight:800}
/* v12 repeater compact reference */
.past-box{margin-top:12px;max-height:220px;overflow:auto;background:#fff;border:1px solid #cbd5e1;border-radius:8px;padding:12px;white-space:pre-wrap;line-height:1.65;font-size:14px}
.past-box h3{margin:0 0 8px;font-size:16px}

.copy-only{background:#f8fafc;border-color:#cbd5e1;}

.notice{padding:12px 14px;border-radius:8px;margin:10px 0;font-weight:700}.notice.success{background:#e8f7ee;border:1px solid #8fd5a6;color:#12622b}.notice.error{background:#fdeaea;border:1px solid #f0a4a4;color:#9b1c1c}

/* v16 postal search button placement */
.postal-search-btn{margin-top:8px;width:auto}
@media(max-width:900px){.postal-search-btn{width:100%;}}

.logbox{background:#0f172a;color:#e5e7eb;padding:12px;border-radius:8px;max-height:360px;overflow:auto;white-space:pre-wrap}.top-status{display:none!important}
.travel-row{display:flex;align-items:center;gap:12px;justify-content:space-between;flex-wrap:wrap;margin-top:8px}
.google-address-btn{white-space:nowrap}
.summary-grid{display:grid;grid-template-columns:repeat(4,minmax(120px,1fr));gap:12px;margin-top:8px}.summary-grid>div{background:#f8fafc;border:1px solid #e5e7eb;border-radius:10px;padding:12px}@media(max-width:700px){.summary-grid{grid-template-columns:1fr 1fr}}
.pagination{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin:14px 0 22px}.pagination .current{background:#e0f2fe;color:#0f172a}.page-gap{padding:0 4px;color:#64748b}.csv-bottom{margin-top:24px}

/* v35 out-of-area prominent badge */
.postal-result-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-top:8px}
.out-area-badge{display:inline-flex;align-items:center;justify-content:center;min-height:42px;padding:9px 18px;border:2px solid #dc2626;background:#fff1f2;color:#b91c1c;border-radius:8px;font-weight:900;letter-spacing:.03em;box-shadow:0 0 0 3px rgba(220,38,38,.06)}
.out-area-badge small{display:block;font-size:12px;font-weight:700;letter-spacing:0;margin-left:8px;color:#991b1b}
@media(max-width:900px){.postal-result-row{display:block}.out-area-badge{margin-top:8px;width:100%}}
.remember-row{display:flex!important;align-items:center;gap:8px;margin:10px 0 18px;font-weight:600}
.remember-row input{width:auto!important;min-width:18px;height:18px}

/* v38 reservation list delete button */
.row-delete-form{margin:0}.row-delete-form .danger{background:#fff;color:#dc2626;border-color:#fecaca}
/* v39 register link */
.login-link{margin-top:16px;text-align:center}.login-link a{color:#2563eb;font-weight:700;text-decoration:none}.register-box .hint{text-align:left;margin-bottom:14px}
/* v40 user invite mail */
.invite-url-row{display:grid;grid-template-columns:1fr auto auto;gap:10px;align-items:center;margin-top:12px}
#register_url_msg{color:#16a34a;font-weight:700}
@media(max-width:900px){.invite-url-row{grid-template-columns:1fr}.invite-url-row .btn{width:100%}}

/* v47 operation manual page */
.manual-wrap{max-width:760px;margin:0 auto}.manual-image{display:block;width:100%;height:auto;border:1px solid #e5e7eb;border-radius:12px;background:#fff;box-shadow:0 8px 24px rgba(15,23,42,.08)}.manual-actions{display:flex;gap:10px;flex-wrap:wrap;margin:12px 0 18px}.manual-note{background:#eff6ff;border:1px solid #bfdbfe;color:#1e3a8a;border-radius:10px;padding:12px;margin-bottom:12px}.manual-page .main{max-width:900px}@media(max-width:900px){.manual-wrap{max-width:100%}.manual-image{border-radius:8px}.manual-actions .btn{width:100%;text-align:center}}
/* v52 operation log */
.log-detail{max-width:420px;white-space:normal;word-break:break-word}.notice.warn{background:#fff7ed;border:1px solid #fdba74;color:#9a3412}
.form-actions{display:flex;align-items:flex-end}.form-actions .btn{width:100%}

/* v55 option payment detail */
.option-lines{margin:8px 0 12px;padding:10px 12px;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px}
.option-detail-title{font-weight:700;margin-bottom:6px;color:#0f172a}
.option-detail-row{display:flex;justify-content:space-between;gap:12px;padding:6px 0;border-top:1px dashed #cbd5e1;font-size:15px}
.option-detail-row:first-of-type{border-top:none}
.option-detail-row span{line-height:1.5}
.option-detail-row b{white-space:nowrap}
@media(max-width:640px){.option-detail-row{display:block}.option-detail-row b{display:block;text-align:right;margin-top:2px}}

/* v57 status badge in reservation list */
.status-cell{min-width:118px;white-space:nowrap}
.status-badge{display:inline-flex;align-items:center;justify-content:center;padding:5px 10px;border-radius:999px;font-size:13px;font-weight:800;line-height:1.2;border:1px solid transparent;white-space:nowrap}
.status-done{background:#dcfce7;color:#166534;border-color:#86efac}
.status-inquiry{background:#dbeafe;color:#1e40af;border-color:#93c5fd}
.status-cancel{background:#fee2e2;color:#991b1b;border-color:#fca5a5}
.status-unset{background:#f1f5f9;color:#475569;border-color:#cbd5e1}
@media(max-width:900px){.status-cell{min-width:100px}.status-badge{font-size:12px;padding:4px 8px}}

/* v66 sidebar/copy improvements */
.side-details{border:0;padding:0}
.side-details>summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;margin:0 0 8px 4px;color:#0f172a}
.side-details>summary::-webkit-details-marker{display:none}
.side-details>summary::after{content:'▶';font-size:12px;color:#64748b;margin-left:8px}
.side-details[open]>summary::after{content:'▼'}
.copy-after-save{border-color:#bbf7d0;background:#f0fdf4}
.copy-after-save h2{margin-top:0}
.copy-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-bottom:10px}
@media(max-width:900px){.copy-actions .btn{width:100%;text-align:center}}

/* v67 Google calendar weekly schedule widget */
.calendar-week-widget{z-index:40}
.calendar-week-widget.minimized .week-panel{display:none}
.week-mini{background:#0f766e;color:#fff;border:0;border-radius:999px;padding:10px 16px;font-weight:800;box-shadow:0 8px 22px rgba(15,23,42,.18);cursor:pointer}
@media(min-width:901px){
  .calendar-week-widget{position:fixed;right:18px;top:86px;width:360px;max-width:calc(100vw - 36px)}
  .calendar-week-widget.minimized{width:auto}
  .week-mini{float:right}
  .week-panel{background:#fff;border:1px solid #bfdbfe;border-radius:14px;box-shadow:0 14px 38px rgba(15,23,42,.18);max-height:calc(100vh - 120px);overflow:auto;padding:12px}
}
@media(max-width:900px){
  .calendar-week-widget{margin:8px 0 14px}
  .week-mini{width:100%;border-radius:10px;text-align:left}
  .week-panel{background:#fff;border:1px solid #bfdbfe;border-radius:12px;padding:12px;margin-top:8px;max-height:70vh;overflow:auto}
}
.week-panel-head{display:flex;justify-content:space-between;align-items:center;gap:8px;margin-bottom:8px}
.week-close{border:0;background:#e2e8f0;color:#334155;border-radius:999px;padding:5px 10px;font-weight:700;cursor:pointer}
.week-toolbar{display:flex;gap:6px;flex-wrap:wrap;margin:8px 0 10px}.week-toolbar input[type=date]{max-width:170px;padding:7px 10px}.week-title{font-weight:900;margin:8px 0 10px;color:#172554}.week-loading{padding:12px;background:#f8fafc;border-radius:8px;color:#475569}.week-error{padding:12px;background:#fee2e2;color:#991b1b;border-radius:8px;font-weight:700}.week-grid{display:grid;grid-template-columns:repeat(7,minmax(150px,1fr));gap:8px}.week-day{background:#f8fafc;border:1px solid #dbeafe;border-radius:10px;padding:8px;min-height:120px}.week-day-head{font-weight:900;color:#1e3a8a;border-bottom:1px solid #dbeafe;padding-bottom:6px;margin-bottom:6px}.week-empty{color:#94a3b8;font-size:13px;padding:8px 0}.week-event{background:#d9e62b;border:1px solid #c4d121;border-radius:8px;padding:7px;margin:7px 0}.week-event summary{cursor:pointer;list-style:none}.week-event summary::-webkit-details-marker{display:none}.week-event summary b{display:block;font-size:13px;color:#334155}.week-event summary span{display:block;font-weight:800;line-height:1.35;color:#1f2937}.week-loc,.week-desc{font-size:12px;line-height:1.45;margin-top:6px;color:#334155}.week-link{display:inline-block;margin-top:6px;font-size:12px;font-weight:800;color:#1d4ed8}.calendar-page-card{max-width:1100px}.week-calendar-large .week-grid{grid-template-columns:repeat(7,minmax(130px,1fr))}
@media(max-width:900px){.week-grid,.week-calendar-large .week-grid{display:block}.week-day{margin-bottom:8px;min-height:auto}.week-event{padding:9px}.week-event summary b{font-size:14px}.week-event summary span{font-size:15px}.page-week-toolbar .btn{flex:1}.page-week-toolbar input[type=date]{max-width:100%;width:100%}}


/* v68 weekly widget click/open fix */
.calendar-week-widget .week-panel{display:block;}
.calendar-week-widget.minimized .week-panel{display:none!important;}
.calendar-week-widget.opened .week-panel{display:block!important;}
.week-mini{pointer-events:auto;user-select:none;}
.week-panel{pointer-events:auto;}
@media(min-width:901px){.calendar-week-widget.opened{width:420px;}.calendar-week-widget.opened .week-panel{display:block!important;}}


/* v69 weekly widget click safety */
.calendar-week-widget{pointer-events:auto!important;z-index:9999!important;}
.calendar-week-widget *{pointer-events:auto;}
.week-mini{position:relative;z-index:10000!important;}

/* v70 weekly calendar time-grid 9:00-18:00 */
.week-hours{display:inline-block;margin-left:8px;font-size:12px;color:#64748b;font-weight:700}
.week-time-scroll{overflow:auto;border:1px solid #dbeafe;border-radius:12px;background:#fff;max-width:100%}
.week-time-table{display:grid;grid-template-columns:58px repeat(7, minmax(116px,1fr));grid-template-rows:42px var(--body-h);min-width:900px;position:relative}
.week-corner{grid-column:1;grid-row:1;background:#f8fafc;border-right:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0}
.week-col-head{grid-row:1;background:#f8fafc;border-right:1px solid #e2e8f0;border-bottom:1px solid #e2e8f0;color:#1e3a8a;font-weight:900;text-align:center;padding:9px 4px;white-space:nowrap}
.week-time-axis{grid-column:1;grid-row:2;position:relative;height:var(--body-h);background:#f8fafc;border-right:1px solid #e2e8f0}
.week-time-label{position:absolute;right:6px;transform:translateY(-8px);font-size:11px;color:#475569;white-space:nowrap}
.week-time-day{grid-row:2;position:relative;height:var(--body-h);background:#fff;border-right:1px solid #e2e8f0;overflow:hidden}
.week-slot-lines{position:absolute;inset:0;background:repeating-linear-gradient(to bottom, transparent 0, transparent calc(var(--slot-h) - 1px), #e5e7eb calc(var(--slot-h) - 1px), #e5e7eb var(--slot-h))}
.week-free-note{position:absolute;top:8px;left:8px;font-size:12px;color:#cbd5e1;font-weight:800}
.week-block{position:absolute;left:5px;right:5px;z-index:2;border-radius:8px;padding:6px 7px;overflow:hidden;border:1px solid #c4d121;background:#d9e62b;box-shadow:0 1px 2px rgba(15,23,42,.12)}
.week-block{cursor:pointer}
.week-block .week-main{line-height:1.25}
.week-block .week-main b{display:block;font-size:12px;color:#334155;font-weight:900}.week-block .week-main span{display:block;font-size:13px;color:#1f2937;font-weight:900;word-break:break-word}
.week-block-unavailable{background:#d9e62b;border-color:#c4d121}
.week-block-sales{background:#334155;border-color:#1e293b;color:#fff}.week-block-sales .week-main b,.week-block-sales .week-main span,.week-block-sales .week-loc,.week-block-sales .week-desc{color:#fff}
.week-loc,.week-desc{font-size:12px;line-height:1.45;margin-top:5px;color:#334155}.week-link{display:inline-block;margin-top:5px;font-size:12px;font-weight:800;color:#1d4ed8}
.week-calendar-large .week-time-table{min-width:980px;grid-template-columns:64px repeat(7,minmax(126px,1fr))}
@media(min-width:901px){.calendar-week-widget.opened{width:620px;max-width:calc(100vw - 36px)}}
@media(max-width:900px){.week-time-scroll{max-height:72vh}.week-time-table{min-width:860px}.week-block .week-main span{font-size:12px}.week-block .week-main b{font-size:11px}}

/* v71 route time check inside weekly calendar */
.route-check-box{margin:8px 0 10px;padding:10px;border:1px solid #bbf7d0;background:#f0fdf4;border-radius:12px}
.route-check-title{font-weight:900;color:#166534;margin-bottom:7px}
.route-check-box label{display:block;font-size:12px;font-weight:800;color:#334155;margin:6px 0}
.route-check-box input{width:100%;box-sizing:border-box;margin-top:3px;padding:8px 10px;border:1px solid #cbd5e1;border-radius:8px;font-size:13px;background:#fff}
.route-actions{margin:8px 0 6px}.route-links{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.route-btn{background:#2563eb;color:#fff;text-decoration:none;border-color:#2563eb}.route-hint,.route-note{font-size:12px;color:#64748b;width:100%;line-height:1.4}.week-route-pick{margin-top:6px;border:1px solid #0f766e;background:#fff;color:#0f766e;border-radius:7px;padding:5px 7px;font-size:12px;font-weight:900;cursor:pointer}
.week-route-pick:hover{background:#ecfdf5}
@media(max-width:900px){.route-check-box{font-size:14px}.route-check-box input{font-size:16px}.route-links .btn{flex:1;text-align:center}}

/* v78 route buttons restored */
.route-step-title{font-weight:900;color:#0f172a;margin:8px 0 6px}
.route-links .route-btn{display:inline-block;margin:0 6px 6px 0;padding:10px 14px;border-radius:8px;background:#2563eb;color:#fff;text-decoration:none;border:1px solid #2563eb;font-weight:900}
.route-links .route-btn:hover{filter:brightness(.95)}

/* v85 desktop layout: keep form width, place weekly schedule at the right edge */
@media(min-width:901px){
  body:has(#calendar_week_widget) .main{max-width:none;}
  body:has(#calendar_week_widget) form.stack{max-width:760px;}
  body:has(#calendar_week_widget) form.stack .top{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;}
  body:has(#calendar_week_widget) .calendar-week-widget.opened{
    left:auto;
    right:18px;
    width:620px;
    max-width:calc(100vw - 36px);
    z-index:9999!important;
  }
  body:has(#calendar_week_widget) .calendar-week-widget.opened .week-panel{
    max-height:calc(100vh - 108px);
  }
}


/* v86: opened weekly panel hides the floating toggle button */
.calendar-week-widget.opened > .week-mini{display:none!important;}
.calendar-week-widget.minimized > .week-mini{display:inline-block;}
@media(max-width:900px){.calendar-week-widget.minimized > .week-mini{display:block;}}


/* v87: アプラージュ版の週間予定パネル仕様を山形へ反映 */
.week-time-table{grid-template-rows:42px var(--body-h);}
.week-col-head{position:sticky;top:0;z-index:8;}
.week-corner{position:sticky;top:0;left:0;z-index:12;}
.week-col-head-today{background:#ccfbf1!important;color:#0f766e!important;border-color:#5eead4!important;box-shadow:inset 0 -3px 0 #14b8a6;}
.week-time-axis{position:sticky;left:0;z-index:7;}
.week-time-scroll{max-height:calc(100vh - 330px);}
.route-calendar-btn{background:#f97316!important;border-color:#f97316!important;color:#fff!important;}
.week-block[style*="color:#ffffff"] .week-main b,
.week-block[style*="color:#ffffff"] .week-main span,
.week-block[style*="color:#ffffff"] .week-loc,
.week-block[style*="color:#ffffff"] .week-desc{color:#fff;}
.week-block[style*="color:#1f2937"] .week-main b,
.week-block[style*="color:#1f2937"] .week-main span,
.week-block[style*="color:#1f2937"] .week-loc,
.week-block[style*="color:#1f2937"] .week-desc{color:#1f2937;}
@media(min-width:901px){body:has(#calendar_week_widget) .calendar-week-widget.opened{width:620px;right:18px;}}

/* v94: top three select fields in one compact row on desktop */
@media(min-width:901px){
  body:has(#calendar_week_widget) form.stack .top label{min-width:0;}
  body:has(#calendar_week_widget) form.stack .top select{min-width:0;}
}


/* v94 SNS投稿ステータス */
.sns-field{margin-top:16px;padding-top:14px;border-top:1px solid #e5e7eb}
.sns-field-title{font-weight:900;margin-bottom:8px;color:#0f172a}
.sns-toggle{display:flex;gap:8px;flex-wrap:wrap}
.sns-toggle-item{display:inline-flex!important;align-items:center;cursor:pointer;font-size:14px;font-weight:900}
.sns-toggle-item input{position:absolute;opacity:0;pointer-events:none;width:1px;height:1px}
.sns-toggle-item span{display:inline-flex;align-items:center;justify-content:center;min-width:72px;padding:9px 18px;border:1px solid #cbd5e1;border-radius:999px;background:#f8fafc;color:#334155;line-height:1}
.sns-toggle-item input:checked+span{box-shadow:0 0 0 3px rgba(37,99,235,.12)}
.sns-toggle-todo input:checked+span{background:#64748b;border-color:#64748b;color:#fff}
.sns-toggle-done input:checked+span{background:#16a34a;border-color:#16a34a;color:#fff}
.sns-badge{display:inline-flex;align-items:center;justify-content:center;min-width:42px;padding:5px 10px;border-radius:999px;font-size:13px;font-weight:900;white-space:nowrap}
.sns-badge.sns-todo{background:#f1f5f9;color:#475569;border:1px solid #cbd5e1}
.sns-badge.sns-done{background:#dcfce7;color:#166534;border:1px solid #86efac}
@media(max-width:900px){.sns-toggle-item span{min-width:88px}.sns-badge{font-size:12px;padding:4px 8px}}


/* v95: 予約一覧のお客様名セルに、ひらがな名の下へ漢字氏名を表示 */
.customer-name-cell{line-height:1.55;}
.customer-kanji-name{margin-top:4px;font-weight:700;color:#111827;white-space:nowrap;}

/* v98: 週間予定カードの予定詳細モーダル */
.week-main-top{display:flex;align-items:flex-start;justify-content:space-between;gap:6px}
.week-main-top b{min-width:0}
.week-detail-btn{border:1px solid rgba(15,23,42,.18);background:rgba(255,255,255,.92);color:#0f172a;border-radius:6px;padding:2px 6px;font-size:11px;font-weight:900;line-height:1.3;cursor:pointer;flex:0 0 auto}
.week-detail-btn:hover{background:#fff}
.week-block[style*="color:#ffffff"] .week-detail-btn{background:rgba(255,255,255,.95);color:#0f172a}
.week-event-modal{display:none;position:fixed;inset:0;z-index:20000;align-items:center;justify-content:center;padding:18px}
.week-event-modal.opened{display:flex}
.week-event-modal-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.45)}
.week-event-modal-card{position:relative;background:#fff;border-radius:16px;box-shadow:0 22px 70px rgba(15,23,42,.35);width:min(720px,calc(100vw - 32px));max-height:calc(100vh - 60px);overflow:auto;border:1px solid #cbd5e1}
.week-event-modal-head{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:14px 16px;border-bottom:1px solid #e2e8f0;background:#f8fafc;position:sticky;top:0;z-index:1}
.week-event-modal-head b{font-size:18px;color:#0f172a}
.week-event-modal-close{border:0;background:#e2e8f0;color:#334155;border-radius:999px;padding:6px 12px;font-weight:800;cursor:pointer}
.week-event-modal-body{padding:16px}
.week-detail-list{display:grid;grid-template-columns:90px 1fr;gap:10px 14px;margin:0}
.week-detail-list dt{font-weight:900;color:#334155}
.week-detail-list dd{margin:0;color:#0f172a;line-height:1.6;word-break:break-word}
.week-detail-desc{white-space:normal;background:#f8fafc;border:1px solid #e2e8f0;border-radius:10px;padding:10px;max-height:260px;overflow:auto}
.week-detail-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:16px}.week-detail-actions .btn{text-decoration:none}
@media(max-width:640px){.week-detail-list{grid-template-columns:1fr}.week-detail-list dt{margin-top:6px}.week-event-modal{padding:10px}.week-event-modal-card{width:calc(100vw - 20px)}}
