.dashboard .page-content { padding: var(--page-padding); } .dashboard-links { display: flex; gap: 1.25rem; align-items: center; flex: 1; } .dashboard-link { color: var(--text); text-decoration: none; opacity: var(--semi-transparent); transition: opacity var(--transition-duration); cursor: pointer; } .dashboard-link:hover { opacity: 1; color: var(--text-accent); } .dashboard-link:last-child { margin-left: auto; margin-right: var(--badge-spacing); } .dashboard section { margin-bottom: var(--page-spacing); width: 100%; } .section-header { display: flex; align-items: center; justify-content: space-between; margin-bottom: var(--box-spacing); } .section-header h2 { font-size: calc(var(--font-size) * 1.3); } .card-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(22em, 1fr)); gap: var(--box-spacing); } .card { position: relative; background: var(--f3-bg); border: var(--border-width) solid var(--f3-border); display: flex; overflow: visible; border-radius: var(--border-radius); padding: var(--box-padding); gap: var(--box-spacing); } .card.clickable { cursor: pointer; } .card.clickable:hover { border-color: var(--primary); filter: var(--hover-filter); } .card-image { aspect-ratio: 1; background: var(--f2-bg); overflow: hidden; border-radius: var(--border-radius) var(--border-radius) 0 0; flex: 0 0 8em; height: 8em; border-radius: var(--border-radius); } .card-image img { width: 100%; height: 100%; object-fit: cover; } .card-body { display: flex; flex-direction: column; overflow: hidden; flex: 3; } .card-title-row { display: flex; align-items: center; gap: var(--badge-spacing); } .card-title { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .card-desc { display: -webkit-box; overflow: hidden; } .badge { padding: var(--badge-padding); background: var(--f2-bg); border: var(--border-width) solid var(--f2-border); white-space: nowrap; flex-shrink: 0; font-size: var(--font-size); border-radius: var(--border-radius); } .card-badges { display: flex; flex-wrap: wrap; gap: var(--badge-spacing); margin-top: var(--badge-spacing); } .badge-forced-feature { background: rgb(from var(--dangerous) r g b / .1); border-color: rgb(from var(--dangerous) r g b / .25); color: var(--dangerous); } .badge-feature { background: rgb(from var(--primary) r g b / .1); border-color: rgb(from var(--primary) r g b / .25); color: var(--primary); } .badge-skill { background: rgb(from var(--secondary) r g b / .1); border-color: rgb(from var(--secondary) r g b / .25); color: var(--secondary); } .section-add-btn { font-size: var(--font-size); } /* Card Menu */ .card-menu { position: relative; margin-left: auto; flex-shrink: 0; z-index: 10; } .card-menu-trigger { transition: opacity var(--transition-duration); font-size: var(--font-size); background: var(--f3-bg); border: var(--border-width) solid var(--f3-border); border-radius: var(--border-radius); } .card-menu-dropdown { position: fixed; background: var(--f3-bg); border: var(--border-width) solid var(--f3-border); border-radius: var(--border-radius); min-width: 10em; display: flex; flex-direction: column; overflow: hidden; padding-block: var(--badge-spacing); z-index: 1000; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); } .card-menu-dropdown[hidden] { display: none; } .card-menu-item { border: none; border-radius: unset; text-align: left; padding: var(--menu-item-padding); background: none; white-space: nowrap; display: flex; align-items: center; gap: var(--badge-spacing); } .card-menu-item:not(:disabled):hover { background: var(--f2-bg); border: none; } .card-menu-item:disabled { opacity: var(--semi-transparent); cursor: not-allowed; } .card-meta { display: flex; flex-direction: column; gap: var(--badge-spacing); margin-top: var(--badge-spacing); } .card-meta:empty { display: none; } .card-meta-item { opacity: var(--semi-transparent); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } .card-git-status { display: flex; align-items: center; gap: var(--badge-spacing); opacity: 1; } .git-badge { padding: var(--badge-padding); font-size: var(--font-size); border-radius: var(--border-radius); } .git-add { background: rgb(from var(--secondary) r g b / .15); color: var(--secondary); } .git-edit { background: rgb(from var(--warning) r g b / .15); color: var(--warning); } .git-delete { background: rgb(from var(--dangerous) r g b / .15); color: var(--dangerous); } .git-outgoing { background: rgb(from var(--text) r g b / .15); color: var(--text); }