/* Chronological - App-Specific Styles */ /* TuiCss provides the base styling, this file adds app-specific layout */ /* Main App Layout */ .app-main { height: calc(100vh - 40px); /* Account for navbar and statusbar */ padding: 8px; overflow: hidden; } /* Timeline Container - Split Layout */ .timeline-container { display: grid; grid-template-columns: 320px 1fr; height: 100%; gap: 8px; } /* Calendar Panel */ .calendar-panel { overflow-y: auto; } .calendar-panel .tui-window { height: 100%; } .calendar { padding: 8px; } .calendar-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; } .calendar-title { font-weight: bold; } .calendar-weekdays { display: grid; grid-template-columns: repeat(7, 1fr); text-align: center; font-size: 0.8em; margin-bottom: 4px; color: #aaa; } .calendar-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; } .calendar-day { aspect-ratio: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; cursor: pointer; position: relative; border: 1px solid transparent; padding: 2px; } .calendar-day:hover { background-color: #00aaaa; color: #000; } .calendar-day.empty { cursor: default; } .calendar-day.empty:hover { background-color: transparent; } .calendar-day.today { background-color: #aa0000; color: #fff; } .calendar-day.today:hover { background-color: #ff0000; } .calendar-day.has-content { font-weight: bold; color: #ffff00; } .day-number { font-size: 0.9em; } .day-indicators { display: flex; gap: 1px; font-size: 0.6em; position: absolute; bottom: 1px; } .indicator { color: #00ff00; } .calendar-actions { margin-top: 16px; text-align: center; } /* Timeline Panel */ .timeline-panel { overflow-y: auto; } .timeline-panel .tui-window { height: 100%; } .timeline { padding: 8px; } .timeline-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 16px; } .timeline-title { font-weight: bold; } .timeline-content { display: flex; flex-direction: column; gap: 8px; } .timeline-day { margin-bottom: 8px; } .timeline-entries { padding: 4px 0; } .timeline-entry { margin-bottom: 8px; padding: 4px 0; border-bottom: 1px dotted #555; } .timeline-entry:last-child { border-bottom: none; } .entry-type { margin-right: 8px; } .entry-title { margin-right: 8px; } .entry-time { margin-right: 8px; } .entry-location { margin-right: 8px; } .entry-description { margin-top: 4px; padding-left: 8px; color: #aaa; } .diary-text { white-space: pre-wrap; } .timeline-empty { text-align: center; padding: 32px; } /* Photo Grid */ .photo-grid, .photo-gallery { display: grid; grid-template-columns: repeat(auto-fill, minmax(100px, 1fr)); gap: 8px; margin-top: 8px; } .photo-item { margin: 0; } .photo-item img { width: 100%; height: 100px; object-fit: cover; border: 1px solid #555; } .photo-item img:hover { border-color: #00ffff; } .photo-item figcaption { font-size: 0.8em; color: #aaa; text-align: center; margin-top: 2px; } /* Day Modal */ .tui-modal { position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%); border: none; padding: 0; max-width: 600px; width: 90%; max-height: 80vh; overflow: hidden; } .tui-modal::backdrop { background-color: rgba(0, 0, 0, 0.7); } .tui-modal .tui-window { max-height: 80vh; overflow-y: auto; } .day-detail { padding: 8px; } .day-header { margin-bottom: 16px; font-weight: bold; font-size: 1.1em; } .day-content .tui-input-fieldset { margin-bottom: 16px; } .event-list { list-style: none; padding: 0; margin: 0; } .event-item { padding: 4px 0; border-bottom: 1px dotted #555; } .event-item:last-child { border-bottom: none; } .empty-message { color: #666; font-style: italic; } /* Form Elements */ .form-actions { display: flex; gap: 8px; margin-top: 8px; } .modal-actions { margin-top: 16px; text-align: right; } .full-width { width: 100%; } /* TuiCss Overrides */ .tui-no-shadow { box-shadow: none !important; } .tui-border-single .tui-fieldset, .tui-fieldset.tui-border-single { border-style: solid; border-width: 1px; } /* Make input textareas work with TuiCss */ textarea.tui-input { resize: vertical; min-height: 100px; font-family: inherit; } /* Responsive Design */ @media (max-width: 768px) { .timeline-container { grid-template-columns: 1fr; grid-template-rows: auto 1fr; } .calendar-panel { max-height: 50vh; } .calendar-panel .tui-window { height: auto; } } /* HTMX Loading Indicator */ .htmx-request { opacity: 0.7; pointer-events: none; }