/* dmtools project styles. Bootstrap + DataTables (bs5) are imported from app.js. */ body { min-height: 100vh; } main.app-main { padding-top: 1.5rem; padding-bottom: 3rem; } .navbar-brand { font-weight: 600; letter-spacing: 0.02em; } .login-card { max-width: 24rem; margin: 8vh auto 0; } /* Let DataTables' controls breathe inside a Bootstrap card. */ table.dataTable { width: 100% !important; } /* --- Family tree --------------------------------------------------------- */ .family-tree, .family-tree ul { list-style: none; margin: 0; padding-left: 1.25rem; } .family-tree { padding-left: 0; } .family-tree li { position: relative; padding: 0.15rem 0 0.15rem 1rem; } .family-tree ul > li::before { /* elbow connector */ content: ""; position: absolute; top: 0; left: 0; bottom: 50%; width: 0.75rem; border-left: 1px solid var(--bs-border-color); border-bottom: 1px solid var(--bs-border-color); } .family-tree ul > li::after { /* line continuing to siblings below */ content: ""; position: absolute; top: 0; left: 0; height: 100%; border-left: 1px solid var(--bs-border-color); } .family-tree ul > li:last-child::after { display: none; } .ft-couple { display: inline-flex; align-items: center; gap: 0.4rem; flex-wrap: wrap; } .ft-person { display: inline-flex; align-items: center; gap: 0.45rem; padding: 0.2rem 0.5rem; border: 1px solid var(--bs-border-color); border-radius: 0.375rem; text-decoration: none; color: inherit; background: var(--bs-body-bg); } .ft-person:hover { border-color: var(--bs-primary); } .ft-name { font-weight: 500; } .ft-meta { font-size: 0.8125rem; color: var(--bs-secondary-color); } .ft-amp { color: var(--bs-secondary-color); } /* --- Art gallery ------------------------------------------------------- */ .art-thumb { height: 180px; display: flex; align-items: center; justify-content: center; padding: 0.4rem; background: var(--bs-tertiary-bg); border-bottom: 1px solid var(--bs-border-color); border-top-left-radius: inherit; border-top-right-radius: inherit; overflow: hidden; } .art-thumb img { max-width: 100%; max-height: 100%; object-fit: contain; /* whole image, never cropped */ } .art-full img { max-width: 100%; height: auto; } /* --- Tracker: unfoldable stat blocks --------------------------------- */ [data-bs-toggle="collapse"] .sb-caret { display: inline-block; transition: transform 0.15s ease; } [data-bs-toggle="collapse"][aria-expanded="true"] .sb-caret { transform: rotate(90deg); } .statblock-collapse h3 { margin-top: 0.75rem; } /* --- Overview tiles ------------------------------------------------------ */ .home-tile { transition: border-color 0.12s ease, transform 0.12s ease; } .home-tile:hover { border-color: var(--bs-primary); transform: translateY(-2px); }