/* -- Shared styles for the edit dialogs, Habit, Daily, and To Do --
   Single source of truth for all three edit dialogs. Class names are dialog-unique. --*/
/* -- Pop-in animation for modern entry -- */
@keyframes modal-pop {
    from {
        opacity: 0;
        transform: scale(0.95) translateY(12px);
    }
    to {
        opacity: 1;
        transform: scale(1) translateY(0);
    }
}

.archived-dialog,
.update-dialog,
.daily-yesterday-shell,
.daily-heatmap-dialog {
    animation: modal-pop 0.15s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

.edit-daily-dialog .edit-daily-dialog__content {
    padding: 0 !important;
    overflow: visible;
}

.edit-daily-shell {
    width: 100%;
    max-width: min(24rem, 100%);
    max-height: min(90dvh, calc(100dvh - 3rem));
    display: flex;
    flex-direction: column;
    overflow: hidden;
    background: var(--mud-palette-surface);
    border: 1px solid color-mix(in srgb, var(--mud-palette-divider) 60%, transparent);
    border-radius: var(--space-6);
    box-shadow: 
        0 24px 38px 3px rgba(0, 0, 0, 0.08), 
        0 9px 46px 8px rgba(0, 0, 0, 0.06), 
        0 11px 15px -7px rgba(0, 0, 0, 0.1);
    animation: modal-pop 0.15s cubic-bezier(0.16, 1, 0.3, 1) forwards;
}

/* -- Header Toolbar -- */
.edit-daily-header {
    background: var(--mud-palette-surface);
    padding: 1.25rem 1.25rem var(--space-6);
    color: var(--mud-palette-text-primary);
    border-bottom: 1px solid var(--mud-palette-divider);
}

.edit-daily-header__toolbar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    margin-bottom: 0.85rem;
}

.edit-daily-header__title {
    font-weight: 700;
    font-size: 1.1rem;
    letter-spacing: -0.015em;
    color: var(--mud-palette-text-primary) !important;
}

.edit-daily-header__status {
    font-size: 0.72rem;
    font-weight: 600;
    color: var(--mud-palette-text-secondary);
    white-space: nowrap;
}

.edit-daily-header__status--saved {
    color: #16a34a;
}

.edit-daily-header__status--error {
    color: var(--mud-palette-error);
}

.edit-daily-header__close {
    color: var(--mud-palette-text-secondary) !important;
}

.edit-daily-header__close:hover {
    background-color: color-mix(in srgb, var(--mud-palette-error) 10%, transparent) !important;
    color: var(--mud-palette-error) !important;
}

/* -- Labels and Fields, macOS-like styling -- */
.edit-daily-label-header {
    color: var(--mud-palette-text-secondary) !important;
    font-weight: 600;
    font-size: 0.72rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    margin-bottom: var(--space-2);
    margin-left: 0.15rem;
}

/* Base input wrapper */
.edit-daily-field-header .mud-input-root-outlined,
.edit-daily-field-body .mud-input-root-outlined {
    background-color: color-mix(in srgb, var(--mud-palette-background-gray) 35%, var(--mud-palette-surface)) !important;
    border-radius: var(--radius-lg) !important;
    transition: background-color var(--dur-normal) ease, box-shadow var(--dur-normal) ease !important;
    border: none !important;
}

.edit-daily-field-header .mud-input-root-outlined:focus-within,
.edit-daily-field-body .mud-input-root-outlined:focus-within {
    background-color: var(--mud-palette-surface) !important;
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--mud-palette-primary) 15%, transparent) !important;
}

/* Border styling for outlined inputs */
.edit-daily-field-header .mud-input-outlined-border,
.edit-daily-field-body .mud-input-outlined-border {
    border-color: transparent !important;
    border-width: 1px !important;
}

.edit-daily-field-header .mud-input-root-outlined.mud-input-focused .mud-input-outlined-border,
.edit-daily-field-body .mud-input-root-outlined.mud-input-focused .mud-input-outlined-border {
    border-color: var(--mud-palette-primary) !important;
    border-width: 1.5px !important;
}

.edit-daily-field-header .mud-input-slot,
.edit-daily-field-body .mud-input-slot {
    color: var(--mud-palette-text-primary);
    font-size: 0.9rem;
    line-height: 1.45;
}

.edit-daily-field-header input,
.edit-daily-field-header textarea,
.edit-daily-field-body input {
    color: var(--mud-palette-text-primary) !important;
}

.edit-daily-field-header textarea.mud-input-slot {
    field-sizing: content;
    height: auto;
    min-height: 3lh;
    max-height: 10lh;
}

/* -- Body Layout -- */
.edit-daily-body {
    background: var(--mud-palette-surface);
    padding: var(--space-6) 1.25rem var(--space-7);
    color: var(--mud-palette-text-primary);
    flex: 1;
    overflow-y: auto;
    display: flex;
    flex-direction: column;
    gap: var(--space-5);
}

.edit-daily-label-body {
    color: var(--mud-palette-text-secondary) !important;
    font-weight: 600;
    font-size: 0.72rem;
    letter-spacing: 0.05em;
    text-transform: uppercase;
    margin-bottom: var(--space-2);
    margin-left: 0.15rem;
}

/* -- Checklist Section -- */
.edit-daily-checklist-panels {
    margin-bottom: var(--space-1);
}

.edit-daily-checklist-panels .mud-expand-panel {
    background: color-mix(in srgb, var(--mud-palette-background-gray) 30%, var(--mud-palette-surface)) !important;
    border: 1px solid var(--mud-palette-divider);
    border-radius: var(--radius-lg) !important;
}

.edit-daily-checklist-panels .mud-expand-panel-header {
    padding: 0.6rem 0.85rem;
    min-height: unset;
}

.edit-daily-checklist-panels .mud-expand-panel-content {
    border-top: 1px solid var(--mud-palette-divider);
    padding: var(--space-4) 0.85rem 0.85rem;
}

.edit-daily-checklist {
    display: flex;
    flex-direction: column;
}

.edit-daily-checklist__row {
    display: flex;
    align-items: center;
    gap: var(--space-4);
    padding: 0.2rem 0;
    border-bottom: 1px solid color-mix(in srgb, var(--mud-palette-divider) 50%, transparent);
}

.edit-daily-checklist__row:last-of-type {
    border-bottom: none;
}

.edit-daily-checklist__input .mud-input-outlined-border {
    border: none !important;
}

.edit-daily-checklist__input .mud-input-root {
    color: var(--mud-palette-text-primary);
}

/* Modern :has sibling check to strike through checked items */
.edit-daily-checklist__row:has(.mud-checkbox-checked) .edit-daily-checklist__input input {
    text-decoration: line-through;
    color: var(--mud-palette-text-disabled) !important;
    opacity: 0.65;
}

.edit-daily-checklist__remove {
    flex-shrink: 0;
    color: var(--mud-palette-text-disabled) !important;
}

.edit-daily-checklist__add {
    display: inline-flex;
    align-items: center;
    gap: var(--space-3);
    align-self: flex-start;
    margin-top: 0.65rem;
    padding: var(--space-3) 0.85rem;
    background: color-mix(in srgb, var(--mud-palette-primary) 8%, transparent);
    border: 1px dashed color-mix(in srgb, var(--mud-palette-primary) 30%, transparent);
    border-radius: var(--radius-md);
    color: var(--mud-palette-primary);
    font-size: 0.8rem;
    font-weight: 600;
    text-align: left;
    cursor: pointer;
}

.edit-daily-checklist__add-icon {
    flex-shrink: 0;
}

.edit-daily-checklist__add-text {
    color: var(--mud-palette-primary);
}

.edit-daily-date .mud-input-outlined-border {
    border-color: var(--mud-palette-divider) !important;
}

.edit-daily-repeat-select {
    width: 100%;
}

.edit-daily-repeat-every {
    display: flex;
    align-items: center;
    gap: 0.65rem;
    flex-wrap: wrap;
}

.edit-daily-repeat-every__n {
    width: 4.5rem;
    flex-shrink: 0;
}

.edit-daily-repeat-every__unit {
    color: var(--mud-palette-text-secondary);
    min-width: 3rem;
    font-size: 0.875rem;
}

/* -- Advanced section -- */
.edit-daily-advanced .mud-expand-panel {
    background: color-mix(in srgb, var(--mud-palette-background-gray) 30%, var(--mud-palette-surface)) !important;
    border: 1px solid var(--mud-palette-divider);
    border-radius: var(--radius-lg) !important;
}

.edit-daily-advanced .mud-expand-panel-header {
    padding: 0.6rem 0.85rem;
    min-height: unset;
}

.edit-daily-advanced .mud-expand-panel-content {
    border-top: 1px solid var(--mud-palette-divider);
    padding: var(--space-5) 0.85rem 0.85rem;
}

.edit-daily-streak-input {
    display: flex;
    align-items: stretch;
    max-width: 100%;
    border: 1px solid var(--mud-palette-divider);
    border-radius: var(--radius-lg);
    overflow: hidden;
    background: var(--mud-palette-surface);
    transition: box-shadow var(--dur-normal) ease, border-color var(--dur-normal) ease;
}

.edit-daily-streak-input:focus-within {
    border-color: var(--mud-palette-primary);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--mud-palette-primary) 15%, transparent);
}

.edit-daily-streak-input__icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    flex-shrink: 0;
    background: color-mix(in srgb, var(--mud-palette-background-gray) 40%, var(--mud-palette-surface));
    border-right: 1px solid var(--mud-palette-divider);
    color: var(--mud-palette-text-secondary);
}

.edit-daily-streak-input__field {
    flex: 1;
    min-width: 0;
}

.edit-daily-streak-input__field .mud-input-root {
    background: transparent;
}

.edit-daily-streak-input__field .mud-input-outlined-border {
    border: none !important;
    border-radius: 0 !important;
    box-shadow: none !important;
}

.edit-daily-streak-input__field .mud-input-focused .mud-input-outlined-border {
    box-shadow: none !important;
}

.edit-daily-streak-input__field .mud-input-slot {
    color: var(--mud-palette-text-primary);
    font-size: 0.9rem;
}

.edit-daily-delete-wrap {
    display: flex;
    justify-content: center;
    margin-top: var(--space-6);
    padding-top: 0.65rem;
    border-top: 1px solid var(--mud-palette-divider);
}

.edit-daily-delete-wrap .mud-button-label {
    text-transform: none;
    font-weight: 600;
    font-size: 0.8rem;
}

/* Tag picker widget */
.habit-tag-picker {
    position: relative;
    width: 100%;
}

.habit-tag-picker--open {
    z-index: 10;
}

.habit-tag-picker__control {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-4);
    width: 100%;
    min-height: 2.4rem;
    padding: var(--space-2) 0.65rem;
    background-color: color-mix(in srgb, var(--mud-palette-background-gray) 35%, var(--mud-palette-surface));
    border: 1px solid transparent;
    border-radius: var(--radius-lg);
    cursor: pointer;
    text-align: left;
    color: var(--mud-palette-text-primary);
    outline: none;
}

.habit-tag-picker__control:focus-visible {
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--mud-palette-primary) 15%, transparent);
}

.habit-tag-picker--open .habit-tag-picker__control {
    background-color: var(--mud-palette-surface);
    border-color: var(--mud-palette-primary);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--mud-palette-primary) 15%, transparent);
}

.habit-tag-picker__chips {
    display: flex;
    flex: 1;
    flex-wrap: nowrap;
    align-items: center;
    gap: var(--space-2);
    min-width: 0;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    --scrollbar-thumb: var(--mud-palette-text-disabled);
    --scrollbar-track: var(--mud-palette-background-gray);
    scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track);
    scrollbar-width: thin;
}

@supports not (scrollbar-color: auto) {
    .habit-tag-picker__chips::-webkit-scrollbar {
        height: 6px;
    }

    .habit-tag-picker__chips::-webkit-scrollbar-thumb {
        background: var(--scrollbar-thumb);
        border-radius: var(--radius-pill);
    }
}

.habit-tag-picker__placeholder {
    font-size: 0.9rem;
    color: var(--mud-palette-text-disabled);
    white-space: nowrap;
    user-select: none;
}

.habit-tag-picker__chevron {
    flex-shrink: 0;
    font-size: 0.65rem;
    line-height: 1;
    color: var(--mud-palette-text-disabled);
    opacity: 0.9;
    padding: 0.15rem 0.1rem 0 0;
}

.habit-tag-chip {
    display: inline-flex;
    align-items: center;
    max-width: 12rem;
    padding: 0.15rem 0.15rem 0.15rem 0.65rem;
    background: color-mix(in srgb, var(--mud-palette-primary) 8%, var(--mud-palette-surface));
    border: 1px solid color-mix(in srgb, var(--mud-palette-primary) 15%, var(--mud-palette-divider));
    border-radius: var(--radius-pill);
    font-size: 0.8rem;
    line-height: 1.2;
    color: var(--mud-palette-primary);
    user-select: none;
}

.habit-tag-chip__text {
    margin-right: 0.15rem;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    max-width: 9.5rem;
    font-weight: 550;
}

.habit-tag-chip__remove {
    flex-shrink: 0;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 1.2rem !important;
    height: 1.2rem !important;
    border: none !important;
    border-radius: 50% !important;
    background-color: color-mix(in srgb, var(--mud-palette-primary) 10%, transparent) !important;
    color: var(--mud-palette-primary) !important;
    cursor: pointer !important;
    padding: 0 !important;
    margin-left: var(--space-2) !important;
}

.habit-tag-picker__dropdown {
    position: absolute;
    left: 0;
    right: 0;
    bottom: calc(100% + 0.45rem);
    z-index: 20;
    padding: 0.65rem 0.65rem 0.55rem;
    background: var(--mud-palette-surface);
    border: 1px solid var(--mud-palette-divider);
    border-radius: var(--radius-xl);
    box-shadow: 
        0 -12px 32px -4px rgba(0, 0, 0, 0.12),
        0 -4px 12px -2px rgba(0, 0, 0, 0.08);
    
    /* Smooth CSS entry and exit transition */
    opacity: 0;
    transform: translateY(8px) scale(0.97);
    pointer-events: none;
    visibility: hidden;
    transition: 
        opacity var(--dur-normal) cubic-bezier(0.34, 1.56, 0.64, 1),
        transform var(--dur-normal) cubic-bezier(0.34, 1.56, 0.64, 1),
        visibility var(--dur-normal);
}

.habit-tag-picker__dropdown--open {
    opacity: 1;
    transform: translateY(0) scale(1);
    pointer-events: auto;
    visibility: visible;
}

.habit-tag-picker__search {
    display: block;
    width: 100%;
    box-sizing: border-box;
    margin-bottom: var(--space-4);
    padding: 0.55rem 0.65rem;
    background: color-mix(in srgb, var(--mud-palette-background-gray) 40%, var(--mud-palette-surface));
    border: 1px solid transparent;
    border-radius: var(--radius-md);
    color: var(--mud-palette-text-primary);
    font-size: 0.9rem;
    outline: none;
    transition: border-color var(--dur-normal) ease, background-color var(--dur-normal) ease;
}

.habit-tag-picker__search::placeholder {
    color: var(--mud-palette-text-disabled);
}

.habit-tag-picker__search:focus {
    background-color: var(--mud-palette-surface);
    border-color: var(--mud-palette-primary);
    box-shadow: 0 0 0 3px color-mix(in srgb, var(--mud-palette-primary) 15%, transparent);
}

.habit-tag-picker__list {
    max-height: 10.5rem;
    margin: 0;
    padding: 0.15rem 0 0.1rem;
    overflow-y: auto;
    overflow-x: auto;
    --scrollbar-thumb: var(--mud-palette-text-disabled);
    --scrollbar-track: var(--mud-palette-background-gray);
    scrollbar-color: var(--scrollbar-thumb) var(--scrollbar-track);
    scrollbar-width: thin;
}

@supports not (scrollbar-color: auto) {
    .habit-tag-picker__list::-webkit-scrollbar {
        width: 8px;
        height: 6px;
    }

    .habit-tag-picker__list::-webkit-scrollbar-thumb {
        background: var(--scrollbar-thumb);
        border-radius: var(--radius-pill);
    }
}

.habit-tag-picker__empty {
    padding: var(--space-3) var(--space-2);
    font-size: 0.82rem;
    color: var(--mud-palette-text-secondary);
}

.habit-tag-picker__option {
    display: block;
    width: 100%;
    text-align: left;
    border: none;
    background: transparent;
    color: var(--mud-palette-text-primary);
    font-size: 0.9rem;
    padding: 0.55rem 0.65rem;
    margin: 0 0 0.15rem 0;
    border-radius: var(--radius-sm);
    cursor: pointer;
    white-space: nowrap;
    min-width: 0;
}

.habit-tag-picker__option:focus-visible {
    background: var(--mud-palette-action-default-hover);
    color: var(--mud-palette-text-primary);
    outline: none;
}

.habit-tag-picker__option--add {
    color: var(--mud-palette-primary);
    font-style: normal;
    border-top: 1px solid var(--mud-palette-divider);
    margin-top: 0.2rem;
    padding-top: 0.55rem;
    border-radius: 0;
}

.edit-habit-select {
    width: 100%;
}

/* Habit track option buttons + / - */
.habit-track {
    display: flex;
    justify-content: center;
    gap: var(--space-5);
    margin-bottom: var(--space-4);
    padding-top: 0.15rem;
    width: 100%;
}

.habit-track__option {
    flex: 1;
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 0.65rem;
    background-color: color-mix(in srgb, var(--mud-palette-background-gray) 30%, var(--mud-palette-surface));
    border: 1px solid var(--mud-palette-divider);
    border-radius: var(--radius-lg);
    padding: 0.65rem 0.85rem;
    cursor: pointer;
    color: var(--mud-palette-text-secondary);
}

.habit-track__circle {
    width: 2.25rem;
    height: 2.25rem;
    border-radius: var(--radius-md);
    display: flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    color: #fff;
    transition: transform var(--dur-fast) cubic-bezier(0.34, 1.56, 0.64, 1),
                background-color var(--dur-fast) ease;
}

.habit-track__circle--good {
    background: var(--hab-type-habit);
}

.habit-track__circle--bad {
    background: #dc2626;
}

.habit-track__circle svg {
    width: 1.15rem;
    height: 1.15rem;
    stroke-width: 3.5;
}

.habit-track__option:active .habit-track__circle {
    transform: translateY(1px) scale(0.92);
}

.habit-track__label {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--mud-palette-text-secondary);
    transition: all var(--dur-normal) ease;
}

/* Option selected states */
.habit-track__option--on-good {
    background-color: color-mix(in srgb, #22c55e 6%, var(--mud-palette-surface)) !important;
    border-color: #22c55e !important;
    box-shadow: 0 4px 12px color-mix(in srgb, #22c55e 12%, transparent) !important;
}

.habit-track__option--on-good .habit-track__label {
    color: var(--mud-palette-text-primary) !important;
    font-weight: 750 !important;
}

.habit-track__option--on-bad {
    background-color: color-mix(in srgb, #dc2626 6%, var(--mud-palette-surface)) !important;
    border-color: #dc2626 !important;
    box-shadow: 0 4px 12px color-mix(in srgb, #dc2626 12%, transparent) !important;
}

.habit-track__option--on-bad .habit-track__label {
    color: var(--mud-palette-text-primary) !important;
    font-weight: 750 !important;
}

@media (max-width: 599.98px) {
    .habit-track__circle {
        width: 2.65rem;
        height: 2.65rem;
    }
}

/* -- Advanced section -- */
.counter-adjust {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-2);
}

.counter-adjust__btn {
    width: 2.25rem;
    height: 2.25rem;
    border: none;
    border-radius: var(--radius-md);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0;
    cursor: pointer;
    flex-shrink: 0;
    color: #fff;
    transition: transform var(--dur-fast) cubic-bezier(0.34, 1.56, 0.64, 1),
                background-color var(--dur-fast) ease;
}

.counter-adjust__btn:disabled {
    opacity: 0.35;
    cursor: not-allowed;
}

.counter-adjust__btn--good {
    background: var(--hab-type-habit);
}

.counter-adjust__btn--bad {
    background: #dc2626;
}

.counter-adjust__btn:active:not(:disabled) {
    transform: translateY(1px) scale(0.92);
}

.counter-adjust__btn svg {
    width: 1.15rem;
    height: 1.15rem;
    stroke: currentColor;
    stroke-width: 3.5;
    stroke-linecap: round;
    stroke-linejoin: round;
    display: block;
    pointer-events: none;
}

@media (max-width: 599.98px) {
    .counter-adjust__btn {
        width: 2.65rem;
        height: 2.65rem;
    }
}

.counter-adjust__field {
    width: 5rem;
    flex-shrink: 0;
}

.counter-adjust__field .mud-input-outlined-border {
    border-color: var(--mud-palette-divider) !important;
}

/* To-do repeat interval field */
.edit-todo-repeat-field {
    flex: 0 0 6.5rem;
    max-width: 6.5rem;
}

.edit-todo-repeat-hint {
    flex: 1 1 auto;
    min-width: 0;
    line-height: 1.4;
}

/* -- View Heatmap action button -- */
.edit-daily-heatmap-btn {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-3);
    width: 100%;
    padding: 0.6rem 0.85rem;
    margin-bottom: var(--space-3);
    background: color-mix(in srgb, var(--mud-palette-primary) 8%, var(--mud-palette-surface));
    border: 1px solid color-mix(in srgb, var(--mud-palette-primary) 25%, var(--mud-palette-divider));
    border-radius: var(--radius-lg);
    color: var(--mud-palette-primary);
    font-size: 0.85rem;
    font-weight: 600;
    text-transform: none;
    cursor: pointer;
}

.edit-daily-heatmap-btn__icon {
    flex-shrink: 0;
}
