.entry-dialog.appointment-editor-dialog{background:var(--paper);width:540px;padding:24px 0 0;overflow:hidden}.entry-dialog.appointment-editor-dialog[open]{flex-direction:column;display:flex}.calendar-page .appointment-editor-dialog>.dialog-heading{background:var(--paper);flex-shrink:0;margin:0;padding:0 24px 20px;position:static}.appointment-editor-dialog .dialog-heading h2{margin:0;font-size:21px;line-height:1.5}.appointment-editor-dialog .dialog-heading p{margin-top:4px;font-size:13px;line-height:1.6}.appointment-editor-dialog .dialog-heading .icon-button{flex-shrink:0;width:44px;height:44px}.appointment-editor-dialog>.loading-rows,.appointment-editor-dialog>.character-registration{padding:0 24px 24px;overflow:auto}.appointment-form.entry-form{flex-direction:column;gap:0;min-height:0;margin:0;display:flex;overflow:hidden}.appointment-form-scroll{overscroll-behavior:contain;scrollbar-width:thin;min-height:0;padding:4px 24px 20px;scroll-padding-block:16px;overflow:auto}.appointment-form .entry-fields{flex-direction:column;gap:22px;display:flex}.appointment-form .entry-fields>label,.appointment-form .form-columns>label,.appointment-form .field-label,.appointment-form legend{font-size:13px;font-weight:650}.appointment-boss-fields{gap:14px;display:grid}.appointment-form .boss-select-trigger{border-radius:12px;min-height:60px}.appointment-form .difficulty-options{margin:0;padding:0}.appointment-form .difficulty-options legend{color:var(--muted);margin-bottom:10px;font-size:12px}.appointment-form .difficulty-options button{border-radius:10px;min-width:84px;min-height:46px}.appointment-form .form-columns input{border-radius:10px;min-height:48px;font-size:15px}.appointment-form .check-label{background:var(--surface-subtle);border:1px solid var(--line);cursor:pointer;border-radius:12px;gap:12px;padding:12px 14px}.appointment-form .check-label input{width:20px;height:20px}.appointment-form .check-label>span{gap:2px;font-size:13px;display:grid}.appointment-form .check-label small{color:var(--muted);font-size:12px;font-weight:400}.appointment-form .appointment-extras{padding-top:0}.appointment-form .appointment-extras summary{min-height:48px;color:var(--ink);justify-content:space-between;align-items:center;font-size:13px;list-style:none;display:flex}.appointment-form .appointment-extras summary::-webkit-details-marker{display:none}.appointment-form .appointment-extras summary small{color:var(--muted);margin-left:6px;font-size:12px;font-weight:400}.appointment-form .appointment-extras[open] summary>svg{rotate:180deg}.appointment-form .appointment-extras>div{gap:16px}.appointment-form .appointment-extras label{font-size:13px}.appointment-form-footer{border-top:1px solid var(--line);background:var(--paper);flex-shrink:0;padding:14px 24px 20px}.appointment-save-summary{flex-wrap:wrap;align-items:baseline;gap:4px 8px;margin:0 0 12px;font-size:13px;line-height:1.5;display:flex}.appointment-save-summary strong{font-variant-numeric:tabular-nums;font-size:17px}.appointment-save-summary>span{color:var(--muted);margin-left:auto;font-size:11px}.appointment-save-actions{gap:10px;display:flex}.appointment-save-actions>.primary{border-radius:12px;flex:1;min-height:50px;font-size:15px}.appointment-save-actions>.remove-button{border:1px solid var(--line);color:var(--danger);border-radius:12px;order:-1;justify-content:center;align-items:center;min-height:50px;margin:0;padding:12px 16px;font-size:14px;font-weight:650;display:flex}.appointment-form-footer .form-error{max-height:96px;margin:0 0 12px;font-size:13px;line-height:1.7;overflow:auto}@media (max-width:899px),(hover:none) and (pointer:coarse) and (max-height:599px){.calendar-page .entry-dialog.appointment-editor-dialog{width:100%;max-height:calc(var(--visible-height,100dvh) - 12px);border-radius:22px 22px 0 0;padding:0}.calendar-page .appointment-editor-dialog.draggable-sheet>.dialog-heading{margin:0;padding:0 20px 16px;position:static;top:auto}.appointment-editor-dialog .dialog-heading h2{font-size:20px}.appointment-form-scroll{padding:4px 20px 20px}.appointment-form .entry-fields{gap:20px}.appointment-form-footer{padding:12px 20px max(16px,env(safe-area-inset-bottom))}.appointment-save-summary{margin-bottom:10px}}@media (max-height:499px){.appointment-editor-dialog .dialog-heading p,.appointment-save-summary{display:none}.calendar-page .appointment-editor-dialog.draggable-sheet>.dialog-heading{padding-bottom:8px}.appointment-form-footer{padding-top:8px;padding-bottom:8px}}
.schedule-overlap-notice{background:var(--warning-bg);color:var(--warning);border-radius:16px;align-items:center;gap:12px;margin:0 0 18px;padding:16px 18px;display:flex}.schedule-overlap-notice>div{flex:1;min-width:0}.schedule-overlap-notice strong{font-size:14px;line-height:1.5;display:block}.schedule-overlap-notice p{margin-top:4px;font-size:12px;line-height:1.6}.schedule-overlap-notice button,.schedule-overlap-notice a{background:var(--paper);min-height:44px;color:var(--warning);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;padding:10px 14px;font-size:13px;font-weight:700;display:flex}.page-scroll>.schedule-overlap-notice{margin:20px 28px 0}.entry-dialog.schedule-overlap-dialog{width:660px;max-width:calc(100vw - 32px);padding:24px}.schedule-overlap-dialog>.dialog-heading{align-items:center;margin-bottom:0}.overlap-review-body{padding:18px 0 0}.overlap-month{justify-content:space-between;align-items:center;gap:12px;margin-bottom:16px;display:flex}.overlap-month strong{font-size:17px}.overlap-help{color:var(--muted);word-break:keep-all;margin-bottom:24px;font-size:14px;line-height:1.65}.overlap-group{margin-bottom:24px}.overlap-group h3{flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 12px;font-size:14px;line-height:1.5;display:flex}.overlap-group time{color:var(--ink);font-size:20px;font-weight:800}.overlap-group h3 small{color:var(--muted);margin-left:auto;font-size:12px;font-weight:500}.overlap-group ul{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.overlap-event{background:var(--surface-muted);border-radius:16px;min-width:0;padding:16px}.overlap-event-heading{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.overlap-event .boss-label{gap:7px}.overlap-event .boss-label-name{font-size:14px}.overlap-repeat{color:var(--accent);background:var(--soft);border-radius:6px;padding:3px 6px;font-size:11px}.overlap-character{color:var(--muted);align-items:center;gap:6px;margin-top:10px;font-size:13px;display:flex}.overlap-character .character-portrait{background:0 0;flex-shrink:0;width:32px;height:36px}.overlap-event-title{overflow-wrap:anywhere;margin-top:8px;font-size:14px;line-height:1.6;display:block}.overlap-notes{margin:8px 0 0;font-size:12px;line-height:1.6}.overlap-notes>div{gap:8px;margin-top:4px;display:flex}.overlap-notes dt{color:var(--muted);flex-shrink:0}.overlap-notes dd{overflow-wrap:anywhere;min-width:0;margin:0}.overlap-event-actions{align-items:center;gap:8px;margin-top:14px;display:flex}.overlap-event-actions button{flex:1;min-height:44px;padding:8px;font-size:13px}.overlap-event-actions .text-button{color:var(--danger)}.overlap-empty{text-align:center;color:var(--muted);justify-items:center;gap:12px;padding:32px 0;font-size:13px;line-height:1.6;display:grid}.overlap-empty strong{color:var(--ink);font-size:16px}.appointment-overlap-hint{background:var(--warning-bg);color:var(--warning);border-radius:12px;padding:12px 14px;font-size:13px;line-height:1.7}.appointment-overlap-hint ul{gap:3px;margin-top:6px;display:grid}.appointment-overlap-hint li{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.appointment-overlap-hint .boss-label-name{font-size:12px}.appointment-overlap-hint .boss-label-icon{width:24px;height:24px}.appointment-overlap-hint .difficulty-badge{width:57px;height:15px}@media (max-width:899px),(hover:none) and (pointer:coarse) and (max-height:599px){.entry-dialog.schedule-overlap-dialog{border-radius:22px 22px 0 0;width:660px;max-width:100%;max-height:92dvh;margin:0 auto;padding:24px 20px;position:fixed;inset:auto 0 0}}@media (max-width:599px){.schedule-overlap-notice{gap:10px;padding:14px 12px}.schedule-overlap-notice>svg{display:none}.schedule-overlap-notice button,.schedule-overlap-notice a{padding:10px;font-size:12px}.page-scroll>.schedule-overlap-notice{margin:12px 16px 0}.overlap-group ul{grid-template-columns:1fr}.overlap-group h3 small{margin-left:0}.overlap-event{padding:14px}}
