.nwb-calendar-container{--nwb-primary:#e0632b;--nwb-primary-dark:#bf4512;--nwb-primary-light:rgba(224,99,43,0.1);--nwb-primary-shadow:rgba(191,69,18,0.3);--nwb-text:#2d3748;--nwb-text-dark:#1a202c;--nwb-text-muted:#596575;--nwb-text-light:#718096;--nwb-bg:#ffffff;--nwb-bg-muted:#f7fafc;--nwb-bg-gray:#edf2f7;--nwb-border:#e2e8f0;--nwb-error:#f56565;--nwb-error-bg:#fff5f5;--nwb-error-dark:#c53030;--nwb-success:#38a169;--nwb-radius:8px;--nwb-radius-lg:12px;--nwb-font:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Oxygen,Ubuntu,Cantarell,sans-serif;--nwb-safe-bottom:env(safe-area-inset-bottom,0px);--nwb-safe-left:env(safe-area-inset-left,0px);--nwb-safe-right:env(safe-area-inset-right,0px);}.nwb-initial-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:180px;padding:32px 16px;}.nwb-initial-spinner{width:40px;height:40px;border:3px solid var(--nwb-border);border-top-color:var(--nwb-primary);border-radius:50%;animation:nwb-spin 0.8s linear infinite;margin-bottom:12px;}.nwb-initial-loading-text{font-family:var(--nwb-font);font-size:14px;color:var(--nwb-text-light);margin:0;}.nwb-calendar-container{font-family:var(--nwb-font);font-size:16px;line-height:1.5;color:var(--nwb-text);max-width:1000px;width:100%;margin:0 auto;padding:12px;padding-left:calc(12px + var(--nwb-safe-left));padding-right:calc(12px + var(--nwb-safe-right));box-sizing:border-box;overflow-x:hidden;-webkit-overflow-scrolling:touch;}.nwb-calendar-container *{box-sizing:border-box;}@media (min-width:768px){.nwb-calendar-container{padding:20px;}}.nwb-calendar{background:var(--nwb-bg);border-radius:var(--nwb-radius);padding:16px;box-shadow:0 1px 4px rgba(0,0,0,0.08);}@media (min-width:768px){.nwb-calendar{padding:24px;box-shadow:0 2px 8px rgba(0,0,0,0.1);}}@media (min-width:1024px){.nwb-calendar{padding:30px;}}.nwb-calendar-header{margin-bottom:20px;}.nwb-calendar-header h2{font-size:22px;font-weight:700;margin:0 0 6px 0;color:var(--nwb-text-dark);word-break:break-word;overflow-wrap:break-word;}.nwb-calendar-header p{font-size:14px;color:var(--nwb-text-light);margin:0;line-height:1.4;}@media (min-width:768px){.nwb-calendar-header{margin-bottom:28px;}.nwb-calendar-header h2{font-size:26px;}.nwb-calendar-header p{font-size:16px;}}.nwb-calendar-container button{background-color:transparent;color:inherit;padding:0;border-width:0;border-radius:0;margin:0;min-height:0;text-decoration:none;font-size:inherit;font-weight:inherit;line-height:inherit;letter-spacing:inherit;text-transform:none;box-shadow:none;}.nwb-date-picker{margin-bottom:24px;}.nwb-date-picker h3{font-size:16px;font-weight:600;margin:0 0 12px 0;color:var(--nwb-text);}@media (min-width:768px){.nwb-date-picker h3{font-size:18px;margin-bottom:15px;}}.nwb-date-slider{display:flex;align-items:center;gap:8px;width:100%;}.nwb-calendar-container .nwb-date-arrow{display:flex;align-items:center;justify-content:center;width:44px;height:44px;min-width:44px;border-radius:50%;background:var(--nwb-bg) !important;border:2px solid var(--nwb-border) !important;color:var(--nwb-text) !important;cursor:pointer;font-size:18px;line-height:1;transition:background-color 0.15s ease,border-color 0.15s ease;flex-shrink:0;padding:0 !important;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}.nwb-calendar-container .nwb-date-arrow:focus-visible{outline:2px solid var(--nwb-primary);outline-offset:2px;}@media (hover:hover) and (pointer:fine){.nwb-calendar-container .nwb-date-arrow:hover{background:var(--nwb-primary-light) !important;border-color:var(--nwb-primary) !important;color:var(--nwb-primary-dark) !important;}}.nwb-calendar-container .nwb-date-arrow:disabled{opacity:0.3;cursor:not-allowed;}.nwb-date-viewport{flex:1;overflow:hidden;min-width:0;}.nwb-date-list{display:flex;gap:8px;width:100%;min-height:78px;contain:layout style;}@media (min-width:768px){.nwb-date-list{gap:10px;}}@media (min-width:1024px){.nwb-date-list{gap:12px;}}.nwb-date-dots{display:flex;justify-content:center;gap:12px;margin-top:10px;}.nwb-calendar-container .nwb-date-dot{width:6px;height:6px;border-radius:50%;background:var(--nwb-border) !important;border:none !important;cursor:pointer;padding:0 !important;position:relative;transition:background-color 0.2s ease,transform 0.2s ease;touch-action:manipulation;-webkit-tap-highlight-color:transparent;}.nwb-calendar-container .nwb-date-dot::after{content:'';position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:44px;height:44px;border-radius:50%;}.nwb-calendar-container .nwb-date-dot:focus-visible{outline:2px solid var(--nwb-primary);outline-offset:4px;}.nwb-calendar-container .nwb-date-dot.active{background:var(--nwb-primary) !important;transform:scale(1.25);}@media (hover:hover) and (pointer:fine){.nwb-calendar-container .nwb-date-dot:hover{background:var(--nwb-primary-shadow) !important;}}.nwb-calendar-container .nwb-date-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;padding:10px 6px !important;background:#ffffff !important;border:2px solid var(--nwb-border) !important;color:var(--nwb-text) !important;min-height:70px;flex:1 1 0;min-width:0;max-width:120px;border-radius:var(--nwb-radius-lg);cursor:pointer;transition:background-color 0.2s ease,border-color 0.2s ease,box-shadow 0.2s ease,transform 0.2s ease;font-family:inherit;font-size:14px !important;box-sizing:border-box;overflow:visible;box-shadow:0 1px 3px rgba(0,0,0,0.08);-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;touch-action:manipulation;contain:layout style paint;}@media (hover:hover) and (pointer:fine){.nwb-calendar-container .nwb-date-item:hover{background:var(--nwb-primary-light) !important;border-color:var(--nwb-primary) !important;box-shadow:0 2px 6px rgba(0,0,0,0.1);}}.nwb-calendar-container .nwb-date-item:active{background:var(--nwb-primary-light) !important;border-color:var(--nwb-primary) !important;}.nwb-calendar-container .nwb-date-item:focus-visible{outline:3px solid var(--nwb-primary);outline-offset:2px;}.nwb-calendar-container .nwb-date-item.selected{background:var(--nwb-primary) !important;border-color:var(--nwb-primary) !important;color:#ffffff !important;box-shadow:0 4px 12px rgba(224,99,43,0.35) !important;transform:translateY(-2px);}.nwb-calendar-container .nwb-date-item.selected .nwb-date-day,.nwb-calendar-container .nwb-date-item.selected .nwb-date-number,.nwb-calendar-container .nwb-date-item.selected .nwb-date-month{color:#ffffff !important;}.nwb-calendar-container .nwb-date-day{font-size:11px !important;font-weight:700;color:#596575 !important;text-transform:uppercase;white-space:nowrap;overflow:visible;width:100%;text-align:center;line-height:1.2;letter-spacing:0.5px;}.nwb-calendar-container .nwb-date-number{font-size:20px !important;font-weight:700;color:#2d3748 !important;line-height:1.1;flex-shrink:0;}.nwb-calendar-container .nwb-date-month{font-size:11px !important;color:#596575 !important;white-space:nowrap;overflow:visible;width:100%;text-align:center;line-height:1.2;}.nwb-time-slots{margin-top:4px;}.nwb-time-slots h3{font-size:16px;font-weight:600;margin:0 0 12px 0;color:var(--nwb-text);}@media (min-width:768px){.nwb-time-slots h3{font-size:18px;margin-bottom:15px;}}.nwb-slots-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;width:100%;}@media (min-width:375px){.nwb-slots-grid{gap:10px;}}@media (min-width:768px){.nwb-slots-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;}}@media (min-width:1024px){.nwb-slots-grid{grid-template-columns:repeat(5,minmax(0,1fr));gap:14px;}}.nwb-calendar-container .nwb-time-slot{padding:14px 8px !important;background:#ffffff !important;border:2px solid rgba(224,99,43,0.35) !important;border-radius:var(--nwb-radius);font-size:15px !important;font-weight:600;color:#2d3748 !important;cursor:pointer;transition:background-color 0.15s ease,border-color 0.15s ease,color 0.15s ease;text-align:center;font-family:inherit;min-height:48px;display:flex;align-items:center;justify-content:center;width:100%;white-space:nowrap;contain:layout style paint;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;touch-action:manipulation;}@media (min-width:768px){.nwb-calendar-container .nwb-time-slot{padding:14px 10px !important;font-size:16px !important;min-height:50px !important;}}.nwb-calendar-container .nwb-time-slot:focus-visible{outline:3px solid var(--nwb-primary);outline-offset:2px;}@media (hover:hover) and (pointer:fine){.nwb-calendar-container .nwb-time-slot:hover:not(:disabled){background:var(--nwb-primary-dark) !important;border-color:var(--nwb-primary-dark) !important;color:#ffffff !important;transform:translateY(-2px);box-shadow:0 4px 8px var(--nwb-primary-shadow);}}.nwb-calendar-container .nwb-time-slot:active:not(:disabled){background:var(--nwb-primary-dark) !important;border-color:var(--nwb-primary-dark) !important;color:#ffffff !important;transform:scale(0.97);}.nwb-calendar-container .nwb-time-slot.blocked,.nwb-calendar-container .nwb-time-slot.past,.nwb-calendar-container .nwb-time-slot:disabled{background:var(--nwb-bg-muted) !important;border-color:var(--nwb-border) !important;color:#a0aec0 !important;cursor:not-allowed;opacity:0.65;}.nwb-calendar-container .nwb-time-slot.blocked:hover,.nwb-calendar-container .nwb-time-slot.past:hover{background:var(--nwb-bg-muted) !important;border-color:var(--nwb-border) !important;color:#cbd5e0 !important;transform:none;box-shadow:none;cursor:not-allowed;}.nwb-slot-group{margin-bottom:20px;content-visibility:auto;contain-intrinsic-size:auto 200px;}.nwb-slot-group:last-child{margin-bottom:0;}.nwb-slot-group-label{font-size:13px;font-weight:600;color:var(--nwb-text-muted);text-transform:uppercase;letter-spacing:0.5px;margin:0 0 10px 0;padding:0;}@media (min-width:768px){.nwb-slot-group-label{font-size:14px;margin-bottom:12px;}}.nwb-no-slots-message{text-align:center;color:var(--nwb-text-light);font-size:14px;margin-top:16px;padding:14px 16px;background:var(--nwb-bg-muted);border-radius:var(--nwb-radius);border:1px solid var(--nwb-border);line-height:1.5;}.nwb-few-slots-message{text-align:center;color:#c05621;font-size:13px;font-weight:600;margin-top:12px;padding:10px 14px;background:#fffaf0;border-radius:var(--nwb-radius);border:1px solid #fbd38d;line-height:1.4;}.nwb-availability-hint{text-align:center;color:#718096;font-size:12px;margin-top:10px;padding:8px 12px;background:#f7fafc;border-radius:var(--nwb-radius);border:1px solid #e2e8f0;line-height:1.4;}@media (min-width:768px){.nwb-no-slots-message{font-size:15px;padding:15px 20px;}.nwb-few-slots-message{font-size:14px;}}.nwb-booking-form{display:none;background:var(--nwb-bg);border-radius:var(--nwb-radius);padding:16px;box-shadow:0 1px 4px rgba(0,0,0,0.08);contain:content;}@media (min-width:768px){.nwb-booking-form{padding:24px;box-shadow:0 2px 8px rgba(0,0,0,0.1);}}@media (min-width:1024px){.nwb-booking-form{padding:30px;}}.nwb-form-header{margin-bottom:16px;}.nwb-form-header h2{font-size:22px;font-weight:700;margin:0;color:var(--nwb-text-dark);word-break:break-word;overflow-wrap:break-word;}@media (min-width:768px){.nwb-form-header{margin-bottom:24px;}.nwb-form-header h2{font-size:26px;}}.nwb-booking-summary{background:var(--nwb-bg-gray);padding:12px 16px;border-radius:var(--nwb-radius);margin-bottom:20px;}.nwb-booking-summary p{margin:0;font-size:14px;color:var(--nwb-text);line-height:1.5;}.nwb-booking-summary strong{color:var(--nwb-text-dark);}@media (min-width:768px){.nwb-booking-summary{padding:15px 20px;margin-bottom:28px;}.nwb-booking-summary p{font-size:16px;}}.nwb-form-grid{display:grid;grid-template-columns:1fr;gap:14px;margin-bottom:16px;}@media (min-width:768px){.nwb-form-grid{grid-template-columns:1fr 1fr;gap:18px;margin-bottom:20px;}}.nwb-form-group{display:flex;flex-direction:column;gap:6px;}.nwb-form-group.full-width{grid-column:1 / -1;}.nwb-form-group label{font-size:14px;font-weight:600;color:var(--nwb-text);}.nwb-form-group label .required{color:var(--nwb-error);}.nwb-calendar-container .nwb-form-group input,.nwb-calendar-container .nwb-form-group textarea{padding:12px 14px !important;font-size:16px !important;border:2px solid var(--nwb-border) !important;border-radius:var(--nwb-radius) !important;font-family:inherit !important;color:var(--nwb-text) !important;background:var(--nwb-bg) !important;transition:border-color 0.2s ease;width:100% !important;-webkit-appearance:none;appearance:none;}.nwb-calendar-container .nwb-form-group input:focus,.nwb-calendar-container .nwb-form-group textarea:focus{outline:none !important;border-color:var(--nwb-primary) !important;box-shadow:0 0 0 3px var(--nwb-primary-light) !important;}.nwb-calendar-container .nwb-form-group input.nwb-field-error,.nwb-calendar-container .nwb-form-group textarea.nwb-field-error{border-color:var(--nwb-error) !important;background-color:var(--nwb-error-bg) !important;}.nwb-field-error-msg{display:block;color:#e53e3e;font-size:12px;margin-top:2px;line-height:1.4;}@media (min-width:768px){.nwb-field-error-msg{font-size:13px;}}.nwb-form-group textarea{resize:vertical;min-height:80px;}@media (min-width:768px){.nwb-form-group textarea{min-height:100px;}}.nwb-char-count{font-size:11px;color:#a0aec0;text-align:right;margin-top:-2px;}.nwb-char-count.over-limit{color:var(--nwb-error);}.nwb-form-actions{display:flex;flex-direction:column-reverse;gap:10px;margin-top:20px;padding-bottom:var(--nwb-safe-bottom);}@media (min-width:768px){.nwb-form-actions{flex-direction:row;gap:15px;margin-top:28px;padding-bottom:0;}}.nwb-btn{padding:14px 24px;font-size:16px;font-weight:600;border:none;border-radius:var(--nwb-radius);cursor:pointer;transition:background-color 0.15s ease,transform 0.1s ease;font-family:inherit;min-height:50px;width:100%;text-align:center;-webkit-tap-highlight-color:transparent;-webkit-user-select:none;user-select:none;touch-action:manipulation;-webkit-appearance:none;appearance:none;}@media (min-width:768px){.nwb-btn{width:auto;flex:1;min-height:48px;padding:14px 32px;}}.nwb-calendar-container .nwb-btn:focus-visible{outline:3px solid var(--nwb-primary);outline-offset:2px;}.nwb-calendar-container .nwb-btn-primary{background:var(--nwb-primary-dark) !important;color:#ffffff !important;}@media (hover:hover) and (pointer:fine){.nwb-calendar-container .nwb-btn-primary:hover{background:#a33b0e !important;box-shadow:0 4px 12px var(--nwb-primary-shadow);}}.nwb-calendar-container .nwb-btn-primary:active{transform:scale(0.98);background:#a33b0e !important;}.nwb-calendar-container .nwb-btn-secondary{background:#edf2f7 !important;color:#2d3748 !important;}@media (hover:hover) and (pointer:fine){.nwb-calendar-container .nwb-btn-secondary:hover{background:var(--nwb-border) !important;}}.nwb-calendar-container .nwb-btn-secondary:active{background:var(--nwb-border) !important;}.nwb-success-message{display:none;background:var(--nwb-bg);border-radius:var(--nwb-radius);padding:24px 16px;box-shadow:0 1px 4px rgba(0,0,0,0.08);text-align:center;}@media (min-width:768px){.nwb-success-message{padding:40px;box-shadow:0 2px 8px rgba(0,0,0,0.1);}}.nwb-success-icon{font-size:48px;margin-bottom:12px;}@media (min-width:768px){.nwb-success-icon{font-size:64px;margin-bottom:20px;}}.nwb-success-content h3{font-size:22px;font-weight:700;color:var(--nwb-success);margin:0 0 10px 0;word-break:break-word;overflow-wrap:break-word;}@media (min-width:768px){.nwb-success-content h3{font-size:28px;margin-bottom:15px;}}.nwb-success-content p{font-size:14px;color:var(--nwb-text);margin:0 0 8px 0;line-height:1.5;}@media (min-width:768px){.nwb-success-content p{font-size:16px;margin-bottom:10px;}}.nwb-booking-id{font-size:13px;color:var(--nwb-text-light);}.nwb-booking-details{background:var(--nwb-bg-muted);padding:16px;border-radius:var(--nwb-radius);margin-top:20px;text-align:left;}@media (min-width:768px){.nwb-booking-details{padding:20px;margin-top:30px;}}.nwb-booking-details p{margin:6px 0;}.nwb-error-message{display:none;background:var(--nwb-error-bg);border:2px solid #fc8181;border-radius:var(--nwb-radius);padding:12px 14px;margin-bottom:16px;color:var(--nwb-error-dark);font-size:14px;line-height:1.5;word-break:break-word;}@media (min-width:768px){.nwb-error-message{padding:16px 20px;margin-bottom:20px;font-size:16px;}}.nwb-loading-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,0,0,0.5);z-index:9999;justify-content:center;align-items:center;overscroll-behavior:contain;}.nwb-loading-content{background:var(--nwb-bg);padding:28px 24px;border-radius:var(--nwb-radius-lg);text-align:center;box-shadow:0 8px 24px rgba(0,0,0,0.2);margin:0 16px;max-width:320px;width:calc(100% - 32px);}@media (min-width:768px){.nwb-loading-content{padding:40px 60px;margin:0;max-width:none;width:auto;}}.nwb-loading-spinner{width:40px;height:40px;border:3px solid var(--nwb-border);border-top-color:var(--nwb-primary);border-radius:50%;animation:nwb-spin 0.8s linear infinite;margin:0 auto 16px;will-change:transform;}@media (min-width:768px){.nwb-loading-spinner{width:48px;height:48px;border-width:4px;margin-bottom:20px;}}@keyframes nwb-spin{to{transform:rotate(360deg);}}.nwb-loading-text{font-size:14px;color:var(--nwb-text);font-weight:500;animation:nwb-text-fade 1.5s ease-in-out infinite;line-height:1.5;word-break:break-word;}@media (min-width:768px){.nwb-loading-text{font-size:16px;}}@keyframes nwb-text-fade{0%,100%{opacity:1;}50%{opacity:0.6;}}.nwb-calendar-container .nwb-time-slot.nwb-slot-unconfirmed{animation:nwb-slot-shimmer 1.8s ease-in-out infinite;}@keyframes nwb-slot-shimmer{0%,100%{opacity:1;}50%{opacity:0.7;}}.nwb-calendar-container .nwb-time-slot.nwb-slot-removing{animation:nwb-slot-fade-out 0.35s ease forwards;pointer-events:none;}@keyframes nwb-slot-fade-out{0%{opacity:1;transform:scale(1);}100%{opacity:0;transform:scale(0.85);max-height:0;padding-top:0;padding-bottom:0;margin:0;border-width:0;}}.nwb-calendar-container .nwb-time-slot.nwb-slot-confirmed{animation:nwb-slot-confirm 0.25s ease;}@keyframes nwb-slot-confirm{0%{transform:scale(1);}50%{transform:scale(1.03);}100%{transform:scale(1);}}.nwb-background-error{background:#fffbeb;border:1px solid #fcd34d;border-radius:var(--nwb-radius);padding:14px 16px;margin-top:20px;color:#92400e;font-size:13px;line-height:1.5;text-align:left;animation:nwb-slide-in 0.3s ease;}@keyframes nwb-slide-in{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:translateY(0);}}@media (min-width:768px){.nwb-background-error{font-size:14px;padding:16px 20px;}}.nwb-mock-warning{background:#fffaf0;border:2px solid #fbd38d;border-radius:var(--nwb-radius);padding:12px 14px;margin-bottom:16px;color:#744210;font-size:13px;line-height:1.5;}@media (min-width:768px){.nwb-mock-warning{padding:16px 20px;margin-bottom:20px;font-size:14px;}}.nwb-mock-warning strong{display:block;margin-bottom:4px;}.nwb-date-picker{position:relative;}@media (prefers-reduced-motion:reduce){.nwb-initial-spinner,.nwb-loading-spinner{animation:none;}.nwb-loading-text{animation:none;}.nwb-time-slot,.nwb-date-item,.nwb-btn{transition:none;}.nwb-calendar-container .nwb-time-slot.nwb-slot-unconfirmed{animation:none;opacity:0.7;}.nwb-calendar-container .nwb-time-slot.nwb-slot-removing{animation:none;display:none;}.nwb-calendar-container .nwb-time-slot.nwb-slot-confirmed{animation:none;}.nwb-background-error{animation:none;}}@media print{.nwb-loading-overlay{display:none !important;}.nwb-calendar-container{padding:0;}}