.chatPage{display:flex;flex-direction:column;gap:10px;min-height:100%}.chatMessages{flex:1;overflow-y:auto;display:flex;flex-direction:column;gap:14px;padding-right:4px}.messageRow{display:flex;gap:10px;max-width:840px;align-items:flex-start}.messageRow.isUser{flex-direction:row-reverse;margin-left:auto}.messageAvatar{width:34px;height:34px;border-radius:50%;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:11px;font-weight:700;letter-spacing:-.02em}.messageAvatar.isAssistant{background:var(--color-primary);color:#fff}.messageAvatar.isUser{background:#d1d5db;color:#374151}.messageBubble{max-width:min(70vw,620px);border-radius:14px;padding:10px 14px;font-size:14px;line-height:1.7}.messageBubble.isAssistant{background:var(--color-surface);border:1px solid var(--color-border);box-shadow:0 1px 3px #0000000a}.messageBubble.isUser{background:var(--color-primary);color:#fff}.messageBubble p{margin:0}.messageMeta{font-size:11px;margin-top:4px;color:#9ca3af;padding-left:2px}.typingIndicator{display:flex;align-items:center;gap:4px;padding:12px 14px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:14px;width:fit-content}.typingDot{width:7px;height:7px;border-radius:50%;background:var(--color-text-subtle);animation:typingBounce 1.2s infinite ease-in-out}.typingDot:nth-child(2){animation-delay:.2s}.typingDot:nth-child(3){animation-delay:.4s}@keyframes typingBounce{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-5px);opacity:1}}.chatInputArea{border-top:1px solid var(--color-border);padding-top:10px;flex-shrink:0}.chatUsageBadge{font-size:12px;color:var(--color-text-subtle);text-align:right;margin-bottom:6px;padding:0 4px}.chatUsageBadge.limitReached{color:var(--color-danger);font-weight:600}.chatInputWrapper{display:flex;align-items:flex-end;gap:8px}.chatInput{flex:1;min-height:44px;max-height:120px;resize:none;padding:10px 14px;border:1px solid var(--color-border-strong);border-radius:22px;font-size:14px;font-family:inherit;background:var(--color-surface);color:var(--color-text-main);outline:none;transition:border-color .15s,box-shadow .15s;line-height:1.5}.chatInput:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #2563eb1a}.chatInput::placeholder{color:#9ca3af}.chatInput:disabled{background:var(--color-bg);cursor:not-allowed}.chatSendBtn{width:44px;height:44px;border:none;border-radius:50%;background:var(--color-primary);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:16px;transition:background .15s,box-shadow .15s;box-shadow:0 1px 3px #2563eb4d}.chatSendBtn:not(:disabled):hover{background:var(--color-primary-hover);box-shadow:0 2px 6px #2563eb66}.chatSendBtn:disabled{background:#93c5fd;cursor:not-allowed;box-shadow:none}@media(max-width:768px){.messageBubble{max-width:82vw;font-size:15px}.chatInput{font-size:16px;min-height:46px}.chatSendBtn{width:46px;height:46px}}.calendarCard{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:10px}.calendarPage{display:flex;flex-direction:column;gap:10px}.calendarHeaderRow{display:flex;justify-content:flex-end}.viewSwitch,.calendarNavGroup{display:flex;gap:6px}.viewBtn,.calendarNavBtn{border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-main);cursor:pointer;font-size:13px;font-weight:600;transition:background .12s}.viewBtn{padding:6px 12px}.viewBtn:hover{background:var(--color-bg)}.viewBtn.isActive{background:var(--color-primary);border-color:var(--color-primary);color:#fff}.calendarNavBtn{padding:6px 10px}.calendarNavBtn:hover{background:var(--color-bg)}.calendarToolbar{display:flex;align-items:center;justify-content:space-between;gap:8px}.calendarTitle{margin:0;font-size:16px;font-weight:700}.calendarCardTitle{font-size:14px;font-weight:700;margin-bottom:8px;color:var(--color-text-main)}.staffDayGrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:8px}.staffFilterRow{display:flex;align-items:center;gap:8px;margin-bottom:8px}.staffFilterRow select{border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);padding:6px 8px;font-size:13px;color:var(--color-text-main)}.loadingText{margin:8px 0;color:var(--color-text-subtle);font-size:13px}.emptyText{color:var(--color-text-subtle);font-size:13px}.reservationItem{margin-bottom:6px;padding:8px;text-align:left;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-sm);transition:border-color .12s,background .12s}.reservationItem:hover{border-color:var(--color-primary-border);background:var(--color-primary-weak)}.reservationItemMain{font-size:13px;font-weight:600;color:var(--color-text-main)}.reservationItemSub{font-size:12px;color:var(--color-text-subtle);margin-top:2px}.weekGrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.weekDayCard{padding:8px;text-align:left;cursor:pointer;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);transition:border-color .12s,background .12s}.weekDayCard:hover{border-color:var(--color-primary-border);background:var(--color-primary-weak)}.weekDayTitle{font-size:13px;font-weight:700;margin-bottom:6px;color:var(--color-text-main)}.weekDayBody{min-height:56px}.monthGrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.monthCell{min-height:120px;padding:8px;text-align:left;cursor:pointer;border:1px solid var(--color-border);border-radius:var(--radius-md);background:var(--color-surface);transition:border-color .12s,background .12s}.monthCell:hover{border-color:var(--color-primary-border);background:var(--color-primary-weak)}.monthCell.isOutside{opacity:.4}.monthCellDate{font-size:13px;font-weight:700;margin-bottom:6px;color:var(--color-text-main)}.monthCellItem,.monthCellMore{font-size:11px;color:var(--color-text-subtle);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@media(max-width:768px){.calendarToolbar{flex-direction:column;align-items:flex-start}.weekGrid{grid-template-columns:1fr}.monthGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.calendarTitle{font-size:15px}}.settingsPage{min-height:100%}.settingsCard{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:20px}.settingsCard h2{margin:0 0 6px;font-size:18px;font-weight:800;color:var(--color-text-main)}.settingsCard p{font-size:13px;color:var(--color-text-subtle);margin:0 0 16px}.aiLogoutBtnSettings{max-width:180px}:root{--color-bg: #f3f4f6;--color-bg-app: #f3f4f6;--color-surface: #ffffff;--color-border: #e5e7eb;--color-border-strong: #d1d5db;--color-border-input: #d1d5db;--color-text: #1f2937;--color-text-main: #1f2937;--color-text-subtle: #6b7280;--color-primary: #2563eb;--color-primary-hover: #1d4ed8;--color-primary-weak: #eef2ff;--color-primary-border: #e0e7ff;--color-primary-text: #2563eb;--color-chip-hover: #eff6ff;--color-success: #059669;--color-success-soft: #d1fae5;--color-success-border: #6ee7b7;--color-warning: #d97706;--color-warning-soft: #fef3c7;--color-warning-border: #fcd34d;--color-danger: #dc2626;--color-danger-soft: #fee2e2;--color-danger-border: #fca5a5;--color-info: #0284c7;--color-info-soft: #e0f2fe;--color-info-border: #7dd3fc;--radius-sm: 8px;--radius-md: 10px;--radius-lg: 12px;--radius-pill: 999px;--input-height: 44px;--btn-height: 44px;--btn-height-sm: 32px}*,*:before,*:after{box-sizing:border-box}html,body,#root{margin:0;width:100%;height:100dvh}body{font-family:system-ui,-apple-system,Segoe UI,Noto Sans JP,sans-serif;color:var(--color-text);background:var(--color-bg)}.appLayout{display:flex;height:100dvh;overflow:hidden}.appMain{flex:1;min-width:0;display:flex;flex-direction:column}.appContent{flex:1;overflow:auto;padding:14px}.appSidebar{width:240px;height:100dvh;border-right:1px solid var(--color-border);background:var(--color-surface);display:none;flex-direction:column;flex-shrink:0;padding:12px;box-sizing:border-box;overflow-y:auto;-webkit-overflow-scrolling:touch}.appSidebar.sidebarOpen{display:flex}.sidebarHeader{padding:10px 8px 14px;text-align:center;border-bottom:1px solid var(--color-border);margin-bottom:4px}.sidebarTitle{font-size:20px;font-weight:800;font-style:italic;line-height:1.2;letter-spacing:-.02em;color:var(--color-text)}.sidebarSub{font-size:12px;color:var(--color-text-subtle);margin-top:2px}.sidebarNav{display:flex;flex-direction:column;gap:4px;padding:8px 0;flex:1}.sidebarItem{display:flex;align-items:center;width:100%;height:40px;padding:0 12px;border-radius:var(--radius-md);text-decoration:none;color:var(--color-text-main);font-size:14px;font-weight:600;background:transparent;transition:background .12s}.sidebarItem:hover{background:var(--color-bg)}.sidebarItem.isActive{background:var(--color-primary-weak);border:1px solid var(--color-primary-border);color:var(--color-primary-text);font-weight:700}.aiSidebarFooter{border-top:1px solid var(--color-border);padding:12px 8px;flex-shrink:0}.aiUserName{font-size:13px;font-weight:700;color:var(--color-text-main)}.aiUserMeta{margin-top:4px;font-size:12px;color:var(--color-text-subtle)}.aiLogoutBtn{margin-top:10px;width:100%;height:34px;border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);background:var(--color-surface);color:var(--color-text-main);font-size:13px;font-weight:600;cursor:pointer;transition:background .12s}.aiLogoutBtn:hover{background:var(--color-bg)}.appTopbar{height:56px;display:flex;align-items:center;gap:8px;padding:0 16px;border-bottom:1px solid var(--color-border);background:var(--color-surface);flex-shrink:0}.appTopbarTitle{margin:0;font-size:16px;font-weight:700;flex:1}.appTopbarStaff{font-size:13px;font-weight:700;color:var(--color-text-subtle);white-space:nowrap}.hamburger{display:flex;align-items:center;justify-content:center;width:40px;height:40px;flex-shrink:0;border:none;background:none;border-radius:var(--radius-md);cursor:pointer;color:var(--color-text);font-size:22px;line-height:1;transition:background .12s}.hamburger:hover{background:var(--color-bg)}.sidebarBackdrop{position:fixed;inset:0;background:#0006;z-index:199}.infoCard{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:10px 12px;margin-top:8px;font-size:13px}.infoCardTitle{font-weight:700;font-size:13px;color:var(--color-text-main)}.infoCardRow{display:flex;justify-content:space-between;gap:10px;padding-top:5px;font-size:13px;color:var(--color-text-subtle)}.infoCardRow span:last-child{font-weight:600;color:var(--color-text-main);text-align:right}.badge{display:inline-flex;align-items:center;font-size:11px;font-weight:700;border-radius:var(--radius-pill);padding:2px 8px;white-space:nowrap}.badge.ok{background:var(--color-success-soft);color:var(--color-success);border:1px solid var(--color-success-border)}.badge.info{background:var(--color-info-soft);color:var(--color-info);border:1px solid var(--color-info-border)}.badge.warn{background:var(--color-warning-soft);color:var(--color-warning);border:1px solid var(--color-warning-border)}.badge.error{background:var(--color-danger-soft);color:var(--color-danger);border:1px solid var(--color-danger-border)}.quickActions{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.quickAction{border:1px solid var(--color-border-strong);border-radius:var(--radius-pill);background:var(--color-surface);color:var(--color-text-main);cursor:pointer;padding:6px 14px;font-size:13px;font-weight:600;transition:background .12s,border-color .12s}.quickAction:hover{background:var(--color-chip-hover);border-color:#93c5fd;color:var(--color-primary)}.pageCard{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:20px;box-shadow:0 1px 4px #0000000a}.pageTitle{margin:0;font-size:20px;font-weight:800}.pageDesc{font-size:13px;color:var(--color-text-subtle);margin-top:4px;line-height:1.6}.formRow{display:flex;flex-direction:column;gap:5px;margin-top:14px}.formRow label{font-size:12px;font-weight:700;color:var(--color-text-subtle);letter-spacing:.01em}.formRow input,.formRow select,.formRow textarea{height:var(--input-height);padding:0 12px;border-radius:var(--radius-md);border:1px solid var(--color-border-input);font-size:15px;background:var(--color-surface);outline:none;width:100%;box-sizing:border-box;transition:border-color .15s,box-shadow .15s;color:var(--color-text-main)}.formRow input:focus,.formRow select:focus,.formRow textarea:focus{border-color:var(--color-primary);box-shadow:0 0 0 3px #2563eb1a}.req{color:var(--color-danger);margin-left:2px}.formError{font-size:13px;color:var(--color-danger);margin-top:8px;text-align:center}.dashBtn{height:var(--btn-height);padding:0 20px;border-radius:var(--radius-md);font-size:15px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;white-space:nowrap;text-decoration:none;border:none;background:var(--color-primary);color:#fff;transition:background .15s,box-shadow .15s;box-shadow:0 1px 3px #2563eb40}.dashBtn:not(:disabled):hover{background:var(--color-primary-hover);box-shadow:0 2px 6px #2563eb59}.dashBtn:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.dashBtnGhost{background:var(--color-surface);color:var(--color-text-main);border:1px solid var(--color-border-strong);box-shadow:none}.dashBtnGhost:not(:disabled):hover{background:var(--color-bg);border-color:#adb5c8;box-shadow:none}.dashBtnSm{height:var(--btn-height-sm);padding:0 12px;font-size:13px;border-radius:var(--radius-sm)}.emptyState{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:48px 24px;color:var(--color-text-subtle);font-size:14px;text-align:center;gap:8px}.loadingText{color:var(--color-text-subtle);font-size:13px;padding:16px 0;text-align:center}.loginOuter{display:flex;align-items:center;justify-content:center;min-height:100dvh;background:var(--color-bg);padding:16px}.loginCard{width:100%;max-width:380px}.loginTitle{text-align:center;font-size:22px}.loginDesc{text-align:center;margin-bottom:4px}.loginRemember{display:flex;align-items:center;gap:8px;margin-top:12px;font-size:13px;color:var(--color-text-subtle);cursor:pointer}.loginRemember input[type=checkbox]{width:16px;height:16px;cursor:pointer;flex-shrink:0}.loginSubmitBtn{width:100%;margin-top:16px}.loginFooter{margin-top:16px;text-align:center}.loginForgotLink{font-size:13px;color:var(--color-text-subtle);text-decoration:none}.loginForgotLink:hover{color:var(--color-primary);text-decoration:underline}@media(max-width:1023px){.appSidebar{display:flex;position:fixed;left:0;top:0;z-index:200;height:100dvh;overflow-y:auto;-webkit-overflow-scrolling:touch;transform:translate(-100%);transition:transform .25s ease}.appSidebar.sidebarOpen{transform:translate(0);box-shadow:4px 0 24px #00000026}}@media(min-width:1024px){.sidebarBackdrop{display:none}}
