/* Shell pages (home, sign-in, users, KS Tools placeholder). Builds on Bolero's
   style.css (served as /keyplan/style.css), which holds the tokens and controls. */
.page .wrap { max-width: 1080px; margin: 0 auto; }
.signin { max-width: 420px; margin: 40px auto; }
.signin .bar { margin: 4px 0 16px; }

.launch { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 12px; margin-top: 4px; }
.launch a { display: flex; flex-direction: column; gap: 6px; padding: 14px 16px 16px; background: var(--cell); border: 1px solid var(--line);
  color: inherit; text-decoration: none; min-height: 150px; }
.launch a:hover { border-color: var(--accent); background: #131820; }
.launch .kicker { font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: var(--caps); color: var(--muted); }
.launch b { font-size: 16px; }
.launch p { margin: 0; color: var(--muted); font-size: 12.5px; line-height: 1.5; }
.launch .go { margin-top: auto; color: var(--accent); font-weight: 600; font-size: 12.5px; }
.launch a.soon { opacity: .6; }

.tbl select { min-width: 110px; }
.tbl td.muted { color: var(--muted); }

/* Key plan's live status, now in the shared header (Bolero's rule only matched its old header). */
#status .state { color: var(--good); }
