:root { font-family: system-ui, -apple-system, "Segoe UI", sans-serif; color-scheme: light; } * { box-sizing: border-box; } body { margin: 0; background: #f4f5f7; color: #1f2933; } .layout { display: grid; grid-template-columns: 220px 1fr; min-height: 100vh; } .sidebar { background: #1f2933; color: #f0f4f8; padding: 1.25rem; } .sidebar h1 { font-size: 1.05rem; margin: 0 0 1.5rem; } .sidebar nav a { display: block; padding: 0.45rem 0.6rem; margin: 0.1rem 0; border-radius: 6px; color: #cbd2d9; text-decoration: none; } /* --- Grouped navigation (spec section 57) --- */ .nav-section { margin-bottom: 0.9rem; } .nav-section h2 { font-size: 0.68rem; font-weight: 600; text-transform: uppercase; letter-spacing: 0.07em; color: #7b8794; margin: 0.5rem 0 0.25rem; padding-left: 0.6rem; } /* Unimplemented pages: greyed out, not clickable, tooltip explains why. */ .nav-section button.nav-disabled { display: block; width: 100%; text-align: left; background: transparent; border: none; color: #616e7c; padding: 0.45rem 0.6rem; margin: 0.1rem 0; border-radius: 6px; opacity: 0.55; } /* Anchor targets inside pages: keep headings clear of the viewport top. */ h3[id] { scroll-margin-top: 1rem; } .sidebar nav a.active, .sidebar nav a:hover { background: #323f4b; color: #fff; } .content { padding: 1.5rem 2rem; max-width: 1100px; } .content h2 { margin-top: 0; } table { border-collapse: collapse; width: 100%; background: #fff; border-radius: 8px; overflow: hidden; } th, td { text-align: left; padding: 0.55rem 0.8rem; border-bottom: 1px solid #e4e7eb; font-size: 0.92rem; } th { background: #f0f4f8; } button { font: inherit; padding: 0.4rem 0.8rem; border-radius: 6px; border: 1px solid #cbd2d9; background: #fff; cursor: pointer; } button.primary { background: #1f6feb; border-color: #1f6feb; color: #fff; } button.danger { background: #fff; border-color: #e5534b; color: #e5534b; } button:disabled { opacity: 0.5; cursor: not-allowed; } form.stack label, label { display: block; margin: 0.6rem 0 0.2rem; font-size: 0.85rem; color: #52606d; } input, select, textarea { font: inherit; padding: 0.45rem 0.55rem; border: 1px solid #cbd2d9; border-radius: 6px; width: 100%; background: #fff; } .login-card { max-width: 340px; margin: 12vh auto; background: #fff; padding: 2rem; border-radius: 10px; box-shadow: 0 4px 16px rgba(31, 41, 51, 0.12); } .banner { padding: 0.6rem 0.9rem; border-radius: 6px; margin: 0.6rem 0; } .banner.ok { background: #e6f4ea; color: #1e6b3a; } .banner.error { background: #fdecea; color: #a4342d; } .banner.warn { background: #fff6e0; color: #8a5a00; } .mono { font-family: ui-monospace, "Cascadia Code", Consolas, monospace; font-size: 0.85rem; } pre.config { background: #1f2933; color: #d5e3f0; padding: 1rem; border-radius: 8px; overflow: auto; max-height: 420px; } .password-once { background: #fff6e0; border: 1px solid #e3b341; padding: 0.8rem 1rem; border-radius: 8px; font-family: ui-monospace, monospace; }