/* style.css - v4.2 "WOW" Factor + Gradients + Fixes */
:root {
    --bg-gradient-start: #1c1c22;
    --bg-gradient-end: #111115;
    --bg-cell: rgba(42, 42, 50, 0.7); /* Полупрозрачные ячейки */
    --bg-cell-hover: rgba(58, 58, 66, 0.85);
    --bg-header: rgba(30, 30, 35, 0.85); /* Плотнее хедер */
    --bg-modal: linear-gradient(145deg, rgba(45, 45, 53, 0.97), rgba(35, 35, 42, 0.97)); /* Градиент модалки */
    --text-primary: #f0f0f5;    /* Почти белый */
    --text-secondary: #a0a0b0;   /* Менее контрастный */
    --text-tertiary: #70707d;    /* Совсем бледный */
    --text-disabled: #505058;    /* Неактивный */
    --border-color: rgba(80, 80, 90, 0.4); /* Чуть виднее границы */
    --accent-color: #8a7ffb;     /* Лавандовый */
    --accent-color-light: #a8a1ff;
    --accent-glow: rgba(138, 127, 251, 0.35);
    --danger-color: #ff7b7b;     /* Мягкий красный */
    --danger-color-hover: #ff8787;
    --today-border: var(--accent-color);
    --note-bg: rgba(255, 255, 255, 0.04); /* Фон заметки */
    --note-hover-bg: rgba(138, 127, 251, 0.1); /* Ховер заметки */
    --modal-overlay-bg: rgba(10, 10, 15, 0.8);
    --font-main: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
    --border-radius: 10px; /* Чуть меньше радиус */
    --shadow-color: rgba(0, 0, 0, 0.5);
    --shadow-inset: inset 0 1px 3px rgba(0,0,0,0.2);
    --shadow-sm: 0 3px 8px rgba(0, 0, 0, 0.25);
    --shadow-md: 0 8px 25px rgba(0, 0, 0, 0.35);
    --shadow-lg: 0 15px 40px rgba(0, 0, 0, 0.45);
    --transition-main: 0.3s cubic-bezier(0.25, 0.8, 0.25, 1);
    --transition-fast: 0.15s ease-out;
}

* { box-sizing: border-box; margin: 0; padding: 0; }
html, body { height: 100%; width: 100%; overflow: hidden; }

body {
    font-family: var(--font-main);
    background: linear-gradient(135deg, var(--bg-gradient-start), var(--bg-gradient-end));
    color: var(--text-primary);
    font-size: 15px;
    line-height: 1.6;
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
}

#calendar-app { display: flex; flex-direction: column; height: 100%; width: 100%; }

/* Header */
#calendar-header {
    display: flex; justify-content: space-between; align-items: center;
    padding: 14px 25px; background-color: var(--bg-header);
    border-bottom: 1px solid var(--border-color); flex-shrink: 0;
    backdrop-filter: blur(12px); /* Сильнее размытие */
    position: relative; z-index: 10; box-shadow: var(--shadow-md);
}
.header-col { display: flex; align-items: center; gap: 12px; }
.header-col.left, .header-col.right { flex-basis: 200px; }
.header-col.center { justify-content: center; flex-grow: 1; }

.current-time { font-size: 0.95em; color: var(--text-secondary); font-weight: 500; letter-spacing: 0.5px;}

#calendar-header h1 { font-size: 1.5em; font-weight: 700; margin: 0 15px; color: var(--text-primary); user-select: none; letter-spacing: 0.5px; text-shadow: 0 1px 2px rgba(0,0,0,0.3); }

.nav-btn {
    background: rgba(255, 255, 255, 0.05); border: 1px solid var(--border-color); color: var(--text-secondary);
    cursor: pointer; padding: 8px; border-radius: 50%; display: inline-flex;
    justify-content: center; align-items: center; transition: all var(--transition-main); box-shadow: var(--shadow-inset);
}
.nav-btn svg { width: 20px; height: 20px; transition: transform 0.2s ease; }
.nav-btn:hover { background-color: rgba(138, 127, 251, 0.15); color: var(--text-primary); border-color: var(--accent-color); box-shadow: 0 0 15px var(--accent-glow);}
.nav-btn:active { transform: scale(0.92); background-color: rgba(138, 127, 251, 0.2); }
.nav-btn.month-nav svg { width: 22px; height: 22px; }
#today-btn svg { width: 18px; height: 18px; }

/* Weekdays */
#calendar-weekdays {
    display: grid; grid-template-columns: repeat(7, 1fr); text-align: center;
    padding: 12px 10px 10px 10px; font-weight: 600; font-size: 0.8em; color: var(--text-secondary);
    background: linear-gradient(to bottom, var(--bg-secondary), rgba(42, 42, 50, 0.9)); /* Градиент */
    border-bottom: 1px solid var(--border-color); flex-shrink: 0;
    text-transform: uppercase; /* Заглавные буквы */
    letter-spacing: 1.2px;
}
#calendar-weekdays .weekend { color: var(--accent-color-light); }

/* Calendar Grid */
#calendar-grid {
    display: grid; grid-template-columns: repeat(7, 1fr); grid-template-rows: repeat(6, 1fr);
    flex-grow: 1; padding: 15px; /* Больше паддинг */
    gap: 12px; /* Больше гэп */
    overflow: hidden; background-color: transparent; border: none;
}

/* Day Cell */
.day-cell {
    background-color: var(--bg-cell); border-radius: var(--border-radius); padding: 12px 14px; /* Больше паддинг */
    position: relative; cursor: default; /* Убираем cursor pointer с ячейки */
    transition: all var(--transition-main); display: flex; flex-direction: column;
    border: 1px solid var(--border-color); box-shadow: var(--shadow-sm); overflow: hidden;
    backdrop-filter: blur(5px); /* Эффект стекла для ячейки */
}
.day-cell:not(.other-month):hover { /* Ховер только для дней текущего месяца */
    background-color: var(--bg-cell-hover); transform: translateY(-5px) scale(1.03); /* Заметнее ховер */
    box-shadow: var(--shadow-md); border-color: rgba(138, 127, 251, 0.5);
}
.day-cell.other-month { background-color: transparent; border-color: transparent; box-shadow: none; backdrop-filter: none; }
.day-cell.other-month .day-cell-header, .day-cell.other-month .day-notes-list { opacity: 0.15; pointer-events: none; } /* Сильнее скрываем */
.day-cell.other-month:hover { transform: none; }

.day-cell.today {
    border: 2px solid var(--today-border);
    box-shadow: 0 0 25px var(--accent-glow), var(--shadow-md);
    background: linear-gradient(145deg, rgba(138, 127, 251, 0.15), var(--bg-cell)); /* Градиент для today */
}

.day-cell-header { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; flex-shrink: 0; }

.day-number { font-size: 0.9em; font-weight: 700; color: var(--text-secondary); text-align: right; line-height: 1; padding: 4px; transition: color var(--transition-fast); }
.day-cell.today .day-number { color: var(--accent-color-light); font-size: 0.95em; }
.day-cell.other-month .day-number { color: var(--text-tertiary); font-weight: 500; }

.add-note-quick-btn {
    background: rgba(255, 255, 255, 0.0); border: 1px solid transparent; color: var(--text-secondary);
    border-radius: 50%; width: 28px; height: 28px; font-size: 1.4em; line-height: 1;
    cursor: pointer; display: flex; justify-content: center; align-items: center;
    transition: all var(--transition-fast); opacity: 0; transform: scale(0.8);
}
.day-cell:not(.other-month):hover .add-note-quick-btn { opacity: 1; transform: scale(1); } /* Показываем только на текущем месяце */
.add-note-quick-btn:hover { background-color: var(--accent-color); color: white; border-color: var(--accent-color-light); transform: scale(1.1) rotate(90deg); } /* Поворот при наведении */
.add-note-quick-btn:active { transform: scale(0.95) rotate(90deg); }

/* Список заметок в ячейке */
.day-notes-list {
    list-style: none; padding: 0; margin: 0; flex-grow: 1; overflow-y: auto;
    scrollbar-width: thin; scrollbar-color: var(--accent-color) rgba(255, 255, 255, 0.05); /* Цвет фона трека */
    padding-right: 5px;
}
.day-notes-list::-webkit-scrollbar { width: 5px; }
.day-notes-list::-webkit-scrollbar-track { background: rgba(255, 255, 255, 0.05); border-radius: 10px;}
.day-notes-list::-webkit-scrollbar-thumb { background-color: var(--accent-color); border-radius: 10px; border: none; }

.day-notes-list li {
    display: flex; justify-content: space-between; align-items: flex-start; font-size: 0.85em; color: var(--text-secondary); margin-bottom: 6px; padding: 6px 9px; border-radius: var(--border-radius-sm); background-color: var(--note-bg); word-break: break-word; transition: all var(--transition-fast); cursor: pointer; border-left: 3px solid transparent;
}
.day-notes-list li:hover { background-color: var(--note-hover-bg); color: var(--text-primary); border-left-color: var(--accent-color); }
.day-notes-list li span { margin-right: 8px; line-height: 1.4; flex-grow: 1;}

.delete-note-inline-btn {
    background: transparent; border: none; color: var(--text-tertiary); cursor: pointer; padding: 2px; width: 20px; height: 20px; font-size: 0.9em; line-height: 1; display: inline-flex; justify-content: center; align-items: center; border-radius: 50%; flex-shrink: 0; opacity: 0; transform: scale(0.8); transition: all var(--transition-fast);
}
.day-notes-list li:hover .delete-note-inline-btn { opacity: 1; transform: scale(1); } /* Показать только при наведении на li */
.delete-note-inline-btn:hover { background-color: rgba(255, 123, 123, 0.2); color: var(--danger-color); }
.delete-note-inline-btn svg { width: 14px; height: 14px; }

/* Modal */
.modal { position: fixed; top: 0; left: 0; width: 100%; height: 100%; display: flex; justify-content: center; align-items: center; z-index: 1000; opacity: 0; visibility: hidden; transition: opacity var(--transition-main), visibility 0s linear var(--transition-main); }
.modal.visible { opacity: 1; visibility: visible; transition-delay: 0s; }
.modal-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: var(--modal-overlay-bg); cursor: pointer; backdrop-filter: blur(10px); }

.modal-content {
    background: var(--bg-modal); /* Используем градиент */
    gap: 20px; /* Уменьшим гэп */
    border-radius: 16px; /* Больше скругление */
    box-shadow: 0 20px 50px var(--shadow-color), 0 0 30px var(--accent-glow); /* Добавим свечение */
    border: 1px solid var(--border-color);
    transform: translateY(0) scale(0.95); /* Начальное состояние */
    opacity: 0; visibility: hidden;
    transition: opacity var(--transition-main), transform var(--transition-main), visibility 0s linear var(--transition-main);
    padding: 35px 40px; /* Паддинги */
    max-width: 500px; /* Чуть меньше ширина */
    display: flex; flex-direction: column;
    position: relative; /* Для крестика */
}
.modal.visible .modal-content { opacity: 1; transform: translateY(0) scale(1); transition-delay: 0s; visibility: visible;}

.close-modal-btn {
    position: absolute; top: 12px; right: 12px; background: transparent; border: none; color: var(--text-secondary); cursor: pointer; padding: 8px; border-radius: 50%; display: inline-flex; transition: all var(--transition-fast); z-index: 10;
}
.close-modal-btn:hover { background-color: var(--bg-hover); color: var(--text-primary); transform: rotate(90deg); }
.close-modal-btn svg { width: 22px; height: 22px; } /* Увеличим крестик */

#edit-modal-title {
    font-size: 1.4em; /* Крупнее */
    color: var(--text-primary); text-align: center; margin-bottom: -5px; font-weight: 700;
    text-shadow: 0 1px 3px rgba(0,0,0,0.3);
}
#edit-modal-date { font-size: 0.9em; color: var(--text-secondary); text-align: center; margin-bottom: 15px; font-weight: 500; }

#edit-note-textarea {
    width: 100%; background-color: var(--bg-secondary); border: 1px solid var(--border-color); border-radius: var(--border-radius-md); padding: 15px; font-family: var(--font-main); font-size: 1em; color: var(--text-primary); resize: vertical; outline: none; transition: border-color var(--transition-fast), background-color var(--transition-fast), box-shadow var(--transition-fast); min-height: 140px; box-shadow: var(--shadow-inset);
}
#edit-note-textarea::placeholder { color: var(--text-tertiary); }
#edit-note-textarea:focus { border-color: var(--accent-color); background-color: var(--bg-hover); box-shadow: 0 0 12px var(--accent-glow); }

.modal-actions {
    display: flex;
    justify-content: space-between; /* Разносим кнопки */
    align-items: center; /* Выравниваем по центру */
    gap: 15px;
    padding-top: 20px;
    border-top: 1px solid var(--border-color);
}

/* Кнопка удаления в модалке */
#delete-note-modal-btn {
    background-color: transparent;
    color: var(--danger-color);
    border: 1px solid var(--danger-color);
    padding: 10px 20px;
    border-radius: var(--border-radius-md);
    font-size: 0.9em;
    font-weight: 600;
    cursor: pointer;
    transition: all var(--transition-fast);
    display: inline-flex; /* Чтобы иконка была видна */
    align-items: center;
    gap: 6px;
    margin-right: auto; /* Прижимаем кнопку удаления влево */
}
#delete-note-modal-btn:hover {
    background-color: rgba(255, 123, 123, 0.1);
    color: #fff; /* Белый текст при наведении */
    border-color: var(--danger-color);
    transform: translateY(-1px);
    box-shadow: 0 4px 10px rgba(255, 123, 123, 0.2);
}
#delete-note-modal-btn:disabled { /* Состояние, когда заметки нет (режим добавления) */
    opacity: 0.4;
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
    background-color: transparent !important; /* Важно */
    border-color: var(--text-disabled);
    color: var(--text-disabled);
    pointer-events: none; /* Нельзя кликнуть */
}
#delete-note-modal-btn:active {
    transform: scale(0.97);
}

/* Контейнер для кнопок справа */
.modal-action-buttons {
    display: flex;
    gap: 12px;
}

.modal-btn { padding: 11px 24px; border: none; border-radius: var(--border-radius-md); font-size: 0.95em; font-weight: 600; cursor: pointer; transition: all var(--transition-fast); letter-spacing: 0.5px; }
.modal-btn:active { transform: scale(0.96); }

.modal-btn.primary {
    background: linear-gradient(45deg, var(--accent-color), var(--accent-color-light)); /* Градиент кнопки */
    color: #fff; box-shadow: 0 4px 15px rgba(138, 127, 251, 0.3);
}
.modal-btn.primary:hover { box-shadow: 0 6px 20px rgba(138, 127, 251, 0.4); transform: translateY(-2px);}
.modal-btn.secondary { background-color: var(--bg-hover); color: var(--text-secondary); }
.modal-btn.secondary:hover { background-color: var(--bg-tertiary); color: var(--text-primary); }

/* Tooltips */
.tooltipped::after { content: attr(data-tooltip); position: absolute; bottom: 125%; left: 50%; transform: translateX(-50%) scale(0.9); background-color: var(--bg-secondary); color: var(--text-primary); padding: 6px 12px; border-radius: var(--border-radius-md); font-size: 0.85em; white-space: nowrap; opacity: 0; visibility: hidden; transition: opacity 0.2s ease, transform 0.2s ease, visibility 0s linear 0.2s; pointer-events: none; z-index: 1010; box-shadow: var(--shadow-md); border: 1px solid var(--border-color); }
.tooltipped:hover::after { opacity: 1; transform: translateX(-50%) scale(1); transition-delay: 0.4s; }

/* Адаптивность */
@media (max-width: 900px) {
    .day-cell { padding: 8px; }
    .day-number { font-size: 0.85em; }
    .day-notes-list li { font-size: 0.8em;}
    .header-col.left, .header-col.right { flex-basis: 150px; }
}
@media (max-width: 768px) {
    #calendar-header { padding: 10px 15px; }
    #calendar-header h1 { font-size: 1.1em; margin: 0 10px; }
    .header-col.left, .header-col.right { flex-basis: 80px; }
    .current-time { display: none; }
    #calendar-weekdays { font-size: 0.75em; padding: 8px 5px; letter-spacing: 0.5px; }
    #calendar-grid { padding: 8px; gap: 8px; }
    .day-cell { padding: 8px 10px; border-radius: var(--border-radius-md); }
    .day-number { font-size: 0.8em; }
    .add-note-quick-btn { width: 24px; height: 24px; }
    .day-notes-list li { font-size: 0.75em; padding: 4px 6px; margin-bottom: 4px; }
    .delete-note-inline-btn svg { width: 13px; height: 13px; }
    .modal-content { max-width: 95%; padding: 20px; }
    #modal-date { font-size: 1.1em; }
    .tooltipped::after { display: none; }
}
@media (max-width: 480px) {
     body { font-size: 14px; }
     #calendar-grid { padding: 5px; gap: 5px; }
     .day-cell { padding: 6px; border-radius: var(--border-radius-sm); }
     .day-cell-header { margin-bottom: 5px; }
     .day-number { font-size: 0.75em; }
     .add-note-quick-btn { width: 22px; height: 22px; }
     .day-notes-list li { font-size: 0.7em; padding: 3px 5px; margin-bottom: 3px; }
     .delete-note-inline-btn svg { width: 12px; height: 12px; }
     #calendar-header { padding: 8px 10px; }
     #calendar-header h1 { font-size: 1em; margin: 0 8px;}
     .nav-btn svg { width: 18px; height: 18px; }
     .nav-btn.month-nav svg { width: 20px; height: 20px; }
     #calendar-weekdays { font-size: 0.7em; padding: 8px 5px; }
     .modal-content { padding: 15px; gap: 15px;}
     #modal-date { font-size: 1em; }
     #edit-note-textarea { min-height: 100px; font-size: 0.95em;}
     .modal-btn { padding: 9px 18px; font-size: 0.9em;}
     .modal-actions { flex-direction: column-reverse; align-items: stretch; } /* Кнопки друг под другом */
     .modal-action-buttons { justify-content: center; }
     #delete-note-modal-btn { margin: 0; margin-bottom: 10px; } /* Убираем авто-отступ слева */
}

/* Стили для кнопки "Домой" в календаре */
a.back-to-hub-calendar {
    /* Используем основу от .nav-btn, но можно переопределить */
    background: transparent; /* Прозрачный фон по умолчанию */
    border: none;
    color: var(--text-secondary, #a0a0b0); /* Цвет иконки (или из ваших переменных) */
    cursor: pointer;
    padding: 8px; /* Такой же паддинг, как у других кнопок в хедере */
    border-radius: 50%; /* Круглый фон при наведении */
    display: inline-flex; /* Для выравнивания иконки */
    justify-content: center;
    align-items: center;
    transition: background-color var(--transition-fast, 0.15s ease-out), color var(--transition-fast, 0.15s ease-out), transform var(--transition-fast, 0.15s ease-out);
    text-decoration: none; /* Убираем подчеркивание ссылки */
    margin-right: 5px; /* Небольшой отступ от кнопки "Сегодня" */
}
a.back-to-hub-calendar svg, /* Если используете SVG */
a.back-to-hub-calendar i { /* Если используете Font Awesome */
    /* Убедитесь, что размер соответствует другим иконкам в хедере */
    width: 20px;
    height: 20px;
}

a.back-to-hub-calendar:hover {
    background-color: var(--bg-hover, #42424a); /* Цвет фона при наведении (или из ваших переменных) */
    color: var(--text-primary, #eaeaeb); /* Цвет иконки при наведении */
}

a.back-to-hub-calendar:active {
    transform: scale(0.95); /* Эффект нажатия */
}


/* Убедитесь, что .header-col.left использует flex для выравнивания */
#calendar-header .header-col.left {
    display: flex;
    align-items: center;
    gap: 10px; /* Расстояние между кнопками */
    /* ... возможно, другие стили ... */
}
