body { display: flex; flex-direction: column; } #app { flex: 1; display: flex; flex-direction: column; overflow: hidden; } .page { flex: 1; display: flex; flex-direction: column; overflow: hidden; } /* ── Nav ── */ #nav { padding: .75em 1.5em; border-bottom: 1px solid #444; display: flex; align-items: center; gap: 2em; flex-shrink: 0; } .nav-links { display: flex; gap: 1em; } .nav-link { color: #888; text-decoration: none; padding: .25em .5em; } .nav-link:hover { color: #eee; } .nav-link.active { color: #eee; border-bottom: 2px solid #eee; } /* ── Dashboard ── */ .dashboard { padding: 2em; overflow-y: auto; } .dashboard section { margin-bottom: 2em; } .section-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: 1em; } .card-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 1em; } .card { background: #333; border: 1px solid #444; padding: 1em; display: flex; flex-direction: column; gap: .5em; } .card.clickable { cursor: pointer; } .card.clickable:hover { border-color: #888; } .card-icon { font-size: 2em; } .card-title { font-weight: bold; } .card-sub { color: #888; } .card.placeholder { border-style: dashed; color: #666; } /* ── Session Page ── */ .session-page { display: flex; flex-direction: column; } .session-header { padding: .75em 1.5em; border-bottom: 1px solid #444; display: flex; align-items: center; gap: 1em; flex-shrink: 0; } .back-btn { background: none; border: none; padding: .25em .5em; } .editable-title { cursor: pointer; } .editable-title:hover { text-decoration: underline; text-decoration-style: dotted; } /* ── Placeholder Pages ── */ .placeholder-page { flex: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 1em; color: #888; } .placeholder-icon { font-size: 4em; }