.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}.inlinePickerRow{align-items:flex-start}.dtPickerPanel{background:var(--color-surface);border:1px solid var(--color-border);border-radius:12px;box-shadow:0 4px 16px #0000001f;padding:12px 14px 10px;margin-bottom:8px;max-width:320px}.dtPickerHeader{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}.dtMonthLabel{font-weight:700;font-size:14px}.dtNavBtn{background:none;border:1px solid var(--color-border);border-radius:6px;width:28px;height:28px;cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center}.dtNavBtn:hover{background:var(--color-bg)}.dtCalGrid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;margin-bottom:10px}.dtDayHeader{text-align:center;font-size:11px;font-weight:600;color:var(--color-text-subtle);padding:2px 0}.dtDayHeader.sun{color:#ef4444}.dtDayHeader.sat{color:#3b82f6}.dtDayBtn{aspect-ratio:1;border:none;border-radius:50%;background:none;font-size:12px;cursor:pointer;display:flex;align-items:center;justify-content:center;width:100%;transition:background .1s}.dtDayBtn:hover{background:var(--color-bg)}.dtDayBtn.today{font-weight:700;color:var(--color-primary)}.dtDayBtn.selected{background:var(--color-primary);color:#fff;font-weight:700}.dtDayBtn.selected:hover{background:var(--color-primary-hover)}.dtDayBtn.sun{color:#ef4444}.dtDayBtn.sat{color:#3b82f6}.dtDayBtn.selected.sun,.dtDayBtn.selected.sat{color:#fff}.dtTimeRow{display:flex;align-items:center;gap:10px;margin-bottom:10px}.dtTimeLabel{font-size:13px;font-weight:600;white-space:nowrap}.dtTimeSelect{flex:1;padding:6px 10px;border:1px solid var(--color-border-strong);border-radius:8px;font-size:14px;background:var(--color-surface);color:var(--color-text-main);cursor:pointer}.dtFooter{display:flex;justify-content:flex-end;gap:8px}.dtCancelBtn{padding:6px 14px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface);font-size:13px;cursor:pointer}.dtCancelBtn:hover{background:var(--color-bg)}.dtSendBtn{padding:6px 16px;border:none;border-radius:8px;background:var(--color-primary);color:#fff;font-size:13px;font-weight:600;cursor:pointer}.dtSendBtn:hover{background:var(--color-primary-hover)}.dtSendBtn:disabled{background:#93c5fd;cursor:not-allowed}.quickActions{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:6px;max-width:min(70vw,620px)}.quickAction{padding:5px 12px;border:1px solid var(--color-primary);border-radius:16px;background:var(--color-surface);color:var(--color-primary);font-size:13px;cursor:pointer;transition:background .15s}.quickAction:hover{background:#eff6ff}.infoCard{background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;padding:10px 14px;margin-top:6px;min-width:200px;max-width:min(70vw,400px)}.infoCardTitle{font-weight:700;font-size:13px;margin-bottom:6px}.infoCardRow{display:flex;justify-content:space-between;font-size:13px;padding:2px 0;gap:8px}.badge{font-size:11px;font-weight:600;padding:2px 8px;border-radius:10px}.badge.ok{background:#d1fae5;color:#065f46}.badge.info{background:#dbeafe;color:#1e40af}.badge.warn{background:#fef3c7;color:#92400e}.badge.error{background:#fee2e2;color:#991b1b}@media(max-width:768px){.messageBubble{max-width:82vw;font-size:15px}.chatInput{font-size:16px;min-height:46px}.chatSendBtn{width:46px;height:46px}}@media(max-width:480px){.messageBubble{max-width:calc(100vw - 54px)}.quickActions{grid-template-columns:1fr;max-width:calc(100vw - 54px)}.infoCard{min-width:0;max-width:calc(100vw - 54px)}.dtPickerPanel{max-width:calc(100vw - 54px)}.chatUsageBadge{font-size:11px}.chatSendBtn{width:44px;height:44px}}.datepickerRoot{position:relative;display:inline-flex;flex-direction:column;min-width:0}.formRow>.datepickerRoot,.formRow>.datetimepickerRoot{align-self:stretch;width:100%;min-width:0}.datepickerInputRow{display:flex;align-items:center;flex-wrap:wrap;gap:3px;min-width:0}.datepickerInputRow.datepickerEraMode{flex-direction:column;align-items:flex-start;gap:6px}.datepickerRowYear,.datepickerRowMonthDay{display:flex;align-items:center;flex-wrap:wrap;gap:3px}.datepickerSelect{height:32px;padding:0 20px 0 6px;border-radius:var(--radius-md);border:1px solid var(--color-border-input);font-size:13px;background:var(--color-surface);color:var(--color-text-main);outline:none;appearance:none;-webkit-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 6'%3E%3Cpath d='M0 0l5 6 5-6' fill='none' stroke='%236b7280' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 5px center;background-size:8px 5px;cursor:pointer;transition:border-color .15s,box-shadow .15s}.datepickerYearSel{width:76px}.datepickerMonthSel,.datepickerDaySel{width:52px}.datepickerEraSel,.datepickerSm .datepickerYearSel{width:68px}.datepickerSm .datepickerMonthSel,.datepickerSm .datepickerDaySel{width:44px}.datepickerSm .datepickerEraSel{width:60px}.datepickerEraYearInput,.datepickerAgeInput{height:32px;width:44px;padding:0 4px;border-radius:var(--radius-md);border:1px solid var(--color-border-input);font-size:13px;background:var(--color-surface);color:var(--color-text-main);outline:none;text-align:center;transition:border-color .15s,box-shadow .15s;-moz-appearance:textfield}.datepickerEraYearInput::-webkit-outer-spin-button,.datepickerEraYearInput::-webkit-inner-spin-button,.datepickerAgeInput::-webkit-outer-spin-button,.datepickerAgeInput::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}.datepickerEraYearInput:focus,.datepickerAgeInput:focus{border-color:#a5b4fc;box-shadow:0 0 0 3px #4f46e51a}.datepickerEraYearInput:disabled,.datepickerAgeInput:disabled{background:var(--color-bg-app);color:var(--color-text-subtle);cursor:not-allowed}.datepickerEraEq{font-size:12px;color:var(--color-text-subtle);-webkit-user-select:none;user-select:none;padding:0 3px}.datepickerRowDivider{display:inline-block;width:1px;height:20px;background:var(--color-border);margin:0 4px;flex-shrink:0}.datepickerField{height:32px;padding:0 4px;border-radius:var(--radius-md);border:1px solid var(--color-border-input);font-size:13px;background:var(--color-surface);color:var(--color-text-main);outline:none;text-align:center;transition:border-color .15s,box-shadow .15s}.datepickerHour,.datepickerMinute{width:32px}.formRow .datepickerTimeRow{width:auto}.formRow .datepickerSelect{height:var(--input-height);font-size:14px;padding:0 28px 0 12px}.formRow .datepickerYearSel{width:96px}.formRow .datepickerEraSel{width:84px}.formRow .datepickerMonthSel,.formRow .datepickerDaySel{width:72px}.formRow .datepickerField{height:var(--input-height);font-size:14px;padding:0 6px;text-align:center}.formRow .datepickerBtn{width:var(--input-height);height:var(--input-height);border:1px solid var(--color-border-input);border-radius:var(--radius-md);margin-left:4px}.formRow .datepickerInputRow .datepickerHour,.formRow .datepickerInputRow .datepickerMinute{width:52px}.formRow .datepickerEraYearInput{height:var(--input-height);font-size:14px;width:52px}.formRow .datepickerAgeInput{height:var(--input-height);font-size:14px;width:60px}.datepickerSelect:focus,.datepickerField:focus{border-color:#a5b4fc;box-shadow:0 0 0 3px #4f46e51a}.datepickerSelect:disabled,.datepickerField:disabled{background:var(--color-bg-app);color:var(--color-text-subtle);cursor:not-allowed}.datepickerSep{font-size:13px;color:var(--color-text-subtle);-webkit-user-select:none;user-select:none}.datepickerTimeSep{font-size:14px;font-weight:700;color:var(--color-text-subtle);-webkit-user-select:none;user-select:none;margin:0 1px}.datepickerBtn{width:28px;height:28px;border:none;border-radius:var(--radius-sm);background:transparent;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;color:var(--color-text-subtle);margin-left:2px;transition:background .15s,color .15s;flex-shrink:0}.datepickerBtn:hover:not(:disabled){background:var(--color-bg-app);color:var(--color-text-main)}.datepickerBtn:disabled{opacity:.4;cursor:not-allowed}.datepickerPopup{position:absolute;top:calc(100% + 6px);left:0;z-index:1200;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:0 6px 24px #0000001f;padding:14px;min-width:248px}.datepickerNav{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}.datepickerNavBtn{width:28px;height:28px;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);cursor:pointer;font-size:10px;display:flex;align-items:center;justify-content:center;transition:background .12s,border-color .12s}.datepickerNavBtn:hover{background:var(--color-bg-app);border-color:#c9cdd8}.datepickerNavTitle{font-size:14px;font-weight:700;color:var(--color-text-main)}.datepickerGrid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.datepickerCell{height:32px;display:flex;align-items:center;justify-content:center;font-size:13px;border-radius:var(--radius-sm);border:none;background:none}.datepickerWeekdayRow{font-size:11px;font-weight:700;color:var(--color-text-subtle);padding-bottom:4px}.datepickerDayBtn{cursor:pointer;transition:background .1s}.datepickerDayBtn:hover:not(.datepickerSelected):not(.datepickerDisabled){background:var(--color-primary-soft)}.datepickerSelected{background:var(--color-primary)!important;color:#fff!important;font-weight:700}.datepickerToday:not(.datepickerSelected){font-weight:700;text-decoration:underline;text-underline-offset:2px}.datepickerDisabled{opacity:.3;cursor:not-allowed}.datepickerSun{color:var(--color-danger)}.datepickerSat{color:var(--color-info)}.datepickerSelected.datepickerSun,.datepickerSelected.datepickerSat{color:#fff!important}.datepickerFooter{margin-top:10px;display:flex;justify-content:flex-end}.datepickerTodayBtn{height:28px;padding:0 14px;font-size:12px;font-weight:600;border:1px solid var(--color-border);border-radius:var(--radius-sm);background:var(--color-surface);cursor:pointer;transition:background .12s,border-color .12s}.datepickerTodayBtn:hover{background:var(--color-bg-app);border-color:#c9cdd8}.datetimepickerRoot{display:flex;flex-direction:row;gap:8px;align-items:center;min-width:0}.datepickerTimeRow{flex:0 0 auto;padding-left:0;width:auto}.datetimepickerRoot>.datepickerRoot{flex:1 1 auto}@media(max-width:640px){.datetimepickerRoot{flex-wrap:wrap;align-items:flex-start}.datetimepickerRoot>.datepickerRoot{flex-basis:100%}}.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;padding-bottom:72px}.calendarToolbar{display:flex;align-items:center;gap:10px}.calendarNavGroup{display:flex;gap:6px;flex-shrink:0}.viewBtn{height:36px;min-width:36px;padding:0 10px;border-radius:10px;border:1px solid var(--color-border);background:var(--color-surface);color:#4b5563;font-size:12px;font-weight:700;cursor:pointer;white-space:nowrap}.viewBtn:hover{background:var(--color-bg)}.viewBtn.isActive{border-color:#e0e7ff;background:var(--color-primary);color:#fff}.viewBtnDivider{display:inline-block;width:1px;height:22px;background:var(--color-border-strong);align-self:center;flex-shrink:0;margin:0 2px}.calendarStaffRow{display:flex;align-items:center;gap:8px}.calendarStaffSelect{border:1px solid var(--color-border-strong);border-radius:var(--radius-sm);padding:6px 10px;font-size:13px;font-weight:600;color:var(--color-text-main);background:var(--color-surface);cursor:pointer;min-width:140px}.scheduleAgenda{display:flex;flex-direction:column;gap:12px}.agendaGroup{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.agendaDateLabel{display:block;width:100%;text-align:left;padding:8px 12px;font-size:13px;font-weight:700;color:var(--color-primary-text);background:var(--color-primary-weak);border:none;border-bottom:1px solid var(--color-primary-border);cursor:pointer}.agendaDateLabel:hover{background:#dbeafe}.agendaGroup .reservationItem{border:none;border-bottom:1px solid var(--color-border);border-radius:0;margin-bottom:0}.agendaGroup .reservationItem:last-child{border-bottom:none}.multiDayGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.calendarCardTitle{font-size:14px;font-weight:700;margin-bottom:8px;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}.calendarFab{position:fixed;right:20px;bottom:80px;width:56px;height:56px;border-radius:50%;border:none;background:var(--color-primary);color:#fff;font-size:28px;font-weight:300;line-height:1;display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 14px #2563eb73;z-index:100;transition:background .15s,box-shadow .15s,transform .15s}.calendarFab:hover{background:var(--color-primary-hover);box-shadow:0 6px 20px #2563eb8c;transform:scale(1.06)}.calendarFab:active{transform:scale(.95)}@media(max-width:768px){.calendarToolbar{flex-wrap:wrap;gap:6px}.calendarTitle{flex:1 0 100%;text-align:left;font-size:15px;order:2}.calendarNavGroup{order:1}.calendarViewGroup{order:0;overflow-x:auto;-webkit-overflow-scrolling:touch;flex-shrink:1;gap:3px;scrollbar-width:none}.calendarViewGroup::-webkit-scrollbar{display:none}.calendarToolbar .calendarViewGroup{order:unset;overflow-x:unset;flex-shrink:0;gap:4px}.calendarToolbar .calendarNavGroup{order:unset}.weekGrid,.multiDayGrid{grid-template-columns:1fr}.monthGrid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:480px){.calendarCard{padding:6px}.viewBtn{height:32px;min-width:28px;padding:0 7px;font-size:11px}.monthCell{min-height:72px;padding:4px}.monthCellDate{font-size:12px;margin-bottom:2px}.monthCellItem,.monthCellMore{font-size:10px}.reservationItem{padding:6px}.reservationItemMain{font-size:12px}.reservationItemSub{font-size:11px}.calendarFab{right:16px;bottom:72px;width:50px;height:50px;font-size:24px}}.fc-day-today{border:none!important}.fc-timeGridDay-view .fc-day-today{background:transparent!important}.calendarToolbar{display:flex;align-items:center;gap:10px;margin-bottom:12px}.calendarViewGroup{display:flex;gap:4px;flex-shrink:0}.calendarNavGroup{display:flex;gap:6px}.calendarNavBtn{border:1px solid #d1d5db;background:#fff;border-radius:8px;padding:6px 10px;cursor:pointer;color:#111827;font-size:13px;font-weight:600}.calendarNavBtn:hover{background:#f9fafb}.calendarTitle{margin:0;font-size:16px;font-weight:800;color:#111827;white-space:nowrap;flex:1;text-align:center}.scheduleManageCard{padding:12px}.scheduleManageHeader{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:8px}.scheduleManageDesc{margin:4px 0 0;font-size:12px}.scheduleManageActions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.scheduleViewBtn{height:36px;min-width:36px;padding:0 12px;border-radius:10px;border:1px solid var(--color-border);background:var(--color-surface);color:#4b5563;font-size:13px;font-weight:700;cursor:pointer}.scheduleViewBtn.isActive{border-color:#e0e7ff;background:var(--color-primary);color:#fff}.scheduleManageStats{display:flex;gap:6px;flex-wrap:wrap;margin:0 0 8px}.scheduleStat{height:22px;padding:0 8px;border-radius:999px;border:1px solid var(--color-border);background:#f8fafc;color:#4b5563;font-size:11px;font-weight:700;display:inline-flex;align-items:center}.scheduleLoading{padding:8px 0;margin:0;color:var(--color-text-subtle)}.scheduleCalendarRoot{display:flex;flex-direction:column;gap:8px}.scheduleCalLayout{display:flex;gap:12px;align-items:flex-start}.scheduleCalSidebar{width:168px;flex-shrink:0;display:flex;flex-direction:column;gap:10px}.scheduleCalMain{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px}.miniCal{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:8px 6px}.miniCalHeader{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px}.miniCalNavBtn{width:22px;height:22px;border:none;background:none;cursor:pointer;border-radius:4px;font-size:10px;color:#6b7280;display:flex;align-items:center;justify-content:center}.miniCalNavBtn:hover{background:#f3f4f6}.miniCalMonthLabel{font-size:12px;font-weight:700;color:#111827}.miniCalGrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px}.miniCalDayLabel{text-align:center;font-size:10px;font-weight:700;color:#9ca3af;padding:3px 0}.miniCalDay{width:100%;aspect-ratio:1;border:none;background:none;cursor:pointer;border-radius:999px;font-size:11px;color:#374151;display:flex;align-items:center;justify-content:center;padding:0}.miniCalDay:hover{background:#f3f4f6}.miniCalDay.isToday{background:#fef3c7;color:#92400e;font-weight:700}.miniCalDay.isSelected{background:#4f46e5;color:#fff!important;font-weight:700}.scheduleCalStaffFilter{background:#fff;border:1px solid #e5e7eb;border-radius:10px;padding:10px 8px}.scheduleCalStaffFilterTitle{margin:0 0 6px;font-size:10px;font-weight:700;color:#9ca3af;letter-spacing:.06em;text-transform:uppercase}.scheduleCalStaffItem{display:flex;align-items:center;gap:7px;height:26px;cursor:pointer;font-size:12px;font-weight:600;color:#111827;padding:0 4px;border-radius:6px}.scheduleCalStaffItem:hover{background:#f9fafb}.scheduleCalStaffItem input[type=checkbox]{width:14px;height:14px;cursor:pointer;flex-shrink:0;accent-color:#4f46e5}.scheduleCalStaffDot{width:10px;height:10px;border-radius:999px;flex-shrink:0}.scheduleWeekTable{display:flex;flex-direction:column;border:1px solid var(--color-border);border-radius:12px;overflow:hidden;background:#fff}.scheduleWeekHeader{display:grid;flex-shrink:0;border-bottom:1px solid var(--color-border);overflow-y:scroll;scrollbar-color:transparent transparent}.scheduleWeekHeader::-webkit-scrollbar{background:transparent}.scheduleWeekBody{overflow-y:scroll;max-height:560px;scrollbar-gutter:stable}.scheduleWeekBodyInner{display:grid}.scheduleWeekCorner{background:#f8fafc;border-right:1px solid #e5e7eb}.scheduleWeekDayHeader{display:flex;flex-direction:column;align-items:center;gap:2px;padding:6px 4px;border-right:1px solid #eef2f7;background:#f8fafc}.scheduleWeekDayHeader.isToday{background:#fffbe6}.scheduleWeekDayName{font-size:11px;font-weight:700;color:#6b7280}.scheduleWeekDayNum{width:24px;height:24px;display:flex;align-items:center;justify-content:center;border-radius:999px;font-size:13px;font-weight:700;color:#374151}.scheduleWeekDayNum.isToday{background:#4f46e5;color:#fff}.scheduleWeekAllDayLabel{height:28px;display:flex;align-items:center;justify-content:center;font-size:10px;font-weight:700;color:#6b7280;border-right:1px solid #e5e7eb;background:#fcfcfd}.scheduleWeekAllDayCell{height:28px;border-right:1px solid #eef2f7;background:#fcfcfd;display:flex;align-items:center;gap:2px;padding:0 4px;overflow:hidden}.scheduleWeekAllDayChip{height:20px;padding:0 6px;border-radius:4px;border:1px solid transparent;font-size:10px;font-weight:700;cursor:pointer;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex-shrink:0;max-width:100%}.scheduleWeekTimeAxis{position:relative;border-right:1px solid #e5e7eb;background:#fcfcfd}.scheduleWeekTimeLabel{box-sizing:border-box;display:flex;align-items:flex-start;justify-content:center;padding-top:3px;font-size:10px;font-weight:600;color:#9ca3af;border-bottom:1px solid #e5e7eb}.scheduleWeekTimeLabel.isOffHours{background:#f3f4f6;color:#d1d5db}.scheduleWeekDayCol{position:relative;border-right:1px solid #eef2f7}.scheduleWeekDayCol.isToday{background:#fef3c766}.scheduleWeekGridLines{position:absolute;inset:0;z-index:1}.scheduleWeekGridRow{box-sizing:border-box;border-bottom:1px solid #e5e7eb}.scheduleWeekGridRow.isOffHours{background:#00000006}.scheduleOffHoursOverlay{position:absolute;left:0;right:0;background:#6b72801f;pointer-events:none;z-index:1}.scheduleNewDot{display:inline-block;width:7px;height:7px;min-width:7px;border-radius:999px;background:#14b8a6;flex-shrink:0}.scheduleNewBadge{display:inline-flex;align-items:center;font-size:10px;font-weight:800;line-height:1;padding:2px 5px;border-radius:999px;background:#ecfeff;border:1px solid #a5f3fc;color:#155e75;white-space:nowrap;flex-shrink:0}.eventPreviewCard{background:#fff;border-radius:14px;box-shadow:0 8px 32px #00000024;width:320px;max-width:90vw;overflow:hidden}.eventPreviewHeader{display:flex;align-items:flex-start;justify-content:space-between;gap:8px;padding:16px 16px 12px;border-bottom:1px solid var(--color-border)}.eventPreviewTitle{font-size:15px;font-weight:800;color:var(--color-text-main);display:flex;align-items:center;gap:6px;flex:1;line-height:1.4;flex-wrap:wrap}.eventPreviewClose{border:none;background:none;cursor:pointer;font-size:18px;color:var(--color-text-subtle);line-height:1;padding:2px 4px;flex-shrink:0;border-radius:4px}.eventPreviewClose:hover{color:var(--color-text-main);background:var(--color-bg-app)}.eventPreviewBody{padding:14px 16px;display:flex;flex-direction:column;gap:8px}.eventPreviewRow{display:flex;align-items:baseline;gap:10px;font-size:13px;color:var(--color-text-main)}.eventPreviewLabel{font-size:11px;font-weight:700;color:var(--color-text-subtle);min-width:28px;flex-shrink:0}.eventPreviewFooter{display:flex;justify-content:flex-end;gap:8px;padding:12px 16px;border-top:1px solid var(--color-border)}.scheduleWeekEventChip{position:absolute;z-index:4;padding:2px 5px;border-radius:6px;border:1px solid transparent;font-size:11px;text-align:left;overflow:hidden;cursor:pointer;display:flex;flex-direction:column;gap:1px;line-height:1.3}.scheduleWeekEventChip:focus{outline:2px solid #111827;outline-offset:1px}.scheduleWeekEventInner{display:flex;align-items:center;gap:4px;overflow:hidden;width:100%}.scheduleWeekEventTime{font-size:10px;font-weight:700;opacity:.75}.scheduleWeekEventTitle{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scheduleDayHeaderDot{width:8px;height:8px;border-radius:999px;flex-shrink:0}.scheduleLegend{display:flex;gap:6px}.scheduleLegendItem{height:20px;padding:0 8px;border-radius:999px;font-size:11px;font-weight:700;display:inline-flex;align-items:center;border:1px solid transparent}.scheduleLegendItem.isReservation{background:#e0e7ff;border-color:#c7d2fe;color:#3730a3}.scheduleLegendItem.isSchedule{background:#fff7ed;border-color:#fed7aa;color:#9a3412}.scheduleLegendItem.isNew{background:#ecfeff;border-color:#a5f3fc;color:#155e75}.scheduleCalendarFrame{border:1px solid var(--color-border);border-radius:12px;padding:8px;background:#fff}.scheduleCalendarFrame .fc{--fc-page-bg-color: #ffffff;--fc-border-color: #e5e7eb;--fc-neutral-bg-color: #f8fafc;--fc-today-bg-color: #fef3c7;--fc-now-indicator-color: #ef4444;--fc-button-bg-color: #ffffff;--fc-button-border-color: #d1d5db;--fc-button-text-color: #111827;--fc-button-hover-bg-color: #f9fafb;--fc-button-hover-border-color: #d1d5db;--fc-button-active-bg-color: #eef2ff;--fc-button-active-border-color: #c7d2fe}.scheduleCalendarFrame .fc .fc-scrollgrid{border-radius:10px;overflow:hidden}.scheduleCalendarFrame .fc .fc-col-header-cell{background:#f8fafc}.scheduleCalendarFrame .fc .fc-col-header-cell-cushion{padding:8px 6px;font-size:12px;font-weight:700;color:#475569}.scheduleCalendarFrame .fc .fc-timegrid-axis-cushion,.scheduleCalendarFrame .fc .fc-timegrid-slot-label-cushion{font-size:11px;font-weight:600;color:#6b7280}.scheduleCalendarFrame .fc .fc-timegrid-slot{height:44px}.scheduleCalendarFrame .fc .fc-daygrid-day-number{font-size:12px;font-weight:700;color:#374151;padding:6px 8px}.scheduleCalendarFrame tbody tr:hover{background:transparent}.scheduleCalendarFrame .fc .fc-daygrid-day:hover{background:#f3f4f6}.scheduleCalendarFrame .fc .fc-daygrid-day.fc-day-today,.scheduleCalendarFrame .fc .fc-daygrid-day.fc-day-today:hover{background:#fffbe6}.scheduleCalendarFrame .fc .fc-timegrid-col.fc-day-today{background:#fff9db}.scheduleCalendarFrame .fc .fc-timegrid-now-indicator-line{border-top-width:2px}.scheduleCalendarFrame .fc .fc-daygrid-more-link{font-size:11px;font-weight:700;color:#4338ca;padding:1px 4px;border-radius:6px;background:#eef2ff}.scheduleDayTable{display:flex;flex-direction:column;border:1px solid var(--color-border);border-radius:12px;overflow:hidden;background:#fff}.scheduleDayHeader{display:grid;flex-shrink:0;border-bottom:1px solid #e5e7eb;overflow-y:scroll;scrollbar-color:transparent transparent}.scheduleDayHeader::-webkit-scrollbar{background:transparent}.scheduleDayBody{overflow-y:scroll;max-height:560px;scrollbar-gutter:stable}.scheduleDayBodyInner{display:grid}.scheduleDayHeaderTime,.scheduleDayHeaderStaff{height:32px;display:flex;align-items:center;justify-content:space-between;padding:0 8px;background:#f8fafc}.scheduleDayHeaderTime{justify-content:center;font-size:11px;font-weight:700;color:#6b7280;border-right:1px solid #e5e7eb}.scheduleDayHeaderStaff{border-right:1px solid #eef2f7}.scheduleStaffName{font-size:13px;font-weight:600;line-height:1.2;color:#111827}.scheduleStaffCount{font-size:11px;font-weight:600;line-height:1;color:#6b7280}.scheduleDayTimeCol{display:flex;flex-direction:column;border-right:1px solid #e5e7eb;background:#fcfcfd}.scheduleDayAllDayLabel{box-sizing:border-box;display:flex;align-items:center;justify-content:center;font-size:11px;color:#6b7280;font-weight:700;border-right:1px solid #e5e7eb;background:#fcfcfd}.scheduleDayTimeGrid{height:var(--schedule-day-grid-height);display:grid;grid-template-rows:repeat(24,minmax(0,1fr));border-right:1px solid #e5e7eb;background:#fcfcfd}.scheduleDayTimeCell{box-sizing:border-box;font-size:11px;color:#6b7280;display:flex;align-items:center;justify-content:center;padding-top:0;border-bottom:1px solid #e5e7eb}.scheduleDayTimeCell.isOffHours{background:#f3f4f6;color:#d1d5db}.scheduleDayGridRow.isOffHours{background:#00000006}.scheduleDayStaffCol{position:relative;border-right:1px solid #eef2f7}.scheduleDayAllDayCell{box-sizing:border-box;width:100%;border:0;border-bottom:1px solid #e5e7eb;background:#fcfcfd;text-align:left;padding:4px 6px;cursor:pointer}.scheduleDayAllDayCell:hover{background:#f8fafc}.scheduleDayAllDayItems{display:flex;gap:4px;flex-wrap:wrap}.scheduleAllDayChip{max-width:100%;height:20px;padding:0 8px;border-radius:999px;border:1px solid transparent;font-size:11px;font-weight:700;display:inline-flex;align-items:center;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scheduleAllDayChip.isReservation{background:#e0e7ff;color:#3730a3;border-color:#c7d2fe}.scheduleAllDayChip.isSchedule{background:#fff7ed;color:#9a3412;border-color:#fed7aa}.scheduleAllDayChip.isNew{background:#ecfeff;color:#155e75;border-color:#a5f3fc}.scheduleDayTimedArea{position:relative;height:var(--schedule-day-grid-height);border-right:1px solid #eef2f7}.scheduleDayGridLines{position:absolute;inset:0;z-index:1;display:grid;grid-template-rows:repeat(24,minmax(0,1fr))}.scheduleDayGridRow{box-sizing:border-box;border-bottom:1px solid #e5e7eb}.scheduleNowLine{position:absolute;left:0;right:0;height:0;border-top:2px solid #ef4444;z-index:3;pointer-events:none}.scheduleNowDot{position:absolute;left:-4px;top:-4px;width:8px;height:8px;border-radius:999px;background:#ef4444}.scheduleDayClickLayer{position:absolute;inset:0;z-index:2;border:0;background:transparent;cursor:pointer}.scheduleDayDragOverlay{position:absolute;left:4px;right:4px;z-index:5;pointer-events:none;background:#2563eb1f;border:2px solid rgba(37,99,235,.35);border-radius:6px}.scheduleDayEvent{position:absolute;left:4px;right:4px;z-index:4;text-align:left;padding:4px 6px;cursor:pointer;border-radius:6px;border:1px solid transparent;overflow:hidden;font-size:11px;line-height:1.25}.scheduleDayEvent:focus{outline:2px solid #111827;outline-offset:1px}.scheduleEventHead{display:flex;align-items:center;justify-content:space-between;gap:4px}.scheduleEventTime{opacity:.85;font-weight:700}.scheduleEventNew{font-size:10px;font-weight:800;line-height:1;padding:1px 5px;border-radius:999px;background:#ecfeff47;border:1px solid rgba(165,243,252,.8)}.scheduleEventTitle{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.scheduleDaySummary{display:flex;gap:4px;flex-wrap:wrap}.scheduleDaySummaryItem{display:inline-flex;align-items:center;gap:4px;height:18px;padding:0 6px;border-radius:999px;border:1px solid transparent;font-size:10px;font-weight:700;line-height:1}.scheduleDaySummaryItem.isReservation{background:#eef2ff;border-color:#c7d2fe;color:#3730a3}.scheduleDaySummaryItem.isSchedule{background:#fff7ed;border-color:#fed7aa;color:#9a3412}.scheduleDaySummaryItem.isNew{background:#ecfeff;border-color:#a5f3fc;color:#155e75}.scheduleMonthDayCell{display:flex;flex-direction:column;align-items:flex-start;gap:4px}.scheduleNewFlagCheck{display:flex;align-items:center;gap:8px;min-height:36px;padding:6px 10px;border:1px solid var(--color-border-input);border-radius:10px;background:#f8fafc;font-size:13px}.scheduleNewFlagCheck input[type=checkbox]{width:16px;height:16px;flex-shrink:0}.scheduleForm .formGrid,.scheduleCustomerGrid{grid-template-columns:repeat(2,minmax(0,1fr))}.scheduleCustomerGrid{display:grid;gap:14px;margin-top:16px}.scheduleCustomerIdOnly,.scheduleCustomerGrid .formRowFull{grid-column:1 / -1}.scheduleSearchRow{display:flex;gap:8px;min-width:0}.scheduleSearchRow input{min-width:0;flex:1}.scheduleSearchRow .dashBtn{flex-shrink:0;white-space:nowrap}.scheduleSearchMessage{margin-top:6px}.scheduleCandidateBox{display:grid;gap:8px;margin-top:8px}.scheduleCandidateBox select{width:100%;height:var(--input-height);padding:0 12px;border-radius:var(--radius-md);border:1px solid var(--color-border-input);font-size:14px}.scheduleCandidateBox .dashBtn{justify-self:start}.scheduleDateTimeGrid .datetimepickerRoot{gap:6px}.scheduleDateTimeGrid .datepickerInputRow:not(.datepickerTimeRow){row-gap:6px}.scheduleDateTimeGrid .formRow .datepickerYearSel{width:82px;padding-left:8px;padding-right:22px}.scheduleDateTimeGrid .formRow .datepickerMonthSel,.scheduleDateTimeGrid .formRow .datepickerDaySel{width:54px;padding-left:8px;padding-right:20px}.scheduleDateTimeGrid .formRow .datepickerBtn{margin-left:0}@media(max-width:768px){.scheduleCustomerGrid,.scheduleForm .formGrid{grid-template-columns:1fr}.scheduleDateTimeGrid .datepickerInputRow:not(.datepickerTimeRow){display:grid;grid-template-columns:82px auto 54px auto 54px auto var(--input-height);align-items:center;max-width:100%}.scheduleDateTimeGrid .datepickerTimeRow{width:max-content;max-width:100%}.scheduleCalLayout{flex-direction:column;align-items:stretch}.scheduleCalSidebar{width:100%;flex-direction:row;flex-wrap:wrap}.miniCal{flex:1;min-width:200px}.scheduleCalStaffFilter{flex:1;min-width:160px}.scheduleManageHeader{flex-direction:column;align-items:stretch}.scheduleDayHeaderStaff{padding:0 6px}.scheduleDayEvent{left:2px;right:2px}.calendarToolbar{flex-wrap:nowrap;gap:6px}.miniCal,.scheduleHeaderCreateBtn{display:none}}.scheduleFab{display:none;position:fixed;right:20px;bottom:24px;width:56px;height:56px;border-radius:50%;border:none;background:var(--color-primary);color:#fff;font-size:28px;font-weight:300;line-height:1;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 4px 14px #2563eb73;z-index:100;transition:background .15s,box-shadow .15s,transform .15s}.scheduleFab:hover{background:var(--color-primary-hover);box-shadow:0 6px 20px #2563eb8c;transform:scale(1.06)}.scheduleFab:active{transform:scale(.95)}@media(max-width:768px){.scheduleFab{display:flex}}.customSelect{position:relative}.customSelectBtn{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 12px;border-radius:10px;border:1px solid var(--color-border);background:var(--color-surface);color:#4b5563;font-size:13px;font-weight:700;cursor:pointer;white-space:nowrap}.customSelectBtn:hover{background:var(--color-bg)}.customSelectArrow{font-size:10px;opacity:.6}.customSelectMenu{position:absolute;left:0;top:calc(100% + 4px);background:#fff;border:1px solid var(--color-border);border-radius:10px;box-shadow:0 4px 16px #0000001a;z-index:200;overflow:hidden;min-width:80px}.customSelectItem{display:block;width:100%;padding:8px 14px;border:none;background:none;text-align:left;font-size:13px;font-weight:600;color:#374151;cursor:pointer;white-space:nowrap}.customSelectItem:hover{background:var(--color-bg)}.customSelectItem.isActive{background:var(--color-primary-weak);color:var(--color-primary)}.modalCard{width:min(680px,100%);max-height:90vh;overflow-y:auto;border-radius:var(--radius-lg);border:1px solid var(--color-border);padding:0;background:var(--color-surface);box-shadow:0 20px 60px #0000002e,0 4px 12px #00000014}.modalCard .pageCard{border:none;box-shadow:none;border-radius:0;background:transparent}.dashboardActions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.dashBtnDanger{height:var(--btn-height);padding:0 14px;border-radius:var(--radius-md);font-size:13px;font-weight:700;display:inline-flex;align-items:center;justify-content:center;gap:6px;cursor:pointer;white-space:nowrap;border:none;background:var(--color-danger);color:#fff;box-shadow:0 1px 3px #dc262633;transition:filter .15s ease}.dashBtnDanger:hover:not(:disabled){filter:brightness(.92)}.dashBtnDanger:disabled{opacity:.45;cursor:not-allowed}.dashBtnPrimary{background:var(--color-primary);color:#fff;border-color:var(--color-primary);box-shadow:0 1px 3px #4f46e533}.dashBtnPrimary:hover:not(:disabled){background:var(--color-primary-hover);border-color:var(--color-primary-hover);box-shadow:0 2px 6px #4f46e54d}.dashBtnPrimary:disabled{opacity:.45;cursor:not-allowed}.formGrid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:14px}@media(max-width:600px){.formGrid{grid-template-columns:1fr}}.formInlineGroup{display:flex;align-items:center;gap:6px;flex-wrap:nowrap}.formInlineSep{color:var(--color-text-subtle);font-size:14px;flex-shrink:0;-webkit-user-select:none;user-select:none}.fldW60,.formRow .fldW60{width:60px;flex-shrink:0}.fldW70,.formRow .fldW70{width:70px;flex-shrink:0}.fldW80,.formRow .fldW80{width:80px;flex-shrink:0}.analyticsTabs{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 12px}.kartePill{height:28px;padding:0 12px;border-radius:999px;font-size:12px;font-weight:800;background:#e3f2fd;color:#1e3a8a;border:1px solid #90caf9;cursor:pointer;transition:background .12s,color .12s}.kartePill.isActive{background:#1e88e5;color:#fff;border-color:#1565c0}.kartePill:active{transform:scale(.96)}.kartePill:disabled{opacity:.45;cursor:not-allowed}.calendarTitleRow{display:flex;align-items:center;justify-content:center;padding:4px 0 2px}.calendarCtrlRow{display:flex;align-items:center;gap:6px;padding:4px 0 8px;flex-wrap:nowrap}.calendarCtrlRow .calendarNavBtn,.calendarCtrlRow .navIconBtn{flex-shrink:0}.scheduleToolbarStaffSelect{flex:1;min-width:0;height:32px;border:1px solid #d1d5db;border-radius:8px;background:#fff;font-size:13px;font-weight:600;color:#111827;padding:0 8px;cursor:pointer;appearance:auto}@media(max-width:768px){.scheduleCalSidebar{display:none}}.conflictWarnBackdrop{position:fixed;inset:0;background:#0f142880;z-index:1100;display:flex;align-items:center;justify-content:center;padding:16px}.conflictWarnCard{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);padding:24px;width:min(400px,100%);box-shadow:0 20px 60px #0003}.conflictWarnTitle{font-size:16px;font-weight:800;color:var(--color-warning);margin:0 0 10px}.conflictWarnBody{font-size:13px;color:var(--color-text-main);line-height:1.7;margin:0 0 20px}.conflictWarnActions{display:flex;gap:8px;justify-content:flex-end}.allDayBadge{display:inline-flex;align-items:center;height:var(--input-height);padding:0 12px;border:1px solid var(--color-border-input);border-radius:var(--radius-md);background:var(--color-bg);color:var(--color-text-subtle);font-size:13px;font-weight:600}.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}.logsPage{display:flex;flex-direction:column;gap:14px;height:100%;overflow-y:auto}.logsHeader{display:flex;flex-direction:column;gap:10px}.logsTitle{font-size:16px;font-weight:700;margin:0}.logsControls{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.logsDateLabel{font-size:13px;font-weight:600}.logsDateSelect{padding:6px 10px;border:1px solid var(--color-border-strong);border-radius:8px;font-size:13px;background:var(--color-surface);color:var(--color-text-main)}.logsCount{font-size:12px;color:var(--color-text-subtle)}.logsDlBtn{padding:4px 12px;border:1px solid var(--color-border);border-radius:6px;background:var(--color-surface);font-size:12px;cursor:pointer;color:var(--color-text-main)}.logsDlBtn:hover:not(:disabled){background:var(--color-bg)}.logsDlBtn:disabled{opacity:.4;cursor:not-allowed}.logsDeleteDateBtn{padding:4px 12px;border:1px solid #fca5a5;border-radius:6px;background:var(--color-surface);font-size:12px;cursor:pointer;color:var(--color-danger);margin-left:auto}.logsDeleteDateBtn:hover:not(:disabled){background:#fef2f2}.logsDeleteDateBtn:disabled{opacity:.4;cursor:not-allowed}.logsViewToggle{display:flex;border:1px solid var(--color-border);border-radius:6px;overflow:hidden}.logsViewBtn{padding:4px 12px;border:none;background:var(--color-surface);font-size:12px;cursor:pointer;color:var(--color-text-subtle)}.logsViewBtn:first-child{border-right:1px solid var(--color-border)}.logsViewBtn.active{background:var(--color-primary);color:#fff;font-weight:600}.logsTextWrap{flex:1;overflow:auto;background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px}.logsTextPre{margin:0;padding:16px;font-family:Courier New,Consolas,monospace;font-size:13px;line-height:1.7;white-space:pre-wrap;word-break:break-word;color:var(--color-text-main)}.logsError{color:var(--color-danger, #dc2626);font-size:14px}.logsEmpty{color:var(--color-text-subtle);font-size:14px}.logsList{display:flex;flex-direction:column;gap:10px}.logCard{background:var(--color-surface);border:1px solid var(--color-border);border-radius:10px;padding:12px 14px;display:flex;flex-direction:column;gap:6px}.logCardMeta{display:flex;align-items:center;font-size:11px;color:var(--color-text-subtle);flex-wrap:wrap;gap:4px}.logCardMeta>span:last-of-type{margin-right:auto}.logDeleteEntryBtn{padding:2px 8px;border:1px solid #fca5a5;border-radius:4px;background:none;font-size:11px;color:var(--color-danger);cursor:pointer;flex-shrink:0}.logDeleteEntryBtn:hover{background:#fef2f2}.logCardRow{display:flex;gap:8px;align-items:flex-start}.logLabel{font-size:11px;font-weight:700;padding:2px 7px;border-radius:10px;flex-shrink:0;margin-top:1px}.logLabel.user{background:#e0e7ff;color:#3730a3}.logLabel.ai{background:#d1fae5;color:#065f46}.logText{font-size:13px;line-height:1.6;white-space:pre-wrap;word-break:break-word}.logOps{display:flex;flex-wrap:wrap;gap:4px;margin-top:2px}.logOpBadge{font-size:11px;font-weight:600;padding:2px 8px;border-radius:10px}.logOpBadge.ok{background:#d1fae5;color:#065f46}.logOpBadge.err{background:#fee2e2;color:#991b1b}.logCardDuration{font-size:11px;color:var(--color-text-subtle)}.logsPager{display:flex;justify-content:center;align-items:center;gap:10px;padding-bottom:16px}.logsPagerBtn{padding:6px 16px;border:1px solid var(--color-border);border-radius:8px;background:var(--color-surface);font-size:13px;cursor:pointer}.logsPagerBtn:disabled{opacity:.4;cursor:not-allowed}.logsPagerBtn:not(:disabled):hover{background:var(--color-bg)}.logsPagerInfo{font-size:13px;color:var(--color-text-subtle)}@media(max-width:480px){.logsControls{gap:6px}.logsDateSelect{font-size:12px;padding:5px 8px}.logsDeleteDateBtn{margin-left:0}}: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}.sidebarItemSoon{display:inline-flex;align-items:center;font-size:10px;font-weight:700;padding:1px 6px;border-radius:999px;background:#f3f4f6;color:#9ca3af;border:1px solid #e5e7eb;margin-left:6px;flex-shrink:0;letter-spacing:.01em}.sidebarItem.isSoon{opacity:.55}.sidebarItem.isSoon.isActive{opacity:1}.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[readonly]{background:var(--color-bg);color:var(--color-text-subtle);cursor:default}.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}.navIconBtn{border:none;background:#fff;border-radius:50%;width:32px;height:32px;padding:0;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;font-size:18px;font-weight:600;color:#374151;flex-shrink:0;line-height:1}.navIconBtn:hover{background:#e5e7eb}@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}}@media(max-width:480px){.appContent{padding:10px}.appTopbarStaff{max-width:80px;overflow:hidden;text-overflow:ellipsis}.pageCard{padding:16px}}.cardHeaderRow{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px;flex-wrap:wrap}.cardTitle{font-size:14px;font-weight:700;color:var(--color-text-main);margin:0 0 16px}.dashBtnPrimary{background:var(--color-primary);color:#fff;border-color:var(--color-primary)}.dashBtnPrimary:not(:disabled):hover{background:var(--color-primary-hover);border-color:var(--color-primary-hover)}.dashBtnDanger{background:var(--color-danger);color:#fff;border:none;box-shadow:0 1px 3px #dc262633}.dashBtnDanger:not(:disabled):hover{background:#c81e1e;box-shadow:0 2px 6px #dc26264d}.dashBtnDanger:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.badgeWarn{background:var(--color-warning-soft);color:#92400e;border-color:var(--color-warning-border)}.badgeRed{background:var(--color-danger-soft);color:#991b1b;border-color:var(--color-danger-border)}.badgeGreen{background:var(--color-success-soft);color:#065f46;border-color:var(--color-success-border)}.badgeGray{background:#f3f4f6;color:#4b5563;border-color:#d1d5db}.tableWrap{width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border-radius:var(--radius-md);border:1px solid var(--color-border)}.dataTable{width:100%;border-collapse:collapse;font-size:13px}.dataTable thead th{padding:10px 12px;text-align:left;font-size:12px;font-weight:700;color:var(--color-text-subtle);background:var(--color-bg);border-bottom:1px solid var(--color-border);white-space:nowrap}.dataTable tbody td{padding:10px 12px;text-align:left;vertical-align:middle;border-bottom:1px solid var(--color-border);color:var(--color-text-main)}.dataTable tbody tr:last-child td{border-bottom:none}.dataTable tbody tr:hover{background:#f9fafb}.rowClickable{cursor:pointer}.rowClickable:hover{background:var(--color-primary-soft)!important}.formStack{display:flex;flex-direction:column;gap:12px;margin-top:14px}.emptyStateIcon{font-size:32px;opacity:.4;margin-bottom:4px}.modalBackdrop{position:fixed;inset:0;background:#0f142866;z-index:1000;display:flex;align-items:center;justify-content:center;padding:16px;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}.modalCard{width:min(680px,100%);max-height:90vh;overflow-y:auto;border-radius:var(--radius-lg);border:1px solid var(--color-border);padding:24px;background:var(--color-surface);box-shadow:0 20px 60px #0000002e,0 4px 12px #00000014}.modalCard .cardTitle{font-size:16px;margin-bottom:16px}
