/* Programs area — tile grid like Tools, plus type badges and a detail view. */
.prog-intro h1 { font-size: 2rem; margin: .4rem 0 .4rem; }
.prog-intro .lede { color: var(--ink-soft); max-width: 70ch; margin: 0 0 1rem; }

.prog-cat { margin: 2rem 0 0; }
.prog-cat h2 { font-size: 1rem; text-transform: uppercase; letter-spacing: .08em; color: var(--ink-soft); border-bottom: 1px solid var(--line); padding-bottom: .4rem; }
.prog-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: .8rem; margin-top: 1rem; }

.prog-card { display: flex; flex-direction: column; padding: 1rem; background: var(--card); border: 1px solid var(--line); border-radius: 12px; text-decoration: none; color: var(--ink); transition: border-color .15s, transform .15s; }
.prog-card:hover { border-color: var(--accent-dim); transform: translateY(-2px); }
.prog-card .pc-top { display: flex; align-items: center; justify-content: space-between; gap: .5rem; }
.prog-card h3 { margin: 0; font-size: 1.05rem; }
.prog-card p { margin: .45rem 0 .7rem; color: var(--ink-soft); font-size: .88rem; flex: 1; }
.prog-card .pc-foot { font-family: var(--mono); font-size: .76rem; color: var(--ink-soft); border-top: 1px solid var(--line); padding-top: .55rem; display: flex; justify-content: space-between; align-items: center; gap: .5rem; }

.badge { font-size: .68rem; font-weight: 700; letter-spacing: .03em; padding: .2rem .5rem; border-radius: 5px; white-space: nowrap; background: #5aa9ff22; color: var(--info); }
.badge.python { background: #39d98a1f; color: var(--accent); }
.badge.exe, .badge.windows { background: #5aa9ff22; color: var(--info); }
.badge.linux, .badge.bash, .badge.script, .badge.powershell { background: #ffb4541f; color: var(--review); }
.badge.macos { background: #c9a9ff22; color: #c9a9ff; }
.badge.soon { background: #ffffff10; color: var(--ink-soft); }

/* detail view */
.prog-head { display: flex; align-items: center; gap: .7rem; flex-wrap: wrap; margin: .2rem 0 .3rem; }
.prog-head h1 { font-size: 1.6rem; margin: 0; }
.prog-version { color: var(--ink-soft); font-family: var(--mono); font-size: .85rem; }
.prog-desc { color: var(--ink); max-width: 72ch; margin: .6rem 0 1.4rem; white-space: pre-wrap; line-height: 1.6; }

.dl { background: var(--card); border: 1px solid var(--line); border-radius: 12px; padding: 1rem 1.1rem; margin: .8rem 0; }
.dl-top { display: flex; align-items: center; justify-content: space-between; gap: .6rem; flex-wrap: wrap; }
.dl-name { font-family: var(--mono); font-size: .95rem; }
.dl-meta { color: var(--ink-soft); font-size: .82rem; margin: .3rem 0 .6rem; }
.dl-hash { font-family: var(--mono); font-size: .78rem; color: var(--ink-soft); word-break: break-all; background: var(--bg-soft); border: 1px solid var(--line); border-radius: 7px; padding: .5rem .6rem; }
.dl-hash .lbl { color: var(--ink); display: block; margin-bottom: .2rem; font-family: var(--sans); font-size: .76rem; }
.dl-actions { display: flex; gap: .5rem; align-items: center; }
.dl-btn { padding: .55rem 1.1rem; font-size: .92rem; font-weight: 600; cursor: pointer; background: var(--accent); color: #04120a; border: 0; border-radius: 8px; text-decoration: none; display: inline-block; }
.dl-btn:hover { filter: brightness(1.08); }
.hash-copy { font-size: .72rem; padding: .25rem .55rem; background: transparent; color: var(--ink-soft); border: 1px solid var(--line); border-radius: 6px; cursor: pointer; margin-top: .4rem; }
.hash-copy:hover { color: var(--ink); border-color: var(--accent-dim); }

.soon-box { background: #ffffff08; border: 1px dashed var(--line); border-radius: 10px; padding: 1rem 1.1rem; color: var(--ink-soft); margin: 1rem 0; }
.prog-verify { font-size: .84rem; color: var(--ink-soft); margin-top: 1.4rem; max-width: 72ch; border-top: 1px solid var(--line); padding-top: 1rem; }
.prog-verify code { font-family: var(--mono); background: var(--bg-soft); padding: .1rem .35rem; border-radius: 4px; }
