/* Update Server — self-contained dark side-nav shell (no external CSS framework).
   Palette matches getCPUID/LicenseServer's VLM look: #2d2d30 chrome, #007acc accent. */
* { box-sizing: border-box; }
html, body { margin: 0; height: 100%; }
body {
    font: 14px/1.5 "Segoe UI", system-ui, sans-serif;
    color: #e4e4e4; background: #1e1e21;
}
a { color: #4aa3e0; text-decoration: none; }
a:hover { text-decoration: underline; }

/* ---- authenticated shell ---- */
.side-nav {
    position: fixed; top: 0; left: 0; bottom: 0; width: 220px;
    background: #252526; border-right: 1px solid #333; padding: 0 0 20px;
    overflow-y: auto;
}
.side-nav .brand { padding: 18px 20px; font-size: 16px; font-weight: 600; color: #fff; background: #1b1b1c; letter-spacing: .3px; }
.side-nav .nav-link { display: block; padding: 10px 20px; color: #cfcfcf; border-left: 3px solid transparent; }
.side-nav .nav-link:hover { background: #2d2d30; text-decoration: none; }
.side-nav .nav-link.active { background: #2d2d30; border-left-color: #007acc; color: #fff; }

.main { margin-left: 220px; min-height: 100%; }
.top-bar { display: flex; align-items: center; justify-content: space-between; padding: 12px 24px; background: #2d2d30; border-bottom: 1px solid #333; }
.top-bar .page-title { font-size: 18px; font-weight: 600; color: #fff; }
.user-box { font-size: 13px; color: #b8b8b8; }
.user-box a, .user-box .linkbtn { margin-left: 14px; }
.linkbtn { background: none; border: none; color: #4aa3e0; cursor: pointer; font: inherit; padding: 0; }
.linkbtn:hover { text-decoration: underline; }
.app-content { padding: 24px; max-width: 1100px; }

/* ---- anonymous (login) ---- */
body.anon { display: flex; align-items: center; justify-content: center; }
.anon-wrap { width: 360px; max-width: 92vw; }
.login-card { background: #252526; border: 1px solid #333; border-radius: 8px; padding: 28px; }
.login-card h1 { font-size: 20px; margin: 0 0 4px; color: #fff; }
.login-card .sub { color: #9a9a9a; margin: 0 0 22px; font-size: 13px; }

/* ---- cards / sections ---- */
.card { background: #252526; border: 1px solid #333; border-radius: 8px; margin-bottom: 20px; }
.card .card-head { padding: 14px 18px; border-bottom: 1px solid #333; font-weight: 600; color: #fff; display: flex; justify-content: space-between; align-items: center; }
.card .card-body { padding: 18px; }
.card .card-foot { padding: 14px 18px; border-top: 1px solid #333; }

/* ---- forms ---- */
.field { margin-bottom: 14px; }
.field label { display: block; margin-bottom: 5px; font-size: 13px; color: #c9c9c9; }
input[type=text], input[type=password], input[type=url], textarea, select {
    width: 100%; padding: 8px 10px; background: #1b1b1c; border: 1px solid #3c3c3c; border-radius: 4px; color: #e4e4e4; font: inherit;
}
input[type=file] { color: #cfcfcf; }
textarea { min-height: 70px; resize: vertical; }
.check { display: flex; align-items: center; gap: 8px; }
.check input { width: auto; }
.help { font-size: 12px; color: #8f8f8f; margin-top: 4px; }
.field-error, .validation-summary-errors { color: #ff8a8a; font-size: 12px; margin-top: 4px; }
.validation-summary-errors ul { margin: 0; padding-left: 18px; }

/* ---- buttons ---- */
.btn { display: inline-block; padding: 8px 16px; border-radius: 4px; border: 1px solid #3c3c3c; background: #333; color: #e4e4e4; cursor: pointer; font: inherit; }
.btn:hover { background: #3a3a3a; text-decoration: none; }
.btn.primary { background: #007acc; border-color: #007acc; color: #fff; }
.btn.primary:hover { background: #0a86d8; }
.btn.danger { background: #6a2020; border-color: #7a2a2a; color: #ffcccc; }
.btn.small { padding: 4px 10px; font-size: 12px; }

/* ---- tables ---- */
table.grid { width: 100%; border-collapse: collapse; }
table.grid th, table.grid td { text-align: left; padding: 9px 12px; border-bottom: 1px solid #303030; font-size: 13px; }
table.grid th { color: #9fd0f0; font-weight: 600; background: #232323; }
table.grid tr:hover td { background: #2a2a2b; }
table.grid td.mono, .mono { font-family: Consolas, "Cascadia Mono", monospace; font-size: 12px; }
.tag { display: inline-block; padding: 2px 8px; border-radius: 10px; font-size: 11px; font-weight: 600; }
.tag.current { background: #0e5a2a; color: #b6f0c8; }
.tag.off { background: #4a1f1f; color: #f0b6b6; }
.tag.req { background: #5a4410; color: #f5dfa8; }
.tag.sev1 { background: #24435c; color: #bcdcf5; }
.tag.sev2 { background: #5a4410; color: #f5dfa8; }
.tag.sev3 { background: #6a1f1f; color: #ffc4c4; }

/* ---- release notes shown under each version row ---- */
table.grid tr.notes-row td { border-bottom: 1px solid #303030; padding-top: 0; background: #202021; }
table.grid tr.notes-row:hover td { background: #202021; }
.rel-summary { color: #dcdcdc; font-weight: 600; margin-bottom: 6px; }
.rel-summary .tag { margin-left: 6px; font-weight: 600; }
ul.rel-changes { margin: 0; padding-left: 18px; color: #b9b9b9; font-size: 12.5px; }
ul.rel-changes li { margin: 2px 0; }
ul.rel-changes .k { display: inline-block; min-width: 84px; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .04em; color: #7f8c99; }
ul.rel-changes .k-added { color: #7ec99a; }
ul.rel-changes .k-fixed, ul.rel-changes .k-security { color: #e59a9a; }
ul.rel-changes .k-performance { color: #9fd0f0; }
.rel-notes { margin-top: 8px; color: #9a9a9a; font-size: 12.5px; white-space: pre-wrap; }

/* ---- alerts / banners ---- */
.alert { padding: 11px 16px; border-radius: 6px; margin-bottom: 18px; font-size: 13px; }
.alert.ok { background: #123a1e; border: 1px solid #1f6a37; color: #bdf0cd; }
.alert.bad { background: #3a1414; border: 1px solid #7a2a2a; color: #f2c0c0; }
.verify { border-radius: 8px; padding: 16px 18px; margin-bottom: 18px; border: 1px solid; }
.verify.pass { background: #123a1e; border-color: #1f6a37; }
.verify.fail { background: #3a1414; border-color: #7a2a2a; }
.verify h3 { margin: 0 0 8px; }
.verify.pass h3 { color: #7ef0a3; }
.verify.fail h3 { color: #ff9a9a; }
.verify dl { display: grid; grid-template-columns: 160px 1fr; gap: 4px 12px; margin: 0; font-size: 13px; }
.verify dt { color: #9a9a9a; }

.row-actions { white-space: nowrap; }
.muted { color: #8f8f8f; }
h2.section { font-size: 15px; color: #fff; margin: 0 0 12px; }
