.nk-calendar{--nk-orange:#e87728;--nk-text:#191919;--nk-muted:#68615d;--nk-line:#e7e2dc;--nk-bg:#f9f6f2;max-width:930px;margin:0 auto;font-family: -apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Noto Sans JP",sans-serif;color:var(--nk-text);line-height:1.5}
.nk-calendar *{box-sizing:border-box}.nk-calendar button,.nk-calendar input{font:inherit}.nk-shell{background:white;border:1px solid #e8e1db;border-radius:20px;overflow:hidden;padding:clamp(16px,3.4vw,34px);box-shadow:0 6px 28px rgba(44,26,14,.06)}
.nk-eyebrow{font-size:11px;color:#bd5c17;font-weight:800;letter-spacing:.16em;margin-bottom:6px}.nk-top{display:flex;justify-content:space-between;align-items:center;gap:10px;margin-bottom:21px}
.nk-title{font-size:clamp(22px,3.5vw,30px)!important;color:#171515!important;line-height:1.3!important;margin:0 0 5px!important;font-weight:800!important}.nk-subtitle{color:var(--nk-muted);font-size:13px;margin:0}.nk-mark{font-size:13px;white-space:nowrap;border:2px solid var(--nk-text);border-radius:5px;padding:7px 10px;font-weight:800}
.nk-tabs{display:flex;gap:6px;padding:5px;background:#f4f1ed;border-radius:12px;margin-bottom:22px}.nk-tab{flex:1;background:transparent;border:0;cursor:pointer;border-radius:9px;font-weight:700;color:#756e66;min-height:45px;font-size:14px}.nk-tab.nk-active{color:#fff;background:#24201e;box-shadow:0 2px 7px #0002}
.nk-month{display:flex;align-items:center;justify-content:center;gap:28px;margin-bottom:19px}.nk-month strong{font-size:22px;letter-spacing:.035em}.nk-nav{font-size:28px;line-height:1;width:36px;height:36px;border:1px solid var(--nk-line);border-radius:50%;background:#fff;cursor:pointer}
.nk-weekdays,.nk-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:5px}.nk-weekdays{text-align:center;margin-bottom:7px;color:#6d6a67;font-weight:700;font-size:12px}.nk-weekdays span{padding:6px}.nk-weekdays .nk-sun{color:#ce4435}.nk-weekdays .nk-sat{color:#3264a9}
.nk-day{min-width:0;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;min-height:83px;background:#f7f6f4;border:1px solid #efebe8;border-radius:9px;position:relative;padding:4px 2px;cursor:default;color:#34312e}
.nk-day-n{font-size:15px;font-weight:700;line-height:1.3}.nk-day-status{font-size:11px;font-weight:800;line-height:1.4;border-radius:5px;padding:2px 6px;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.nk-open .nk-day-status{background:#e6f1e7;color:#1d7037}.nk-closed{background:#fff2ef;border-color:#f4d9d4}.nk-closed .nk-day-status{background:#f1dbd6;color:#b13e36}.nk-special{background:#fff6e5;border-color:#f4deb9}.nk-special .nk-day-status{background:#f7ddaf;color:#9a5a08}.nk-day-extra{font-size:9px;color:#8c5d26;line-height:1.2;white-space:normal;text-align:center;word-break:break-word}.nk-today::after{content:'今日';position:absolute;top:2px;right:4px;font-size:9px;color:#d06c20}.nk-day.nk-selected{outline:3px solid #e87728;outline-offset:-3px;background:#fff0e3}.nk-calendar[data-mode="admin"] .nk-day:not(:disabled){cursor:pointer}.nk-day:disabled{opacity:.38}.nk-day:focus-visible,.nk-tab:focus-visible,.nk-nav:focus-visible{outline:3px solid #2680eb;outline-offset:2px}
.nk-legend{display:flex;flex-wrap:wrap;gap:10px 22px;margin:16px 0 21px;align-items:center;font-size:12px;color:#69655f}.nk-legend>span{display:flex;align-items:center;gap:6px}.nk-dot{width:10px;height:10px;border-radius:2px;display:inline-block}.nk-dot-open{background:#44945b}.nk-dot-closed{background:#ce5747}.nk-dot-special{background:#e4a43c}
.nk-hours{background:#f8f4ee;border-left:4px solid var(--nk-orange);padding:16px 19px;border-radius:5px;margin-top:12px}.nk-hours-header{display:flex;gap:12px;align-items:start}.nk-clock{font-size:26px;color:#d06b19;line-height:1}.nk-hours strong{font-size:14px}.nk-hours p{font-size:14px;margin:5px 0 0;line-height:1.7;word-wrap:break-word}.nk-hours small{display:block;font-size:11px;color:#756e68;margin-top:7px}.nk-updated{text-align:right;color:#99918a;font-size:11px;margin:12px 0 0}.nk-wait,.nk-error,.nk-empty{padding:24px;background:#fff8ec;border-radius:10px}.nk-error{color:#a43226}
.nk-editor{margin-top:29px;padding:22px;background:#fff;border:1px solid #eadbce;border-radius:12px}.nk-edit-head{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}.nk-editor h3{margin:0!important;font-size:19px!important;color:#29221c!important}.nk-flag{font-size:11px;color:#98611d;background:#fbf0d8;border-radius:6px;padding:5px 8px}.nk-muted,.nk-footnote{font-size:12px;color:#736c63}.nk-edit-label{font-size:13px;font-weight:800;margin:19px 0 8px}.nk-link{border:0;background:none;color:#c45b12;cursor:pointer;text-decoration:underline;font-size:12px;margin-left:12px}.nk-targets{display:flex;flex-wrap:wrap;gap:12px}.nk-check{font-size:14px;white-space:nowrap}.nk-radios{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px 10px;font-size:14px}.nk-radios label{display:flex;gap:6px;align-items:start;cursor:pointer}.nk-time-row{display:flex;flex-wrap:wrap;gap:15px;margin-top:16px}.nk-time-row label,.nk-reason{font-size:13px}.nk-time-row input{display:block;min-height:40px;border:1px solid #d6ccc3;padding:4px 8px;border-radius:7px}.nk-time-row[hidden]{display:none}.nk-reason{display:block;margin-top:16px}.nk-reason input{display:block;margin-top:6px;width:100%;padding:10px;border:1px solid #d6ccc3;border-radius:7px}.nk-save-row{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:18px;font-size:13px}.nk-primary{border:0;background:#e87728;color:#fff!important;font-weight:800;border-radius:9px;padding:11px 18px;cursor:pointer}.nk-primary:disabled{opacity:.45;cursor:not-allowed}.nk-notice{background:#f4f9f1;border:1px solid #b4ccac;padding:10px;border-radius:6px;margin-top:14px;font-size:13px}.nk-footnote{margin-top:16px}
@media(max-width:600px){.nk-shell{border-radius:10px;padding:12px}.nk-mark{font-size:10px;padding:6px}.nk-subtitle{font-size:11px}.nk-tabs{gap:3px;padding:3px}.nk-tab{font-size:12px;padding:6px 2px;min-height:40px}.nk-month{gap:17px;margin-bottom:12px}.nk-month strong{font-size:19px}.nk-weekdays,.nk-grid{gap:3px}.nk-weekdays{margin-bottom:4px}.nk-weekdays span{padding:5px 0}.nk-day{min-height:61px;gap:4px;border-radius:6px;padding:3px 0}.nk-day-n{font-size:13px}.nk-day-status{font-size:10px;padding:1px 3px}.nk-day-extra{font-size:8px}.nk-today::after{font-size:8px;right:1px;top:0}.nk-legend{gap:6px 11px;margin:13px 0}.nk-hours{padding:11px 13px}.nk-hours p{font-size:12px}.nk-editor{padding:13px}.nk-radios{grid-template-columns:1fr}.nk-save-row{display:block}.nk-save-row .nk-primary{width:100%;margin-top:10px}}
/* v1.0: regular-hours editor, mobile-first range selection, public detail panel */
.nk-calendar .nk-hours{margin:0 0 23px;background:#fff9f3;border:1px solid #f1e1d1;border-left:5px solid #e87728;padding:17px 20px;border-radius:10px}
.nk-calendar .nk-hours strong{font-size:15px;color:#28221e;display:block}
.nk-calendar .nk-hours p{font-weight:750;color:#30231c;margin:8px 0;font-size:15px;line-height:1.75}
.nk-calendar .nk-day{font-family:inherit;transition:background .12s ease,border-color .12s ease}
.nk-calendar .nk-day:not(.nk-blank){cursor:pointer}
.nk-calendar .nk-day.nk-detail-focus:not(.nk-selected){box-shadow:inset 0 0 0 2px #a18e7d}
.nk-calendar .nk-day.nk-unknown{background:#eeeef0;color:#666}
.nk-calendar .nk-day.nk-unknown .nk-day-status{background:#d2d2d5;color:#555}
.nk-calendar .nk-selected-detail{display:flex;align-items:center;gap:13px;flex-wrap:wrap;padding:15px 18px;margin:12px 0 20px;border-radius:12px;background:#f6f4f1;border:1px solid #ebe3da;font-size:14px}
.nk-calendar .nk-selected-detail strong{color:#21201f}.nk-calendar .nk-selected-detail b{font-size:16px}.nk-calendar .nk-detail-type{font-weight:800;padding:4px 9px;border-radius:6px;background:#e2eedd;color:#2f6e32}
.nk-calendar .nk-detail-type.nk-closed{background:#f3dfda;color:#a63830}.nk-calendar .nk-detail-type.nk-special{background:#f5e7ca;color:#9a5a08}
.nk-calendar .nk-detail-note{flex-basis:100%;font-size:13px;color:#5c5550}
.nk-calendar .nk-soldout-note{flex-basis:100%;margin:1px 0 0;font-size:12px;line-height:1.6;color:#6a625b}
.nk-calendar .nk-admin-toolbar{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:11px 14px;border:1px solid #e6dfd8;background:#faf7f2;border-radius:9px;margin-top:25px;color:#534737;font-weight:800;font-size:13px}
.nk-calendar .nk-secondary{padding:9px 12px;background:white;border:1px solid #d5c8bc;border-radius:8px;color:#3d3630;cursor:pointer;font-weight:750;min-height:40px}
.nk-calendar .nk-preview-label{padding:10px 15px;border-left:3px solid #d9852c;background:#fff8e9;font-size:13px}
.nk-calendar .nk-range{display:flex;gap:9px;flex-wrap:wrap;align-items:end}
.nk-calendar .nk-range label{font-size:12px;color:#585149;display:flex;flex-direction:column;gap:5px;flex:1 1 150px}
.nk-calendar .nk-range input{padding:7px 9px;border:1px solid #cfc6bd;border-radius:7px;min-height:40px;max-width:100%}
.nk-calendar .nk-range-actions{display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px;margin:12px 0;color:#786a5d;font-size:12px}
.nk-calendar .nk-weekly-edit,.nk-calendar .nk-history{padding:14px;border:1px solid #e2d8cc;border-radius:9px;margin-top:19px;background:#fffcf9}
.nk-calendar .nk-weekly-edit summary,.nk-calendar .nk-history summary{font-weight:800;cursor:pointer;list-style-position:inside}
.nk-calendar .nk-week-targets{display:flex;flex-wrap:wrap;gap:15px;margin:9px 0 16px}
.nk-calendar .nk-week-radio{grid-template-columns:repeat(2,minmax(0,1fr));max-width:300px;margin:10px 0}
.nk-calendar .nk-history-scroll{overflow:auto;margin-top:15px}
.nk-calendar .nk-history table{border-collapse:collapse;font-size:12px;min-width:460px;width:100%;text-align:left}
.nk-calendar .nk-history th,.nk-calendar .nk-history td{padding:9px;border-bottom:1px solid #eadfd5;vertical-align:top}
.nk-calendar .nk-history th{background:#f6f0e8}
.nk-calendar [hidden]{display:none!important}
.nk-calendar button:focus-visible,.nk-calendar summary:focus-visible,.nk-calendar input:focus-visible{outline:3px solid #2879c8;outline-offset:2px}
@media(max-width:600px){
 .nk-calendar .nk-hours{padding:12px 13px;margin-bottom:15px}
 .nk-calendar .nk-hours strong{font-size:13px}
 .nk-calendar .nk-hours p{font-size:13px;line-height:1.65}
 .nk-calendar .nk-selected-detail{padding:10px;gap:7px;font-size:12px}
 .nk-calendar .nk-selected-detail b{font-size:13px}
 .nk-calendar .nk-month{margin-top:15px}
 .nk-calendar .nk-day{min-height:63px}
 .nk-calendar .nk-range label{flex-basis:135px}
 .nk-calendar .nk-range .nk-secondary{width:100%}
 .nk-calendar .nk-admin-toolbar{font-size:12px}
 .nk-calendar .nk-week-targets{gap:11px}
}

/* v1.0.4: customer past days remain visible for calendar alignment but cannot be opened. */
.nk-calendar[data-mode="public"] .nk-day.nk-past,
.nk-calendar[data-mode="public"] .nk-day.nk-past.nk-closed,
.nk-calendar[data-mode="public"] .nk-day.nk-past.nk-special {
  background:#ededed!important;border-color:#e2e2e2!important;color:#989898!important;
  opacity:1!important;box-shadow:none!important;cursor:not-allowed!important;
}
.nk-calendar[data-mode="public"] .nk-day.nk-past .nk-day-status,
.nk-calendar[data-mode="public"] .nk-day.nk-past .nk-day-extra {background:#e2e2e2!important;color:#b0b0b0!important;}
.nk-calendar[data-mode="public"] .nk-day.nk-past::after {display:none;}
.nk-calendar .nk-nav:disabled{opacity:.28;cursor:not-allowed;}
.nk-calendar .nk-booking-area{flex-basis:100%;display:flex;gap:8px 16px;flex-wrap:wrap;align-items:center;padding-top:11px;margin-top:5px;border-top:1px solid #ded8d2;}
.nk-calendar .nk-booking-area small{color:#6b625b;font-size:12px;line-height:1.55;}
.nk-calendar .nk-booking-cta{display:inline-flex;gap:18px;justify-content:center;align-items:center;min-height:45px;padding:11px 25px;border:0;border-radius:9px;background:#e87728;color:white!important;text-decoration:none!important;font-size:15px;font-weight:800;cursor:pointer;box-shadow:0 2px 4px #0001;}
.nk-calendar .nk-booking-cta:hover:not(:disabled){background:#c75c18;color:#fff!important;}
.nk-calendar .nk-booking-cta:disabled{opacity:.48;cursor:not-allowed;}
.nk-calendar .nk-booking-unavailable{flex-basis:100%;margin:4px 0 0;color:#73675e;font-size:12px;}
.nk-calendar .nk-booking-cta:focus-visible{outline:3px solid #2879c8;outline-offset:3px;}
@media(max-width:600px){.nk-calendar .nk-booking-area{display:flex;flex-direction:column;align-items:stretch;gap:9px;}.nk-calendar .nk-booking-cta{width:100%;min-height:46px;}.nk-calendar .nk-booking-area small{font-size:11px;}}

