/* Owner management pages: tests, versions, rate limit rules, webhooks, pages, key permissions. */
.manage-windows { border: 1px solid var(--border); border-radius: var(--radius-sm); padding: .85rem .85rem 0; margin: 0 0 .85rem; min-width: 0; }
.manage-windows legend { padding: 0 .4rem; color: var(--muted); font-size: .8rem; }
.manage-inline { display: flex; flex-wrap: wrap; align-items: flex-end; gap: .65rem; }
.manage-inline label { flex: 1 1 22rem; margin-bottom: 0; }
.manage-profile { border-top: 1px solid var(--border); padding: .85rem 0; }
.manage-profile:first-of-type { border-top: 0; }
.manage-profile h3 { display: flex; align-items: center; flex-wrap: wrap; gap: .5rem; margin: 0; font-size: .9rem; }
.manage-profile details { margin-top: .4rem; }
.manage-swatch { display: inline-block; width: 14px; height: 14px; border-radius: 50%; border: 1px solid var(--border); background: var(--surface-2); }
.manage-snippet { font-family: ui-monospace, SFMono-Regular, Consolas, monospace; white-space: pre; font-size: .8rem; }
.manage-input { min-height: 140px; }
.badge.manage-failed { color: var(--danger); border-color: var(--danger); background: var(--danger-bg); }
.manage-versions { display: grid; grid-template-columns: minmax(200px, 260px) minmax(220px, 320px) minmax(0, 1fr); gap: 1rem; align-items: start; }
.manage-versions > .empty-state { grid-column: 2 / -1; }
.manage-versions .resource-list h3 { font-size: .78rem; color: var(--muted); margin: .85rem 0 .25rem; }
.manage-version-list { list-style: none; padding: 0; margin: 0; }
.manage-version-list a { display: flex; flex-direction: column; gap: .1rem; padding: .5rem .6rem; border-radius: var(--radius-sm); text-decoration: none; color: var(--text); font-size: .85rem; }
.manage-version-list a[aria-current="page"] { background: var(--surface-2); }
.manage-version-list .badge { align-self: flex-start; }
.manage-version-list .muted { font-size: .78rem; }
.manage-diff { white-space: pre; max-height: 60vh; font-size: .8rem; line-height: 1.5; }
.manage-diff span { display: block; }
.manage-diff-add { color: var(--success); background: color-mix(in srgb, var(--success) 12%, transparent); }
.manage-diff-del { color: var(--danger); background: var(--danger-bg); }
.key-permissions summary { cursor: pointer; overflow-wrap: anywhere; }
.key-permissions form { display: grid; gap: .5rem; margin-top: .75rem; min-width: 220px; }
.key-permissions label { margin: 0; font-weight: 400; }
.key-permissions select { margin-top: .2rem; padding: .4rem; }
@media (max-width: 1100px) { .manage-versions { grid-template-columns: minmax(180px, 240px) minmax(0, 1fr); } .manage-version-detail { grid-column: 1 / -1; } }
@media (max-width: 760px) { .manage-versions { grid-template-columns: 1fr; } .manage-versions > .empty-state { grid-column: auto; } }
/* Project overview: Connect your game card. */
.copy-row { display: flex; align-items: flex-start; gap: .5rem; }
.copy-row pre { flex: 1 1 auto; margin: 0; }
.copy-row button { flex: none; white-space: nowrap; }
.checklist td { vertical-align: top; }
.checklist ul { margin: .25rem 0 0; padding-left: 1.1rem; }
/* Collapsed advanced settings and rarely used cards. */
.settings-advanced > summary { cursor: pointer; font-weight: 600; padding: .25rem 0; }
.settings-advanced[open] > summary { margin-bottom: .75rem; }
details.card.settings-advanced > summary { font-size: 1.1rem; }
.import-export { margin: 1rem 0; }
.import-export > .card { margin-top: 1rem; }
.copy-row code { flex: 1 1 auto; min-width: 0; overflow-wrap: anywhere; }
/* Second line under a row label, for descriptions and method/slug detail. */
.rows .row-sub { display: block; font-weight: 400; color: var(--muted); font-size: .8rem; }
.rows .row-sub code { font-size: .85em; }
.manage-profile h3 code { overflow-wrap: anywhere; }
/* Project hub: one column below md, three columns at md and up. The id
   outranks the auto-fill .project-grid rule in owner-management.css. */
#project-grid.project-grid { grid-template-columns: 1fr; }
@media (min-width: 768px) {
  #project-grid.project-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}
/* Denser cards: title row on top, compact facts pinned to the bottom so cards
   in a row stay even with no reserved description space. The min-height
   override below replaces the .project-card > p reservation in
   owner-management.css, which left a gap when the description was missing. */
#project-grid .project-card { display: flex; flex-direction: column; }
#project-grid .project-card h2 { margin: 0; font-size: 1rem; overflow-wrap: anywhere; }
#project-grid .project-id { margin-top: .15rem; }
#project-grid .project-card > p { min-height: 0; margin: .5rem 0 0; }
#project-grid .project-facts { margin-top: auto; padding-top: .6rem; font-size: .8rem; }
/* Generated tile: fixed pixel size from its width/height attributes. */
.project-tile { flex: none; vertical-align: middle; }
/* Project page heading: tile beside the title. */
.project-title { display: flex; align-items: center; gap: .75rem; min-width: 0; }
/* Settings colour control: native picker at control height. */
#project-settings input[type="color"] { width: 3rem; height: 2rem; padding: .15rem; }
/* Library and release status card on the dashboard. */
.release-status .release-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr)); gap: 1rem; align-items: start; margin-top: .75rem; }
.release-panel { min-width: 0; border: 1px solid var(--line); border-radius: var(--radius-sm); padding: .85rem; background: var(--fill); }
.release-panel h3 { margin: 0 0 .5rem; font-size: .95rem; }
.release-panel h4 { margin: 0 0 .35rem; font-size: .85rem; color: var(--muted); }
.release-facts { margin: 0; display: grid; gap: .5rem; }
.release-facts > div { display: grid; grid-template-columns: minmax(0, 9rem) minmax(0, 1fr); gap: .5rem; }
.release-facts dt { color: var(--muted); font-size: .85rem; }
.release-facts dd { margin: 0; overflow-wrap: anywhere; font-size: .9rem; display: flex; flex-wrap: wrap; align-items: center; gap: .35rem .6rem; }
.release-facts .muted { font-size: .8rem; }
.release-pending-block, .release-install, .release-engine { margin-top: .85rem; }
.release-engine p { margin: 0 0 .5rem; font-size: .9rem; }
.release-engine .notice { margin: 0; }
.release-pending { list-style: none; padding: 0; margin: 0; display: grid; gap: .35rem; }
.release-pending li { display: flex; flex-wrap: wrap; gap: .25rem .5rem; align-items: baseline; font-size: .88rem; overflow-wrap: anywhere; }
.release-number { color: var(--muted); font-variant-numeric: tabular-nums; }
.release-more { margin-top: .4rem; }
.release-more summary { cursor: pointer; color: var(--accent-fg); }
.release-install ul { margin: 0; padding-left: 1.1rem; display: grid; gap: .35rem; font-size: .88rem; }
.release-install a, .release-status a { color: var(--accent-fg); }
.release-footer { margin: .85rem 0 0; font-size: .8rem; }
.badge.attention { color: var(--warning); border-color: var(--warning); }
.badge.failed { color: var(--danger); border-color: var(--danger); background: var(--danger-bg); }
@media (max-width: 760px) {
  .release-facts > div { grid-template-columns: 1fr; gap: .1rem; }
}
